Amazon EC2 セキュリティとネットワーキング
Amazon EC2のセキュリティとネットワーキングは、クラウドインフラストラクチャの基盤となる重要な要素です。適切なセキュリティ設定により、インスタンスへの不正アクセスを防ぎ、ネットワークトラフィックを制御できます。
セキュリティグループ - 仮想ファイアウォール
基本概念
セキュリティグループは、EC2インスタンスの仮想ファイアウォールとして機能し、インスタンスへの受信トラフィックと送信トラフィックを制御します。セキュリティグループは関連付けられたリソースに到達するトラフィックおよびリソースから離れるトラフィックを制御し、例えばセキュリティグループをEC2インスタンスに関連付けると、インスタンスのインバウンドトラフィックとアウトバウンドトラフィックが制御されます。
主要特徴
- ステートフル: インバウンドルールで許可されたトラフィックに対する応答は、アウトバウンドルールに関係なく自動的に許可される
- デフォルト拒否: 明示的に許可されていないトラフィックはすべて拒否される
- 追加料金なし: セキュリティグループの使用に追加料金は発生しない
インバウンドルールとアウトバウンドルール
インバウンドルールはインスタンスへの受信トラフィックを制御し、アウトバウンドルールはインスタンスからの送信トラフィックを制御します。インバウンドルールごとに送信元、ポート範囲、プロトコルを指定でき、アウトバウンドルールごとに送信先、ポート範囲、プロトコルを指定できます。
セキュリティグループの詳細設定
ルールの作成と管理
セキュリティグループを作成した後、セキュリティグループルールを追加、更新、削除できます。ルールを追加、更新、または削除すると、変更はセキュリティグループに関連付けられたリソースに自動的に適用されます。
送信元と送信先の指定
インバウンドルールの送信元またはアウトバウンドルールの送信先として、以下を指定できます:
- カスタム: IPv4 CIDRブロック、IPv6 CIDRブロック、別のセキュリティグループ、またはプレフィックスリスト
- Anywhere-IPv4: 0.0.0.0/0 IPv4 CIDRブロック
- Anywhere-IPv6: ::/0 IPv6 CIDRブロック
- My IP: ローカルコンピュータのパブリックIPv4アドレス
セキュリティ上の重要な注意点
ポート22(SSH)または3389(RDP)のインバウンドルールを追加する場合、インスタンスへのアクセスが必要な特定のIPアドレスまたはアドレス範囲のみを承認することを強く推奨します。Anywhere-IPv4を選択すると、すべてのIPv4アドレスからのトラフィックが指定されたプロトコルを使用してインスタンスにアクセスできるようになります。
VPCとの連携によるネットワーク分離
VPC内でのセキュリティグループ
VPCを作成すると、デフォルトのセキュリティグループが使用されます。VPCごとに追加のセキュリティグループを作成し、それぞれに独自のインバウンドルールとアウトバウンドルールを設定できます。セキュリティグループは特定のVPCに固有であり、1つ以上のインスタンスに関連付けることができます。
ネットワークインターフェースとの関連
セキュリティグループはネットワークインターフェースに関連付けられます。セキュリティグループを追加または削除すると、プライマリネットワークインターフェースに関連付けられたセキュリティグループが変更されます。
IAMロールとの統合
IAMロールの基本概念
IAMロールを使用することで、EC2インスタンスで実行されるアプリケーションに対して一時的な認証情報を管理するだけで済みます。長期認証情報(サインイン認証情報、アクセスキーなど)をAmazon EC2インスタンスに配布する必要がなく、代わりにロールがアプリケーションが他のAWSリソースへの呼び出しを行うときに使用できる一時的なアクセス権限を提供します。
インスタンスプロファイル
EC2インスタンスでIAMロールを使用するには、インスタンスプロファイルの作成という追加ステップが必要です。インスタンスプロファイルにはロールが含まれており、インスタンスで実行されるアプリケーションにロールの一時的な認証情報を提供できます。
動作メカニズム
Amazon EC2インスタンスを起動するときに、そのインスタンスに関連付けるIAMロールを指定します。そのインスタンスで実行されるアプリケーションは、そのロールから提供される一時的な認証情報を使用してAPIリクエストに署名できます。
セキュリティグループの運用管理
AWS CLIによる管理
AWS Command Line Interface(AWS CLI)を使用して新しいセキュリティグループを作成し、既存のセキュリティグループにルールを追加して、セキュリティグループを削除できます。セキュリティグループにルールを追加するには、aws ec2 authorize-security-group-ingress
コマンドを使用します。
動的なセキュリティグループ管理
インスタンスの起動後、関連付けられたセキュリティグループのリストからセキュリティグループを追加または削除できます。複数のセキュリティグループをインスタンスに関連付けると、各セキュリティグループのルールが効果的に集約されて1つのルールセットが作成されます。
ベストプラクティス
最小権限の原則
- 必要最小限のポートとプロトコルのみを許可
- 送信元IPアドレスを可能な限り制限
- 定期的なセキュリティグループルールの見直し
セキュリティグループの命名規則
- 用途が明確に分かる名前を付ける
- 環境(本番、開発、テスト)を区別する命名規則を採用
監査とモニタリング
- CloudTrailによるセキュリティグループ変更の記録
- VPC Flow Logsによるネットワークトラフィックの監視
引用元:
- https://docs.aws.amazon.com/ja_jp/cli/v1/userguide/cli-services-ec2-sg.html
- https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html
- https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html
- https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-security-groups.html
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html