SCSアイデンティティとアクセス管理
ある企業ではプライベートサブネット内のEC2インスタンスがS3バケットにアクセスしています。インターネットゲートウェイは存在せず、S3へのアクセスはゲートウェイ型VPCエンドポイント経由です。セキュリティ監査で「EC2インスタンスが意図せず外部(他アカウント所有)のS3バケットにデータを送信するリスクを排除する」という要件が出されました。自社アカウントのS3バケットへのアクセスは引き続き許可しつつ、他アカウントのバケットへのアクセスをブロックする最も効果的な方法はどれですか?
AVPCエンドポイントポリシーを設定し、aws:ResourceAccount条件キーを使用して自社のAWSアカウントIDと一致するS3リソースへのアクセスのみを許可する
✓ 正解
aws:ResourceAccount条件キーをVPCエンドポイントポリシーに設定することで、エンドポイントを経由するS3リクエストを自社アカウントが所有するリソースのみに一元的に制限できる。外部バケットへのデータ持ち出しを防ぎながら自社バケットへのアクセスは維持できる最も効果的な方法。
B自社のすべてのS3バケットポリシーにaws:SourceVpc条件を追加し、特定のVPCからのアクセスのみを許可するよう制限する
自社バケットポリシーへのaws:SourceVpc追加は自社バケットへの受信アクセスを特定VPCからのみに制限するが、他アカウントが所有するバケットのポリシーは自社で制御できないため、EC2から外部バケットへのアクセス自体をブロックする手段にはならない。
CEC2インスタンスのIAMロールポリシーでS3アクセスを自社バケットのARNのみに限定し、ワイルドカードARNを一切使用しない
IAMロールポリシーで自社バケットのARNのみを指定する方法は技術的には有効だが、すべてのEC2インスタンスのIAMロールを個別に管理する必要があり運用コストが高く、管理漏れのリスクが生じる点でVPCエンドポイントポリシーの一元制御より劣る。
DAWS Organizations SCPでs3:PutObjectとs3:GetObjectを拒否し、外部バケットへのアクセスを組織全体でブロックする
SCPでs3:PutObjectとs3:GetObjectを拒否すると他アカウントのバケットだけでなく自社バケットへの正当なアクセスも禁止されてしまう。自社アカウントのS3バケットへのアクセスは引き続き許可するという要件に根本的に反するため採用できない。
解説
VPCエンドポイントポリシーは、そのエンドポイントを経由するすべてのトラフィックに適用されるリソースベースポリシーです。aws:ResourceAccount条件キーをVPCエンドポイントポリシーに設定することで、「自社AWSアカウントIDが所有するS3リソースへのアクセスのみ許可」という制御が可能です。EC2インスタンスが外部アカウントのバケットにアクセスしようとしても、エンドポイントポリシーで拒否されます。これはデータ持ち出し(data exfiltration)対策として非常に効果的なパターンであり、VPC全体に一元的に適用できます。
選択肢Bの自社バケットポリシーへのaws:SourceVpc追加は、自社バケットへのアクセスを特定VPCからのみに制限しますが、外部アカウントが所有するバケットのポリシーは自社で制御できないため、EC2から外部バケットへのアクセスを防ぐことはできない。
選択肢CのIAMロールポリシーで特定ARNのみを指定する方法は有効だが、すべてのEC2インスタンスのロールを個別に管理する必要があり、VPCエンドポイントポリシーによる一元制御より運用コストが高い。
選択肢DのSCPでS3操作を拒否すると自社バケットへの正当なアクセスも禁止されてしまい、「自社バケットへのアクセスは許可」という要件に反する。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSCSを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →