インターネット到達性
VPC 内のリソースがインターネットから到達可能な状態にないかをチェックするコントロール群。パブリック IP の付与、パブリックサブネットへの配置、サービス固有のインターネットアクセス設定、セキュリティグループのポート開放など、インターネットからの到達経路に関わる設定を対象とする。
対象コントロール(15 件)
関連する宣言型ポリシー属性: VPC Block Public Access
デフォルト保護は API のデフォルト値(CLI でオプションを省略した場合の値)に基づく。マネジメントコンソールではより安全な値がプリセットされている場合がある。15 件のうち、デフォルトで保護されているのは ECS.2 / ECS.16 / EC2.19 の 3 件のみで、残り 12 件はデフォルトで未保護(明示的にプライベートな設定を行わない限り、インターネットから到達可能な状態でリソースが作成される可能性がある)。
| コントロール | 重大度 | タイトル | デフォルト保護 | 記事 |
|---|---|---|---|---|
| EC2.9 | HIGH | EC2 インスタンスがパブリック IPv4 アドレスを持っていないこと | 未保護: デフォルト VPC のサブネットは MapPublicIpOnLaunch=true のため、明示的に --no-associate-public-ip-address を指定しない限り起動時にパブリック IP が付与される | 検証済み |
| EC2.25 | HIGH | EC2 起動テンプレートがパブリック IP を割り当てていないこと | 未保護: 起動テンプレートで NetworkInterfaces.AssociatePublicIpAddress=true を明示的に設定可能であり、CSPM はテンプレート自体の設定値をチェックする | 検証済み |
| Autoscaling.5 | HIGH | Auto Scaling 起動設定でパブリック IP を持っていないこと | 未保護: 起動設定で --associate-public-ip-address を指定可能(2024 年 10 月以降に作成されたアカウントでは起動設定の新規作成自体ができない) | 検証済み(一部) |
| ECS.2 | HIGH | ECS サービスにパブリック IP が自動割り当てされていないこと | 保護済み: サービスの awsvpcConfiguration.assignPublicIp の API デフォルトは DISABLED。明示的に ENABLED を指定しない限りパブリック IP は付与されない | 検証済み |
| ECS.16 | HIGH | ECS タスクセットにパブリック IP が自動割り当てされていないこと | 保護済み: タスクセットの awsvpcConfiguration.assignPublicIp の API デフォルトは DISABLED。明示的に ENABLED を指定しない限りパブリック IP は付与されない | 検証済み |
| EMR.1 | HIGH | EMR クラスタープライマリノードがパブリック IP を持っていないこと | 未保護: パブリックサブネットに起動するとプライマリノードに自動でパブリック IP が付与される | 検証済み |
| RDS.2 | CRITICAL | RDS DB インスタンスが PubliclyAccessible でないこと | 未保護: --publicly-accessible を省略した場合のデフォルトは VPC 種別に依存し、デフォルト VPC では true(カスタム VPC では false) | 検証済み |
| RDS.46 | HIGH | RDS DB インスタンスがパブリックサブネットにデプロイされていないこと | 未保護: デフォルトの DB サブネットグループにはデフォルト VPC のパブリックサブネットが含まれる | 検証済み |
| DMS.1 | CRITICAL | DMS レプリケーションインスタンスがパブリックでないこと | 未保護: create-replication-instance の --publicly-accessible の API デフォルトは true | 検証済み |
| Redshift.1 | CRITICAL | Redshift クラスターがパブリックアクセスを許可していないこと | 未保護: create-cluster で --publicly-accessible を指定可能。マネジメントコンソールでは false がプリセットされる | 検証済み |
| RedshiftServerless.3 | HIGH | Redshift Serverless ワークグループがパブリックアクセスを許可していないこと | 未保護: create-workgroup で --publicly-accessible を指定可能。マネジメントコンソールでは false がプリセットされる | 検証済み |
| SageMaker.1 | HIGH | SageMaker ノートブックインスタンスがインターネットに直接アクセスできないこと | 未保護: create-notebook-instance の --direct-internet-access の API デフォルトは Enabled | 検証済み |
| ES.2 | CRITICAL | Elasticsearch ドメインがパブリックにアクセス可能でないこと | 未保護: create-elasticsearch-domain で --vpc-options を省略するとパブリックアクセス方式のドメインが作成される | 検証済み |
| Opensearch.2 | CRITICAL | OpenSearch ドメインがパブリックにアクセス可能でないこと | 未保護: create-domain で --vpc-options を省略するとパブリックアクセス方式のドメインが作成される | 検証済み |
| EC2.19 | CRITICAL | SG がハイリスクポートへの無制限インバウンドアクセスを許可していないこと | 保護済み: 新規セキュリティグループはデフォルトでインバウンドルールを持たない。明示的に 0.0.0.0/0 のルールを追加しない限り FAILED にならない | 検証済み |
コントロールの性質による分類
15 件のコントロールは、チェックしている設定の種類によって以下のように分類できる。
パブリック IP 付与(6 件)
EC2 インスタンスや Fargate タスクの ENI にパブリック IPv4 アドレスが割り当てられるかどうかを、インスタンスの実態や起動テンプレート・起動設定のパラメータからチェックする。
該当コントロール: EC2.9, EC2.25, Autoscaling.5, ECS.2, ECS.16, EMR.1
PubliclyAccessible フラグ(4 件)
RDS・DMS・Redshift 等のマネージドデータベースが持つ PubliclyAccessible パラメータをチェックする。true の場合、エンドポイントの DNS 名がパブリック IP に解決され、パブリックサブネットに配置されていればインターネットからアクセス可能になる。
該当コントロール: RDS.2, DMS.1, Redshift.1, RedshiftServerless.3
サブネット配置(1 件)
RDS インスタンスが配置されているサブネットのルートテーブルに IGW へのルートがあるかをチェックする。PubliclyAccessible フラグ(RDS.2)とは独立した評価であり、両方が FAILED の場合にインターネットからアクセス可能になる。
該当コントロール: RDS.46
サービス固有のインターネットアクセス設定(3 件)
サービスごとに固有の「インターネットへの公開/非公開」を制御するパラメータをチェックする。パブリック IP の付与やサブネットのルートテーブルではなく、各サービス独自の設定を評価する。
- SageMaker.1: ノートブックインスタンスの
DirectInternetAccessパラメータ。Enabledの場合 FAILED。SageMaker 管理 VPC 経由でインターネットアクセスが提供されるため、ユーザー VPC の ENI にパブリック IP は付与されない(VPC BPA 検証で確認済み)。 - ES.2 / Opensearch.2: Elasticsearch / OpenSearch ドメインが VPC アクセス方式で作成されているかをチェックする。パブリックアクセス方式の場合、ドメインのエンドポイントは AWS 管理側のネットワークに配置される。
これら 3 件はいずれもインターネットアクセス経路がユーザー VPC の IGW を経由しないため、後述する VPC BPA を有効化しても実際のインターネットアクセスを遮断できない点で共通する。
該当コントロール: SageMaker.1, ES.2, Opensearch.2
セキュリティグループ(1 件)
セキュリティグループのインバウンドルールで、SSH(22)や RDP(3389)等のハイリスクポートが 0.0.0.0/0(全 IP)に開放されていないかをチェックする。セキュリティグループがどのリソースにもアタッチされていなくても FAILED になる。
該当コントロール: EC2.19
EC2.9 / EC2.25 / Autoscaling.5 の関係性
3 件はいずれも「パブリック IPv4 アドレスの付与を禁止する」という共通目的を持つが、チェック対象と評価タイミングが異なる。
| EC2.9 | EC2.25 | Autoscaling.5 | |
|---|---|---|---|
| チェック対象 | 起動中のインスタンス | 起動テンプレートのデフォルトバージョン | Auto Scaling 起動設定 |
| 評価タイミング | インスタンス起動後 | 起動テンプレート作成・更新後 | 起動設定作成後 |
| 実害の有無 | あり(既にパブリック IP が付与済み) | なし(設定のみ、まだ起動されていない) | なし(設定のみ) |
| Config ルール | EC2_INSTANCE_NO_PUBLIC_IP | EC2_LAUNCH_TEMPLATE_PUBLIC_IP_DISABLED | AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED |
EC2.25 と Autoscaling.5 は「将来パブリック IP が付与される設定」を検出するものであり、実際のパブリック IP 付与は EC2.9 が検出する。3 件を組み合わせることで、インスタンス起動前(設定段階)と起動後(実態)の両面をカバーできる。
予防手段との対応
VPC BPA と CT.EC2.PV.8 について
VPC BPA に関連する予防手段には次の 2 種類がある。両者は実体としては同じ宣言型ポリシー(vpc_block_public_access)を使用するため、Security Hub finding への影響も同じである。
| 予防手段 | 種別 | mode の選択 |
|---|---|---|
| VPC BPA | 宣言型ポリシー(Organizations 直接適用) | block_ingress または block_bidirectional から選択可能 |
| CT.EC2.PV.8 | 宣言型ポリシー(Control Tower 経由) | block_bidirectional 固定 |
block_ingress は IGW 経由のインバウンドのみをブロックし、NAT Gateway / Egress-only IGW 経由のアウトバウンドは許可する(戻りトラフィックはステートフルに自動許可)。
block_bidirectional は IGW / Egress-only IGW 経由の全トラフィックに加えて、NAT Gateway 経由のアウトバウンドもブロックする(NAT Gateway 経由のアウトバウンドブロックは VPC BPA 検証の補足 2 で確認済み)。
両モードはアウトバウンドの挙動が異なるが、インターネットからリソースへのインバウンド方向のパブリックアクセスはいずれのモードでも遮断される。本セクションでは、Security Hub finding への影響(インバウンドのパブリックアクセス禁止)の観点で、両者を同一の予防手段として扱う。詳細は VPC BPA の検証 を参照。
各コントロールへの影響
VPC BPA はインターネット通信を実行時にブロックするが、パブリック IP の付与自体や各サービスの設定値は変更しない。そのため、VPC BPA を有効化しても各コントロールの finding はいずれも FAILED のまま変化しない。
ただし、実際のインターネットアクセスへの影響は、対象リソースの通信経路によって異なる:
- ユーザー VPC の IGW を経由するリソース(11 件): VPC BPA により実際のインターネットアクセスはブロックされる。finding が FAILED であっても実害はない。EC2.9 / EC2.25 / ECS.2 / ECS.16 / EMR.1 / RDS.2 / RDS.46 / DMS.1 / Redshift.1 / RedshiftServerless.3 / EC2.19。
- ユーザー VPC の IGW を経由しないリソース(3 件): SageMaker.1 / ES.2 / Opensearch.2。インターネットアクセスのパスがユーザー VPC の IGW を経由しないため、VPC BPA を有効化しても実際のアクセスは遮断されない。VPC BPA による実害低減効果は得られず、これらは個別に VPC アクセス方式(ES.2 / Opensearch.2)や
DirectInternetAccess=Disabled(SageMaker.1)への変更で対処する必要がある。 - 検証不可(1 件): Autoscaling.5。2024 年 10 月以降のアカウントで起動設定の新規作成ができないため、検証できない。
| コントロール | VPC BPA / CT.EC2.PV.8 の影響 | 備考 |
|---|---|---|
| EC2.9 | FAILED のまま変化しない(検証済み) | |
| EC2.25 | FAILED のまま変化しない(検証済み) | |
| Autoscaling.5 | 検証不可 | 起動設定の作成が不可(2024 年 10 月以降のアカウント) |
| ECS.2 | FAILED のまま変化しない(検証済み) | |
| ECS.16 | FAILED のまま変化しない(検証済み) | |
| EMR.1 | FAILED のまま変化しない(検証済み) | VPC BPA 有効状態では EMR クラスターのブートストラップが完了しないため、先に起動してから VPC BPA を有効化する手順で検証 |
| RDS.2 | FAILED のまま変化しない(検証済み) | |
| RDS.46 | FAILED のまま変化しない(検証済み) | |
| DMS.1 | FAILED のまま変化しない(検証済み) | |
| Redshift.1 | FAILED のまま変化しない(検証済み) | VPC BPA 有効状態では PubliclyAccessible=true での起動がブロックされるため、先に起動してから VPC BPA を有効化する手順で検証 |
| RedshiftServerless.3 | FAILED のまま変化しない(検証済み) | 同上 |
| SageMaker.1 | FAILED のまま変化しない(検証済み) | ノートブックインスタンスのインターネットアクセスは SageMaker の管理 VPC 経由で提供され、ユーザー VPC の IGW を経由しないため、ユーザー側で VPC BPA を有効化しても実際のインターネット通信は遮断されない |
| ES.2 | FAILED のまま変化しない(VPC BPA 記事では検証なし) | パブリックアクセス方式のドメインのエンドポイントは AWS 管理側のネットワークに配置され、ユーザー VPC の IGW を経由しないため、ユーザー側で VPC BPA を有効化しても実際のインターネットアクセスは遮断されない(SageMaker.1 と同じ構造的理由) |
| Opensearch.2 | FAILED のまま変化しない(VPC BPA 記事では検証なし) | 同上 |
| EC2.19 | FAILED のまま変化しない(検証済み) |
SageMaker.1 / ES.2 / Opensearch.2 の予防手段(調査結論)
前述の通り、SageMaker.1 / ES.2 / Opensearch.2 の 3 件は VPC BPA の実害低減効果を受けられないため、別途の予防手段が必要となる。これらのサービスには、EBS Snapshot BPA や VPC BPA のような「アカウント・リージョン単位で公開を一括ブロックする」設定は提供されていない(2026 年 5 月時点)。
Control Tower にはプロアクティブコントロール(CloudFormation Hooks)として CT.SAGEMAKER.PR.1(SageMaker)、CT.OPENSEARCH.PR.2 / CT.OPENSEARCH.PR.10(ES / OpenSearch)が存在するが、これらは CloudFormation 経由のデプロイのみを対象とし、CLI / SDK からの直接 API 呼び出しはブロックしない。予防コントロール(SCP / RCP / 宣言型ポリシー)は提供されていない(2026 年 5 月時点)。
調査結果:
- カスタム SCP: ES.2 / Opensearch.2 の API(
es:CreateElasticsearchDomain/es:CreateDomain)には VPC アクセスを制御する条件キーが存在しないため、SCP では予防不可(条件キー調査 参照) - Config + 自動修復: AWS 公式ドキュメント Launching your Amazon OpenSearch Service domains within a VPC に「If you create a domain with a public endpoint, you can’t later place it within a VPC. You must instead create a new domain and migrate your data.」と明記されており、パブリックエンドポイントから VPC 内への移行は不可。ドメインを削除して再作成しない限り COMPLIANT に戻せないため、自動修復は実質的に成立しない
そのため ES.2 / Opensearch.2 の現実解は VPC BPA による実害ブロック(ただし前述の通り構造的に効果は限定的)か、リソースポリシーでの IP 制限(finding は FAILED のまま残る)となる。本サイトでは自動修復の検証対象外として扱う(Config / 自動修復 参照)。