あなたの会社はAmazon EKSクラスターでKubernetesワークロードを運用しています。EKS上のPodがAmazon S3バケットにアクセスする必要があり、以下の要件があります。 ・EC2ノードのインスタンスプロファイルではなく、Pod単位で異なるIAMロールを割り当てる ・Kubernetes Namespace「ns-app」内のServiceAccount「sa-app」に紐付けたIAMロールのみが対象のS3にアクセス可能にする ・最小権限の原則に従い、対象外のPodからのAWSアクセスを防ぐ IRSA(IAM Roles for Service Accounts)を使ってIAMロールを設定する際、信頼ポリシーに含めるべき条件の正しい内容はどれですか?
IRSAでは、EKSクラスターのOIDCプロバイダーをIAMアイデンティティプロバイダーとして登録し、IAMロールの信頼ポリシーのFederated PrincipalにOIDCプロバイダーエンドポイントを指定します。特定のServiceAccountに限定するため、OIDCのsub(サブジェクト)条件キーに「system:serviceaccount:ns-app:sa-app」、audには「sts.amazonaws.com」を設定します。この組み合わせにより、指定したNamespace・ServiceAccountのPodのみがIAMロールを引き受け可能になります。 選択肢Aのsts:ExternalIdはクロスアカウントのロール委任時に「混乱した代理問題」を防ぐための条件キーであり、Kubernetes ServiceAccountの認証制御には使用できません。 選択肢Cのaws:PrincipalOrgIDとaws:PrincipalAccountはAWSアカウントレベルの制限であり、Kubernetes内のServiceAccount単位の細かい制御はできません。 選択肢Dのeks:cluster-nameやeks:namespaceというIAM条件キーは存在しないため、信頼ポリシーに使用できません。