ある企業のセキュリティ要件として、プライベートサブネット上のEC2インスタンスは自社のAWS Organization(組織ID: o-xxxxxx)に属するS3バケットのみにアクセス可能とし、外部のAWSアカウントが所有するS3バケットへのデータアップロードを完全に禁止する必要があります。NATゲートウェイは使用せずインターネットへの直接通信は遮断されています。最小権限の原則に従った最も適切な実装はどれですか?
正解: S3ゲートウェイエンドポイントを作成し、エンドポイントポリシーのConditionに aws:ResourceOrgID を組織ID(o-xxxxxx)で指定して、自社組織に属するS3バケット(リソース)へのアクセスのみを許可する。 VPCエンドポイントポリシーはEC2インスタンスからS3へのすべてのリクエストに適用されるポリシーで、アクセス可能なリソースの範囲を厳密に制限できます。選択肢Bが正解:aws:ResourceOrgID 条件キーはアクセス先のリソース(S3バケット)が属するAWS Organizationを制限します。エンドポイントポリシーにこの条件を付与することで、EC2インスタンスは自社組織外のS3バケットにはアクセスできなくなり、外部バケットへのデータ持ち出しを直接防止できます。選択肢Aは誤り:aws:PrincipalOrgID はリクエストを送るプリンシパル(IAMロール等)が属する組織を確認する条件キーです。EC2インスタンスのIAMロールはすでに自社組織に属しているため、この条件は常に真となり外部S3バケットへのアクセスを制限できません。アクセス先リソースの組織を制限するには aws:ResourceOrgID を使用する必要があります。選択肢Cは誤り:セキュリティグループとNACLはIPアドレスとポートのみを制御します。AWS S3のすべてのバケットは同一のAWS IPレンジを共有しているため、自社バケットと外部バケットをネットワーク層で区別することは不可能です。選択肢Dは誤り:自社バケットのバケットポリシーで受信アクセスを制限することは可能ですが、外部アカウントが所有するS3バケット(自社がポリシーを制御できない)へのEC2からの送信アクセスを防ぐことはできません。