Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Foundation – Networking & IAM

2025年09月07日に「Dev.to」が公開したITニュース「Foundation – Networking & IAM」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AWSで安全な仮想ネットワーク(VPC)を構築する手順を解説。コマンドラインを使い、公開/非公開領域となるサブネットや、アクセス権限(IAM)を設定する方法など、セキュアなインフラの基礎を学べる。

出典: Foundation – Networking & IAM | Dev.to公開日:

ITニュース解説

クラウド上で安全なシステムを構築するには、土台となるネットワークの設計と、誰が何をしてよいかを定める権限管理が極めて重要である。Amazon Web Services (AWS)では、これらを担う中核的なサービスとしてVirtual Private Cloud (VPC)とIdentity and Access Management (IAM)が提供されている。ここでは、コマンドラインツールであるAWS CLIを用いて、セキュアなアプリケーション基盤を構築するための基本的な手順を解説する。この設定は、コンテナ化されたアプリケーションなどを動かす際の標準的な構成の基礎となるものである。

まず、AWSクラウド内に論理的に隔離されたプライベートなネットワーク空間であるVPCを作成する。これは、物理的なデータセンターの中に自社専用の区画を確保するようなイメージに近い。VPCにはIPアドレスの範囲を定義する必要があり、ここでは「10.0.0.0/16」という大きな範囲を指定している。これにより、VPC内で最大約65,000個のIPアドレスが利用可能となり、将来的なシステムの拡張にも対応できるネットワークが確保される。次に、この大きなVPCをより小さなネットワーク単位である「サブネット」に分割する。サブネットは、役割に応じてネットワークを区画整理する目的で作成され、セキュリティを向上させる上で不可欠な要素である。具体的には、「パブリックサブネット」と「プライベートサブネット」の二種類を作成する。パブリックサブネットは、外部のインターネットと直接通信を行うための区画であり、Webサーバーなど、ユーザーからのアクセスを受け付けるリソースを配置する場所として利用される。一方、プライベートサブネットは、インターネットから直接アクセスできないように設計された区画で、データベースサーバーや内部処理用のアプリケーションなど、外部に公開すべきではない重要なリソースを保護するために使用する。このように役割を明確に分離することが、セキュアなシステム設計の第一歩となる。

作成したVPCがインターネットと通信できるようにするためには、いくつかの設定が必要になる。まず、VPCとインターネットの出入り口となる「インターネットゲートウェイ」を作成し、VPCに接続する。これは、ネットワーク全体の玄関のような役割を担う。しかし、これだけではサブネット内のリソースはインターネットと通信できない。次に、ネットワーク内の通信経路を制御する「ルートテーブル」を設定する必要がある。ルートテーブルは、通信の宛先に応じて、その通信をどこに送るかを定義するルールブックのようなものである。ここでは、パブリックサブネット専用の新しいルートテーブルを作成し、「0.0.0.0/0」、つまりインターネット上のあらゆる宛先への通信を、先ほど作成したインターネットゲートウェイに向けるというルールを追加する。そして、このルートテーブルをパブリックサブネットに関連付けることで、初めてパブリックサブネット内のリソースがインターネットに出ていくこと、およびインターネットからアクセスを受け付けることが可能になる。重要なのは、プライベートサブネットにはこの設定を行わない点である。これにより、プライベートサブネットは意図せず外部に公開されることがなく、安全性が保たれる。

ネットワークの構築と並行して、AWSリソースへのアクセス権限を管理するIAMの設定を行う。AWSでは、サーバーなどのリソース自身が、他のAWSサービス(例えば、ファイルの保存サービスやデータベースサービス)を利用することが頻繁にある。その際、プログラム内に認証情報を直接書き込むのは非常に危険なため、「IAMロール」という仕組みを使用する。IAMロールは、特定のリソースに一時的な権限を付与する「役割」であり、安全なアクセスを実現する。IAMロールの作成には、まず「信頼ポリシー」を定義する。これは、どのサービスがこの役割を引き受けることができるかを指定するもので、例えば「EC2インスタンス」や「ECSタスク」などを指定する。次に、「許可ポリシー」をアタッチする。これは、その役割が具体的にどのような操作を許可されるかを定義したもので、「特定のファイルを読み取る権限」や「データベースに書き込む権限」などを細かく設定できる。具体例として、EC2インスタンスがコンテナ管理サービスと連携するためのロールや、コンテナを起動する際に必要なイメージを取得したりログを書き込んだりするためのECSタスク実行ロールを作成する。さらに、コンテナ内で動くアプリケーション自体が他のAWSサービスにアクセスする必要がある場合は、そのための専用のECSタスクロールも準備する。このように役割ごとに権限を最小限に分離することで、万が一侵害が発生した際の影響範囲を限定し、セキュリティを強化することができる。

ここまでで、AWS上にアプリケーションを展開するための基本的なネットワーク基盤と権限管理の仕組みが整った。作成したVPC、サブネット、インターネットゲートウェイ、ルートテーブルが連携してセキュアな通信経路を確立し、IAMロールが各リソースに必要な権限を安全に提供する。また、構築プロセス全体を通して、作成したすべてのリソースに「Name(名前)」や「Environment(環境)」といったタグを一貫して付与している。このタグ付けは、後からリソースを識別したり、プロジェクトごとのコストを追跡したり、リソース管理を自動化したりする上で非常に重要な習慣である。この基礎の上に、実際にアプリケーションを動かすサーバーなどを構築していくことになる。

関連コンテンツ

関連IT用語