過剰なアクセスを許可する可能性があるセキュリティグループの受信ルール

セキュリティグループの受信プロトコルと送信元範囲を、実際に必要な通信に限定してください。

説明

すべてのプロトコルや不要に広い送信元範囲を許可するセキュリティグループは、意図しないトラフィックを受け入れる可能性があります。実際の到達性は、ほかの関連付けられたグループ、ネットワーク経路、ホスト側の制御にも左右されます。

TCP・UDPのポート、ICMPのタイプ・コード、GREなどの別のIPプロトコルを区別してください。allはすべてのプロトコルを意味し、ポート番号を指定してもそのアクセスは限定されません。

想定される影響

  • ネットワーク経路があると、不要なサービスやプロトコルにも外部トラフィックが到達する場合があります。
  • 過剰なアクセス許可は、サービスの探索や脆弱性の悪用の機会を増やす可能性があります。

対処方法

  • 必要なプロトコルと承認済みクライアントを確認してください。TCP・UDPには必要なポート、ICMPには必要なタイプ・コードを指定し、不要な全プロトコルの許可を削除してください。
  • 内部・管理用サービスは、承認済みアドレスや対応するセキュリティグループ参照に限定してください。意図した公開サービスも見直し、IPv4とIPv6をそれぞれ確認してください。
  • 関連付けたすべてのグループと既存ルールの削除設定を確認してください。変更後に必要な接続が維持され、意図しないトラフィックが拒否されることをテストしてください。

例

実際のvpc_idと承認済みクライアントのallowed_client_cidrを指定し、実行環境のAWS認証を使ってください。二つは同じグループを管理する別々の構成案で、リソースの関連付けとルーティングは別途必要です。

変更前

yaml
- name: example ec2 group
  amazon.aws.ec2_security_group:
    name: example
    description: an example EC2 group
    vpc_id: "{{ vpc_id }}"
    region: eu-west-1
    rules:
      - proto: all
        cidr_ip: 0.0.0.0/0

すべてのIPv4送信元から、すべてのプロトコルを許可します。

変更後

yaml
- name: example ec2 group
  amazon.aws.ec2_security_group:
    name: example
    description: an example EC2 group
    vpc_id: "{{ vpc_id }}"
    region: eu-west-1
    rules:
      - proto: tcp
        from_port: 80
        to_port: 80
        cidr_ip: "{{ allowed_client_cidr }}"

承認済みクライアントからTCPポート80だけを許可します。ポートと送信元範囲が実際のサービス要件に合うことを確認してください。

参考資料