Q62 — AWS SAA-C03 第14章

第 62/100 問 | ← 第14章

Q1062. ある企業が、Amazon EC2インスタンス上で実行されるAmazon Elastic Kubernetes Service(Amazon EKS)クラスターでアプリケーションを稼働させています。このアプリケーションにはUIコンポーネントがあり、Amazon DynamoDBを使用し、データサービスコンポーネントがあり、Amazon S3を使用しています。企業は、UI用のEKS PodがAmazon DynamoDBのみにアクセス可能であり、データサービス用のEKS PodがAmazon S3のみにアクセス可能であることを保証する必要があります。企業はAWS Identity and Access Management(IAM)を利用しています。これらの要件を満たす解決策はどれですか?

正解: D. UIおよびデータサービス向けに個別のKubernetesサービスアカウントを作成し、それぞれがIAMロールを引き受けるように設定します。IAM Role for Service Accounts(IRSA)を活用して、UI用のEKS PodがAmazon DynamoDBに、データサービス用のEKS PodがAmazon S3にアクセスできるようにします。

解説

UI用のEKS PodがAmazon DynamoDBのみに、データサービス用のEKS PodがAmazon S3のみにアクセスできるようにするには、以下の選択肢Dが最も適した解決策です。D:UIおよびデータサービス向けに個別のKubernetesサービスアカウントを作成し、それぞれがIAMロールを引き受けるように設定します。IAM Role for Service Accounts(IRSA)を活用して、UI用のEKS PodがAmazon DynamoDBに、データサービス用のEKS PodがAmazon S3にアクセスできるようにします。 解説: 1. Kubernetesサービスアカウント:   - UIとデータサービス向けに個別のKubernetesサービスアカウントを作成することで、各Podグループがアクセス可能なリソースをきめ細かく制御できます。 2. IAM Role for Service Accounts(IRSA):   - IRSAを用いると、KubernetesサービスアカウントとIAMロールを関連付けることができます。これにより、サービスアカウントに関連付けられたロールに基づいて、Podがアクセス可能なAWSリソース(例:S3、DynamoDB)を定義できます。 3. 細かいアクセス制御:   - IRSAを活用することで、以下のように厳密なアクセス制御が実現できます:    ・UI用Podは、DynamoDBへのアクセス権限のみを持つロールを引き受けます。    ・データサービス用Podは、S3へのアクセス権限のみを持つロールを引き受けます。   - この手法は、必要なAWSサービスへのみアクセスを許可しつつ、セキュリティ上のベストプラクティスを遵守する要件を完全に満たします。 他の選択肢の評価: A:両方のIAMポリシーをEC2インスタンスプロファイルにアタッチする場合:   - すべてのEC2インスタンス上で実行されるPodに、S3およびDynamoDBの両方へのアクセス権限が与えられてしまうため、特定のPodに対して特定のAWSサービスのみを許可するという要件を満たしません。 B:IAMポリシーをEKS Podに直接アタッチする場合:   - IAMポリシーはPodに直接アタッチできません。代わりに、サービスアカウントおよびIAMロールを経由して管理する必要があります。 C:AmazonS3FullAccessポリシーをデータサービスアカウントに、AmazonDynamoDBFullAccessポリシーをUIサービスアカウントにアタッチする場合:   - サービスアカウントの利用は正しいものの、アクセス権限の割り当てが逆になっています。UI用PodはDynamoDBに、データサービス用PodはS3にアクセスすべきですが、この選択肢ではその関係が反対になっています。 結論: 選択肢Dは、EKS PodからAWSリソースへ安全かつ適切にアクセスを制御するための最も堅牢で推奨される方法であり、各サービスが必要とするリソースのみにアクセスできるよう保証するとともに、IAMおよびKubernetesにおけるセキュリティベストプラクティスに準拠しています。