最小権限のセキュアアーキテクチャ(S3 × VPCエンドポイント制限)難易度 高無料
機密データを保存するS3バケットへのアクセスを、社内VPC内のEC2からGateway型VPCエンドポイント(vpce-0123456789abcdef0)経由に限定し、正しい認証情報を持っていてもインターネット経由や他のネットワーク経路からのアクセスは拒否したい。この要件を満たすバケットポリシー設計として最も適切なものを選べ。(単一選択)
- AS3バケットにセキュリティグループをアタッチし、インバウンドルールでVPCエンドポイントのプライベートIPレンジのみを許可する
- Bバケットポリシーに、
aws:SourceVpceが対象のVPCエンドポイントIDと一致しない場合にs3:*をDenyする条件付きステートメントを追加する - CVPCのネットワークACLで、社内VPCのCIDR以外からのインバウンド443番ポートを拒否する
- DIAMポリシー側で
s3:GetObjectを許可しているユーザーだけが呼び出せるようにすれば、ネットワーク経路の制限は別途行わなくても十分安全である
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済
解説
S3はマネージドサービスでセキュリティグループ/NACLをアタッチする対象ではないため、ネットワーク経路を条件にしたアクセス制御はバケットポリシーの条件キーで行う。
- バケットポリシーに、
aws:SourceVpce条件キーが指定のVPCエンドポイントIDと一致しない場合にDenyするステートメントを追加する。 Condition: { "StringNotEquals": { "aws:SourceVpce": "vpce-0123456789abcdef0" } }のようにすることで、 正しいIAM認証情報を持っていても、このVPCエンドポイントを経由しないリクエスト(インターネット経由・別VPC経由等)は明示的Denyで拒否される。- IAM側のポリシーで
s3:GetObject等を許可していても、バケットポリシー側の明示的Denyが優先されるため、経路の強制が実現できる。
- AS3はENIを持たないマネージドサービスであり、セキュリティグループを直接アタッチする対象ではない。
- CNACLはVPC内のサブネット境界を制御するものであり、S3(AWSのパブリックサービスエンドポイント)へのアクセス経路そのものを、正規の認証情報を持つ他経路のリクエストから守る手段にはならない。
- DIAMポリシーは「誰が」呼べるかを制御するが「どの経路から」呼べるかは制御しない。正しい認証情報があればインターネット経由でも呼べてしまうため、経路強制にはバケットポリシー側の条件キーが必要。
ひっかけ: 「セキュリティグループでS3へのアクセスを絞る(A)」は不可能。S3はENIを持たないマネージドサービスであり、SGを直接アタッチできない。
「IAMポリシーだけで十分(D)」も誤り。IAMポリシーの条件を絞らなければ、正しい認証情報があればインターネット経由でも呼べてしまうため、ネットワーク経路の強制にはリソースベース側の条件キーが要る。
公式ドキュメント・関連Amazon S3 User Guide ― Restricting access to a specific VPC endpoint↗AWS Global Condition Context Keys ― aws:SourceVpce↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)