デフォルトセキュリティグループを使用する EC2 インスタンス

EC2 インスタンスが使用するデフォルトセキュリティグループを確認し、サービスに必要な通信だけを許可してください。

説明

EC2 インスタンスにデフォルトセキュリティグループを関連付けると、同じグループを使用するほかのリソースとネットワークルールを共有します。AWS が初期状態で用意するデフォルトグループは、同じグループのリソースからの受信通信と、すべての送信通信を許可します。デフォルトグループを使うだけで、インターネットからの受信通信が許可されるわけではありません。

複数のサービスでグループを共有すると、ルール変更の影響を把握しにくくなることがあります。サービスの役割に合ったグループを使い、必要な通信だけを許可してください。

想定される影響

  • 通信する必要がないインスタンス間でも接続が許可される可能性があります。
  • 共有ルールの変更を誤ると、複数のインスタンスへのアクセス範囲が同時に広がる可能性があります。

対処方法

  • デフォルトグループの実際の受信・送信ルールを確認し、不要な許可を削除してください。
  • サービスの役割に合ったセキュリティグループを関連付け、必要なポートと通信先だけを許可してください。専用グループという名前だけで安全になるわけではありません。
  • インスタンスに関連付けられたすべてのセキュリティグループをまとめて確認し、変更後も必要なサービス接続が維持されることを確認してください。

例

旧 amazon.aws.ec2 モジュール形式の抜粋です。現在の環境では対応するモジュール形式を使い、イメージ、キー、サブネットなどの例示値を実際の値に置き換えてください。セキュリティグループ自体のルールは省略しています。

変更前

yaml
- name: EC2 인스턴스 생성
  amazon.aws.ec2:
    key_name: mykey
    instance_type: t2.micro
    image: ami-123456
    wait: yes
    group: default
    count: 1
    vpc_subnet_id: subnet-29e63245
    assign_public_ip: yes

インスタンスは default セキュリティグループのルールを共有します。

変更後

yaml
- name: EC2 인스턴스 생성
  amazon.aws.ec2:
    key_name: mykey
    instance_type: t2.micro
    image: ami-123456
    wait: yes
    group: web-private-sg
    count: 1
    vpc_subnet_id: subnet-29e63245
    assign_public_ip: yes

別のセキュリティグループを選択しますが、その実際のルールも制限する必要があります。両方の例で assign_public_ip: yes を維持しているため、グループを変えるだけでインスタンスが非公開になるわけではありません。

参考資料