すべてのIPv4またはIPv6アドレスを許可するセキュリティグループルール

セキュリティグループで全アドレスを許可する必要があるかを確認し、受信と送信のアクセスをそれぞれ制限してください。

説明

セキュリティグループの0.0.0.0/0と::/0は、それぞれすべてのIPv4・IPv6アドレスを表します。受信ルールではすべての送信元、送信ルールではすべての宛先を許可します。ポートとプロトコルは別の設定で、公開Webサイトのように全送信元からのアクセスが必要なサービスもあります。

AWSのデフォルトセキュリティグループの初期受信ルールは、同じグループのリソース間通信を許可します。初期送信ルールはすべてのIPv4宛先を許可し、VPCにIPv6 CIDRがあればすべてのIPv6宛先も許可します。業務上必要な範囲かを確認してください。

想定される影響

  • 不要な受信許可により、ネットワーク経路があるサービスに対して意図しない接続試行を受ける可能性があります。
  • 広い送信許可は、リソースが通信できる外部宛先を必要以上に増やします。

対処方法

  • 必要な送信元、宛先、ポート、プロトコルを確認し、不要な全アドレスのルールを削除してください。意図した公開サービスも必要なポートに限定してください。
  • 関連付けたすべてのグループと、共有グループを変更する影響を確認してください。デフォルトグループに依存せず、用途別グループを明示的に関連付ける方法も検討してください。
  • 送信を制限する場合はrules_egressを明示してください。省略と空のリストの違いや、purge_rulesとpurge_rules_egressが既存ルールを削除する範囲を確認してください。セキュリティグループはステートフルなので、許可されたリクエストへの応答は逆方向のルールにかかわらず許可される場合があります。

例

実際のVPCと承認済みのIPv4・IPv6送信元CIDRを変数で指定し、実行環境でAWS認証を構成してください。二つは同じグループを管理する別々の構成案で、TCPポート10050の受信だけを比較しています。送信の制限は別途設定してください。

変更前

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: 10050
        to_port: 10050
        cidr_ip:
          - 0.0.0.0/0

すべてのIPv4アドレスからTCPポート10050への受信接続を許可します。

変更後

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: 10050
        to_port: 10050
        cidr_ip: "{{ allowed_ipv4_cidr }}"
        cidr_ipv6: "{{ allowed_ipv6_cidr }}"

承認済みの送信元範囲だけを指定します。両方のCIDRが実際の要件に合うかを確認し、適用されるほかのグループと併せて接続をテストしてください。

参考資料