東京リージョンの同一VPC内にあるIPv4専用EC2アプリケーションが、同じアカウント・RegionのSecrets Managerから秘密情報を取得する。NATやインターネットへの経路はなく、SDKの標準リージョナルDNS名を変更しない。
VPCのDNS解決とDNSホスト名は有効で、NACLとローカルルートは通信を許可している。アプリケーションロールには対象secretのGetSecretValue許可があり、暗号化はAWS管理キーaws/secretsmanagerで必要な認可条件を満たしている。
VPC内のプライベートIPへHTTPS接続できるようにし、ネットワーク接続の追加を権限付与の代わりにはしない。
要件を満たす接続設計はどれか。
Secrets ManagerのInterface VPC EndpointでPrivate DNSを有効にし、アプリからendpointへのTCP 443をSGで許可する。接続経路・DNS・Secrets Managerの認可は別々に確認する。
詳細解説
この条件では標準名がそのendpointのプライベートIPへ解決されない。Private DNSを使わない場合のendpoint固有DNS名への変更も、本問では行わない。
標準サービス名をendpointのプライベートIPへ解決させ、HTTPSの経路と必要な認可を両方満たす。
Endpoint policyは利用可能な経路を追加制御するもので、IAMやリソースポリシーによる認可を置き換えない。
Gateway endpointが対象とするのはS3とDynamoDBであり、Secrets Managerの接続方式にはならない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
公式資料とサービス名com.amazonaws.ap-northeast-1.secretsmanager、Private DNS、VPCのDNS属性、endpoint ENI、SGのTCP 443、endpoint policyとロールの権限を照合する。承認済み環境では標準DNS名がendpointのプライベートIPへ解決され、NATなしでGetSecretValueが成功することを確認する。秘密値は検証ログへ記録しない。
参考にした公式資料
確認できる内容
標準DNS名がendpointのプライベートIPへ解決され、許可されたアプリケーションから秘密情報を取得できる。単なるTCP接続成功を認可成功とせず、endpoint policyをIAM許可の代替としない。
理解のポイント
- Interface VPC Endpoint
- AWS PrivateLink
- Secrets Manager
確認時の注意
- 確認環境: 公式AWS資料の確認。必要に応じ承認済み検証環境で設定と動作を照合する。
- AWS公式SAA-C03 Domain 1と各サービスの公式ドキュメントを確認する。
基礎のおさらい
標準DNS名をプライベート経路へ向ける
Interface endpointはVPC内にENIとプライベートIPを持つ。VPCのDNS属性とPrivate DNSを有効にすると、標準リージョナルサービス名からその経路を利用できる。Gateway endpointとInterface endpointを同じものとして扱わない。
通信と認可を別々に満たす
アプリからendpointへTCP 443を送信でき、endpoint SGがアプリからの受信を許可する必要がある。Endpoint policyはIAMやsecretのリソースポリシーを置き換えない。DNSやTCPの成功だけではGetSecretValueの認可成功にならない。
前提と検証する範囲を揃える
本問は同一アカウント・RegionとAWS管理キーを前提にしている。customer managed KMS keyや別アカウントを使う場合は別のキー・リソース認可も確認する。秘密値をログに残さず、DNS・接続・API結果を段階ごとに確認する。