Q11 — AWS SAA-C03 第14章
第 11/100 問 | ← 第14章
Q1011. ある企業が Amazon Elastic Kubernetes Service(Amazon EKS)クラスターを利用しています。この企業は、IAM roles for service accounts(IRSA)を活用して、EKSクラスター内のKubernetesサービスアカウントが特定のAWSリソースに安全かつ細かい粒度でアクセスできるようにする必要があります。これらの要件を満たすためのソリューションの組み合わせはどれですか?(2つ選択してください。)
- A. 必要なアクセス許可を定義するIAMポリシーを作成し、そのポリシーをEKSノードのIAMロールに直接アタッチします。
- B. EKSクラスター内でネットワークポリシーを実装し、Kubernetesサービスアカウントが特定のAWSサービスにアクセスできないように制御します。
- C. EKSクラスターのIAMロールを変更して、各Kubernetesサービスアカウント向けのアクセス許可を含めます。IAMロールとKubernetesロールの間で1対1のマッピングを確実に確保します。
- D. 必要なアクセス許可を含むIAMロールを定義します。その後、Kubernetesサービスアカウントに、そのIAMロールのAmazonリソースネーム(ARN)をアノテーションとして付与します。 ✓
- E. サービスアカウント用のIAMロールとOpenID Connect(OIDC)IDプロバイダーとの間に信頼関係を設定します。 ✓
正解: D. 必要なアクセス許可を含むIAMロールを定義します。その後、Kubernetesサービスアカウントに、そのIAMロールのAmazonリソースネーム(ARN)をアノテーションとして付与します。, E. サービスアカウント用のIAMロールとOpenID Connect(OIDC)IDプロバイダーとの間に信頼関係を設定します。
解説
Amazon EKSクラスター内のKubernetesサービスアカウントが、IAM roles for service accounts(IRSA)を用いて特定のAWSリソースに安全かつ細かい粒度でアクセスできるようにするには、以下の2つのソリューションの組み合わせが最適です: D. 必要なアクセス許可を含むIAMロールを定義し、KubernetesサービスアカウントにそのIAMロールのARNをアノテーションとして付与する。 E. サービスアカウント用のIAMロールとOpenID Connect(OIDC)IDプロバイダーとの間に信頼関係を設定する。 各ステップの説明: 1. D:このIAMロールには、Kubernetesサービスアカウントが必要とする特定のAWSアクセス許可を定義します。サービスアカウントにIAMロールのARNをアノテーションすることで、KubernetesはそのロールをAWSリソースへのアクセス時に使用可能となり、サービスアカウントごとに厳密に制御されたアクセスが実現されます。 2. E:これは、サービスアカウントがIAMロールを引き受けるために不可欠なステップです。信頼関係を設定することで、EKSクラスターがOIDCプロバイダー(EKSクラスター作成時に自動的に設定される)に対してサービスアカウントの認証を実行できるようになり、これがIRSA機能の核となる仕組みです。 他の選択肢の評価: A:必要なIAMポリシーをEKSノードのIAMロールに直接アタッチする方法は推奨されません。これはノード全体に権限を付与することになり、個別のサービスアカウントへの細かいアクセス制御ができず、「最小権限の原則」に反します。 B:ネットワークポリシーはポッド間のトラフィック制御には有効ですが、IAMアクセス許可やAWSリソースへのアクセス制御とは無関係であり、IRSAの設定には関係ありません。 C:EKSクラスターのIAMロールに各サービスアカウント向けのアクセス許可を追加する方法は、IRSAの設計思想に合っていません。IRSAでは、サービスアカウント単位でIAMロールを直接関連付けることで、より細かいアクセス制御を実現します。 結論:DとEを選択することで、EKSクラスター内のKubernetesサービスアカウントが、セキュアかつ細かい粒度でAWSリソースにアクセスできるようになり、セキュリティおよびアクセス管理に関するベストプラクティスに準拠します。