説明
受信ルールの0.0.0.0/0と::/0は、それぞれすべてのIPv4・IPv6送信元を許可します。対象のポートとプロトコルはルールのほかの設定で決まります。内部専用サービスや管理インターフェースでは、このような広い範囲が不要なアクセスを許す場合があります。
実際のインターネット接続には、リソースのアドレスやルーティングを含むネットワーク経路も必要です。公開Webサイトなどで全送信元からのアクセスが必要な場合は、用途と必要なポートを確認し、アプリケーション認証などの制御も維持してください。
想定される影響
- 接続可能なサービスに対し、意図しない探索、ログイン試行、脆弱性の悪用が試みられる可能性があります。
- 同じグループを共有する複数のリソースに不要なアクセスを許す場合があります。
対処方法
- 内部サービスや管理用アクセスには、承認済みクライアントのCIDRまたは対応するセキュリティグループ参照だけを許可してください。VPNや管理用経路を使う場合も実際の送信元アドレスを確認してください。
- 意図して公開するサービスは必要なポートとプロトコルに限定し、適用されるすべてのグループとネットワーク経路を確認してください。
purge_rulesによる既存ルールへの影響を確認し、維持するルールをすべて定義してください。変更後に必要な接続と遮断すべき接続をテストしてください。
例
vpc_idに実際のVPCを指定し、実行環境でAWS認証を構成してください。二つは同じグループを管理する別々の構成案であり、公開IPやインターネットゲートウェイは作成しません。
変更前
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: 0.0.0.0/0
すべてのIPv4送信元からTCPポート80へのアクセスを許可します。意図した公開Webサービスでなければ、この範囲が必要かを見直してください。
変更後
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: 10.1.1.1/32
TCPポート80の送信元を10.1.1.1/32に限定します。承認済みクライアントと実際のネットワーク経路に合うアドレスかを確認し、ほかの関連付けられたグループも確認してください。