Q70 — AWS DOP-C02 第3章

第 70/100 問 | ← 第3章

グローバル企業がAWS Organizationsを活用して複数のAWSアカウントを管理しています。同社は、内部向けアプリケーションおよびパブリック向けアプリケーションをホストしています。各アプリケーションチームは、自社のAWSアカウントでアプリケーションをホストしており、AWS Organizations内ではすべてのアカウントが1つの組織に統合されています。そのうち1つのAWS Organizationsメンバーアカウントは、CI/CDパイプラインをホストする集中型DevOpsアカウントであり、アプリケーションチームはこのアカウントを用いて各々のターゲットAWSアカウントへアプリケーションをデプロイします。集中型DevOpsアカウントには、デプロイに必要なIAMロールが存在します。 あるアプリケーションチームが、アプリケーションAWSアカウント内のAmazon Elastic Kubernetes Service (Amazon EKS)クラスターへアプリケーションをデプロイしようとしています。アプリケーションAWSアカウントには、デプロイに必要なIAMロールが存在します。デプロイは、集中型DevOpsアカウントで設定されたAWS CodeBuildプロジェクトを介して実行されます。CodeBuildプロジェクトは、CodeBuildサービス用のIAMロールを使用しています。CodeBuildがクロスアカウントのEKSクラスターに接続しようとした際、承認されていないエラーが発生し、デプロイが失敗しました。 このエラーを解決するソリューションはどれですか?

正解: A. アプリケーションアカウントのデプロイIAMロールを、集中型DevOpsアカウントとの信頼関係を持つように設定します。信頼関係をsts:AssumeRole操作を許可するように設定します。アプリケーションアカウントのデプロイIAMロールに、EKSクラスターへのアクセスに必要な権限を付与します。EKSクラスターのaws-auth ConfigMapを設定し、ロールを適切なKubernetesシステム権限にマッピングします。

解説

本問は、AWSにおけるクロスアカウントアクセス権限の設定に関するものであり、ロールの信頼関係およびEKSクラスターの権限設定が焦点です。AWSドキュメントによると、クロスアカウントアクセスは通常、ターゲットアカウントでIAMロールを作成し、ソースアカウントからのロール引き受けを許可する信頼ポリシーを設定することで実現されます。さらに、EKSクラスターのaws-auth ConfigMapでは、IAMロールをKubernetes RBAC権限にマッピングする必要があります。選択肢Aは、アプリケーションアカウント側で信頼関係を正しく設定し、DevOpsアカウントがsts:AssumeRoleを実行可能とし、EKS権限のマッピングも含めて完全に正しい構成を提供しています。他の選択肢は方向性が誤っている(B、C)、不要なSAML操作を使用している(C)、または不必要な管理アカウントを介している(D)点で不適切です。