SAA-C03:AWS Certified Solutions Architect - Associate セキュアなアーキテクチャの設計 問2
セキュアなアーキテクチャの設計/AWS リソースへのセキュアなアクセスの設計本番アカウントで動作するアプリケーションが、別アカウントにある S3 バケットへアクセスする必要があります。長期的なアクセスキーをアプリに埋め込まずに、安全なクロスアカウントアクセスを実現する設計はどれですか。
当サイトのオリジナル問題(SAA-C03:AWS Certified Solutions Architect - Associateの出題範囲「セキュアなアーキテクチャの設計」に対応。実際の試験問題ではありません)
- AS3 バケットのアクセスキーをアプリの設定ファイルに保存する
- Bルートユーザーのアクセスキーを両アカウントで共有する
- Cバケットを誰でも読めるようパブリックに公開する
- D相手アカウントに IAM ロールを作成して信頼ポリシーで本番アカウントを信頼させ、AWS STS で取得した一時認証情報でそのロールを引き受ける
正解:D
解説
クロスアカウントアクセスの推奨設計は、アクセスされる側(リソースのあるアカウント)に IAM ロールを作成し、その信頼ポリシーでアクセスする側のアカウント(プリンシパル)を信頼させる方法です。アクセス側は AWS STS の AssumeRole で有効期限付きの一時認証情報を取得してロールを引き受けます。長期的なアクセスキーを配布・埋め込みする必要がなく、漏えいリスクを抑えられます。
選択肢ごとの解説
- A誤り。アクセスキーを設定ファイルに保存すると漏えいリスクが高く、長期キーの管理という課題も残ります。
- B誤り。ルートユーザーの認証情報の共有は最も避けるべき運用です。
- C誤り。バケットのパブリック公開は、特定アプリだけに限定したアクセスという要件に反し、情報漏えいにつながります。
- D正しい。相手アカウントの IAM ロールを STS で引き受ける方式は、一時認証情報を用いる安全なクロスアカウントアクセスの標準的な設計です。