説明
セキュリティグループの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が実際の要件に合うかを確認し、適用されるほかのグループと併せて接続をテストしてください。