DVAセキュリティ

開発チームは社内の Python ライブラリを AWS CodeArtifact リポジトリで管理しています。AWS CodeBuild を使用してアプリケーションをビルドする際に、このリポジトリから pip でパッケージをインストールする必要があります。最もセキュアな構成はどれですか?

A
CodeArtifact の認証トークンを CodeBuild プロジェクトの環境変数にハードコードし、pip の設定ファイルに埋め込む
ハードコードした静的トークンは漏洩リスクが高く、期限切れ時には手動での更新作業も発生する。IAM ロールを使った一時認証情報の動的取得と比べてセキュリティと運用性の両面で最も推奨されない構成。
B
CodeBuild のサービスロールに codeartifact:GetAuthorizationToken 権限を付与し、buildspec の pre_build フェーズで認証トークンを動的取得して pip インデックス URL に設定する
✓ 正解
IAM ロールで発行する一時認証トークン(デフォルト 12 時間有効)を pre_build フェーズで動的取得する最もセキュアな方式。静的な認証情報をコードや設定ファイルに保存する必要がなく、最小権限原則に沿った構成。
C
CodeArtifact リポジトリのリソースポリシーで全ての AWS アカウントからのアクセスを許可し、認証なしでインストールできるようにする
全 AWS アカウントへのアクセスを開放することは社内ライブラリを事実上公開状態にする設定であり、意図しない第三者によるパッケージ取得や改ざんリスクを生む重大なセキュリティ違反。
D
AWS Secrets Manager に CodeArtifact の長期認証情報を保存し、buildspec.yml の環境変数セクションで secrets-manager 参照を使用する
Secrets Manager への長期認証情報の保存は IAM ロールによる動的トークン取得より管理負荷が高い。CodeArtifact の推奨認証フローは IAM ベースの短期トークン発行であり、長期認証情報の管理自体が不要。

解説

CodeBuild の IAM サービスロールに codeartifact:GetAuthorizationToken および codeartifact:ReadFromRepository 権限を付与し、pre_build フェーズでトークンを動的取得する方法が最もセキュアです。このトークンはデフォルト 12 時間の一時的なもので、静的な認証情報をどこにも保存する必要がありません。ハードコードや Secrets Manager への長期認証情報の保存は、IAM ロールを使った一時認証情報の活用より推奨されません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る