CodePipelineで構築されたCI/CDパイプラインのCodeBuildステージで、プライベートなAWS CodeArtifactリポジトリからnpmパッケージをインストールする必要があります。認証情報を安全に管理しながら処理を自動化するための最適な実装はどれですか?
AWS CodeArtifact の推奨認証フローは IAM ロールを使って短期の認証トークンを動的に取得する方式です。CodeBuild のサービスロールに codeartifact:GetAuthorizationToken と sts:GetServiceBearerToken 権限を付与することで、ビルド実行時に aws codeartifact get-authorization-token コマンドで有効期限付きトークン(最大12時間)を取得できます。このトークンを npm レジストリの認証設定に適用することで、長期認証情報を保存せずに安全にパッケージをインストールできます。 選択肢Aの環境変数へのプレーンテキスト保存はトークンがビルドログや CloudWatch Logs に露出するリスクがあり、セキュリティのベストプラクティスに反する。 選択肢CのSecrets Managerへの手動保存はCodeArtifactトークンに有効期限(最大12時間)があるため定期的な手動更新が必要となり、IAMロールで動的に取得する方法より管理コストが大きい。 選択肢Dの上流リポジトリ設定とキャッシュはnpmjsのパッケージを取得する経路の設定であり、CodeArtifactリポジトリ自体への認証要件をなくすものではない。