あるシステム(AWSアカウントA)のEC2インスタンスが、別部門のAWSアカウントBのS3バケットにある機密データを定期的に処理する必要があります。セキュリティポリシーにより長期的なIAMアクセスキーの使用は禁止されており、最小権限の原則に従うことが求められています。最もセキュアな実装はどれですか?
IAMロール(インスタンスプロファイル)+ AssumeRoleはクロスアカウントアクセスのベストプラクティスです。EC2インスタンスプロファイルにより一時的な認証情報が自動管理されるため、長期的なアクセスキーが不要でセキュリティポリシーを遵守できます。アカウントBのロールの信頼ポリシーにアカウントAのロールARNを指定することで最小権限の原則も正確に実現できます。 選択肢A(IAMユーザーのアクセスキーを環境変数に設定)はアクセスキーが長期認証情報であり、セキュリティポリシーで明示的に禁止されているため不適切です。環境変数への格納はシークレット漏洩リスクも高まります。 選択肢B(S3バケットポリシーでElastic IPからのアクセスのみ許可)はIPアドレスベースの制御であり、IAMによる適切な認証・認可の代替にはなりません。送信元IPはスプーフィングや同一IPを持つ別リソースからの不正アクセスのリスクがあり、最小権限の原則を正確に実装できないためセキュリティポリシー上不適切です。 選択肢D(VPCピアリング + ネットワークACL)はネットワーク経路を確立する手段であり、S3アクセスの認証・認可には機能しません。S3はネットワーク層ではなくIAMポリシーによってアクセス制御を行うサービスであり、VPCピアリングだけではS3へのアクセス権限は付与されません。