あるDevOpsエンジニアが社内npmパッケージ管理のためにAWS CodeArtifactを設定しています。要件は以下の3点です: ①開発者が社内パッケージとnpmパブリックレジストリ(npmjs.com)のパッケージを単一のCodeArtifactエンドポイントで取得できること ②npmjs.comからダウンロードしたパッケージがCodeArtifactにキャッシュされること ③すべてのパッケージアクセスがAWS CloudTrailで監査可能であること。すべての要件を正しく満たす設定はどれですか?
CodeArtifactで外部パブリックリポジトリと社内パッケージを統合する正しいアプローチは2層構成です。npmjs.comへの外部接続を持つリポジトリ(npm-upstream)を作成し、社内リポジトリ(my-packages)がnpm-upstreamをアップストリームに設定します。これにより、my-packagesの単一エンドポイントで社内パッケージとキャッシュ済みnpmパッケージの両方にアクセスできます。 選択肢Aの 1つのリポジトリに外部接続と社内パッケージを混在させる構成で、同名パッケージが存在した場合に衝突が発生するリスクがあります。 選択肢Cの アップストリームの方向が逆(正しくはmy-packages→npm-upstream)のため誤りです。 選択肢Dの S3と別途CodeArtifactを組み合わせた構成で、複数レジストリURLを指定するため単一エンドポイントの要件を満たさず、CloudTrailによる統合監査も実現できません。