Q29 — AWS DOP-C02 第2章
第 29/100 問 | ← 第2章
ある企業は、社内で開発されたPythonパッケージを格納するためにAWS CodeArtifactリポジトリを使用しています。DevOpsエンジニアは、AWS CodeDeployを用いてアプリケーションをAmazon EC2インスタンスにデプロイする必要があります。このアプリケーションは、CodeArtifactリポジトリに格納されたPythonパッケージに依存しており、BeforeInstallライフサイクルイベントフックでそのパッケージをインストールします。DevOpsエンジニアは、EC2インスタンスがCodeArtifactリポジトリにアクセスできるようにする必要があります。
- A. CodeArtifact向けのサービス関連ロールを作成し、そのロールをEC2インスタンスに関連付けます。その後、インスタンス上でaws codeartifact get-authorization-token CLIコマンドを実行します。
- B. CodeArtifactリポジトリに対してリソースベースのポリシーを構成し、EC2インスタンスのプリンシパルがReadFromRepository操作を実行できるように許可します。
- C. CodeArtifactリポジトリ上でACLを構成し、EC2インスタンスがPythonパッケージにアクセスできるように許可します。
- D. CodeArtifactへのアクセス権限を持つIAMロールを含むインスタンスプロファイルを作成し、そのインスタンスプロファイルをEC2インスタンスに関連付けます。その後、インスタンス上でaws codeartifact login CLIコマンドを実行します。 ✓
正解: D. CodeArtifactへのアクセス権限を持つIAMロールを含むインスタンスプロファイルを作成し、そのインスタンスプロファイルをEC2インスタンスに関連付けます。その後、インスタンス上でaws codeartifact login CLIコマンドを実行します。
解説
AWSの権限管理において、EC2インスタンスが他のAWSサービスにアクセスする際は通常、IAMロールとインスタンスプロファイルによる認可が用いられます。AWS公式ドキュメントによると、CodeArtifactへの認証はIAMポリシーによって制御され、インスタンスプロファイルによりEC2インスタンスに適切な権限を付与した後、`aws codeartifact login`コマンドを実行して一時的な認証トークンを取得します。選択肢Aのサービス関連ロールは、EC2インスタンスがCodeArtifactを直接呼び出す用途には適用されません。選択肢Bのリソースベースポリシーは、CodeArtifactでは主にIAMポリシーに基づくアクセス制御が採用されており、適用されません。選択肢CのACLは、CodeArtifactのアクセス制御メカニズムではありません。選択肢DはAWSのベストプラクティスに従っており、インスタンスプロファイルの適切な設定とCLIによるトークン取得を正しく実装しています。