ポートの公開範囲を確認すべき AWS セキュリティグループ

公開ポートの実際のサービスと接続許可対象を確認してください。

説明

全接続元に開くポートには、明確なサービス目的と利用対象が必要です。一般的でないポート番号だけで、危険なサービスや用途不明と判断することはできません。実際に待ち受けるサービス、担当者、公開の必要性を確認してください。

想定される影響

  • 未使用や一時的なサービスが、不要な外部接続にさらされる可能性があります。
  • 目的や担当者が不明なルールは、アクセス範囲と変更の影響を管理しにくくします。

対処方法

  • サービス、担当者、必要なクライアントを特定し、不要な公開ルールを削除してください。
  • 公開が必要なら、実際の接続元、プロトコル、ポートを必要な範囲に絞り、理由と見直し期限を記録してください。
  • IPv4、IPv6、関連する全セキュリティグループを確認し、必要な接続が成功して不要な接続が遮断されることを検証してください。

例

TCP 5001 サービスの受信範囲を比較する抜粋です。実際のサービス、VPC、関連付けを別途確認し、例のプライベート範囲を承認済みのクライアントアドレスに置き換えてください。

変更前

hcl
resource "aws_security_group" "custom_service" {
  name        = "allow-custom-port"
  description = "Unknown port exposed"

  ingress {
    from_port   = 5001
    to_port     = 5001
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

全 IPv4 接続元から TCP 5001 を許可します。ポート番号だけではサービスの種類や公開の必要性は決まりません。

変更後

hcl
resource "aws_security_group" "custom_service" {
  name        = "allow-custom-port"
  description = "Unknown port restricted"

  ingress {
    from_port   = 5001
    to_port     = 5001
    protocol    = "tcp"
    cidr_blocks = ["10.20.0.0/24"]
  }
}

接続元を 10.20.0.0/24 に制限します。範囲全体が必要か、別のセキュリティグループでより広いアクセスを許可していないか確認してください。

参考資料