Q64 — AWS DOP-C02 第1章
第 64/100 問 | ← 第1章
ある多国籍企業は、AWS Control Towerを使用して複数のAWSアカウントを管理しています。同社は、内部向けアプリケーションおよびパブリック向けアプリケーションをホストしています。 各アプリケーションチームは、アプリケーションのホスティング用に独自のAWSアカウントを使用しています。これらのアカウントは、AWS Organizations内の1つの組織に統合されています。そのうち1つのAWS Control Towerメンバー・アカウントは、CI/CDパイプラインを備えた集中型DevOpsアカウントとして機能しており、アプリケーションチームはこれらのパイプラインを使用して、それぞれのターゲットAWSアカウントにアプリケーションをデプロイしています。デプロイに使用されるIAMロールは、集中型DevOpsアカウントに存在します。 アプリケーションチームは、アプリケーションAWSアカウント内のAmazon Elastic Kubernetes Service(Amazon EKS)クラスターにアプリケーションをデプロイしようとしています。アプリケーションAWSアカウントには、デプロイに使用されるIAMロールが存在します。デプロイは、集中型DevOpsアカウントで設定されたAWS CodeBuildプロジェクトを通じて実行されます。CodeBuildプロジェクトは、CodeBuildのIAMサービスロールを使用しています。跨アカウントEKSクラスターへのCodeBuild接続を試行した際、デプロイが失敗し、「権限がありません」というエラーが発生しました。
- A. アプリケーションアカウントのデプロイ用IAMロールを、集中型DevOpsアカウントとの信頼関係を確立するように設定します。信頼関係を設定してsts:AssumeRole操作を許可します。アプリケーションアカウントのデプロイ用IAMロールに、EKSクラスターへの必要なアクセス権限を付与します。EKSクラスターのaws-auth ConfigMapを設定して、ロールを適切なシステム権限にマップします。
- B. 集中型DevOpsアカウントのデプロイ用IAMロールを、アプリケーションアカウントとの信頼関係を確立するように設定します。信頼関係を設定してsts:AssumeRole操作を許可します。集中型DevOpsアカウントのデプロイ用IAMロールに、CodeBuildへの必要なアクセス権限を付与します。 ✓
- C. 集中型DevOpsアカウントのデプロイ用IAMロールを、アプリケーションアカウントとの信頼関係を確立するように設定します。信頼関係を設定してsts:AssumeRoleWithSAML操作を許可します。集中型DevOpsアカウントのデプロイ用IAMロールに、CodeBuildへの必要なアクセス権限を付与します。
- D. アプリケーションアカウントのデプロイ用IAMロールを、AWS Control Tower管理アカウントとの信頼関係を確立するように設定します。信頼関係を設定してsts:AssumeRole操作を許可します。アプリケーションアカウントのデプロイ用IAMロールに、EKSクラスターへの必要なアクセス権限を付与します。EKSクラスターのaws-auth ConfigMapを設定して、ロールを適切なシステム権限にマップします。
正解: B. 集中型DevOpsアカウントのデプロイ用IAMロールを、アプリケーションアカウントとの信頼関係を確立するように設定します。信頼関係を設定してsts:AssumeRole操作を許可します。集中型DevOpsアカウントのデプロイ用IAMロールに、CodeBuildへの必要なアクセス権限を付与します。
解説
このケースでは、デプロイ失敗の原因は権限の問題です。選択肢Bは、集中型DevOpsアカウントのデプロイ用IAMロールをアプリケーションアカウントとの信頼関係を確立するように設定し、sts:AssumeRole操作を許可するとともに、CodeBuildへの必要なアクセス権限を付与するという提案です。これにより、集中型DevOpsアカウントがアプリケーションアカウントと相互作用する際の権限不足が解消され、CodeBuildから跨アカウントEKSクラスターへのデプロイが成功します。他の選択肢は、信頼関係の確立が誤っているか、操作の設定が要件に適合していません。したがって、選択肢Bが正しい解答です。