アクセスポリシーと AWS CLI を使用して IAM ロールまたは IAM ユーザーのアクセスエントリを作成する - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

アクセスポリシーと AWS CLI を使用して IAM ロールまたは IAM ユーザーのアクセスエントリを作成する

Amazon EKS アクセスエントリを作成すると、AWS マネージド EKS アクセスポリシーを使用して、Kubernetes クラスターにアクセスおよび管理するための標準化されたアクセス許可を IAM ID に付与できるようになります。

概要

Amazon EKS のアクセスエントリでは、IAM ID (ユーザーとロール) が Kubernetes クラスターにアクセスしてやり取りする方法を定義します。EKS アクセスポリシーを使用してアクセスエントリを作成することで、次のことができます。

  • EKS クラスターへのアクセス許可を特定の IAM ユーザーまたは IAM ロールに付与する

  • AWS マネージド EKS アクセスポリシーでアクセス許可セットを標準化および事前定義してアクセス許可を制御する

  • アクセス許可のスコープを特定の名前空間またはクラスター全体に指定する

  • aws-auth ConfigMap の変更も Kubernetes RBAC リソースの作成も不要にして、アクセス管理を簡素化する

  • AWS 統合アプローチを使用した Kubernetes アクセスコントロールにより、よくあるユースケースに対応すると共に、セキュリティベストプラクティスを維持する

AWS マネージドの標準化されたアクセス許可を実現し、Kubernetes RBAC を手動で設定する必要がないため、ほとんどのユースケースにお勧めのアプローチです。EKS アクセスポリシーにより、Kubernetes RBAC リソースを手動で設定する必要がなくなり、よくあるユースケースに対応したアクセス許可セットを事前定義できます。

前提条件

ステップ 1: アクセスエントリを定義する

  1. アクセス許可を付与する IAM ID (ユーザーやロールなど) の ARN を確認します。

    • IAM ID ごとに EKS アクセスエントリを 1 つのみ含めることができます。

  2. Amazon EKS アクセスポリシーアクセス許可を特定の Kubernetes 名前空間にのみ適用するか、クラスター全体に適用するかを決定します。

    • アクセス許可を特定の名前空間に制限する場合は、その名前空間の名前を書き留めます。

  3. IAM ID に使用する EKS アクセスポリシーを選択します。このポリシーでは、クラスター内アクセス許可を付与します。ポリシーの ARN を書き留めます。

  4. 自動生成したユーザー名がアクセスエントリに適しているかどうかや、ユーザー名を手動で指定する必要があるかどうかを判断します。

ステップ 2: アクセスエントリを作成する

アクセスエントリを作成する準備を整えたら、AWS CLI を使用して作成します。

以下に、よくあるユースケースの例を示します。すべての設定オプションについて CLI リファレンスを表示します

次のステップでアクセスポリシーをアタッチします。

aws eks create-access-entry --cluster-name <cluster-name> --principal-arn <iam-identity-arn> --type STANDARD

ステップ 3: アクセスポリシーを関連付ける

使用するコマンドは、ポリシーを指定の Kubernetes 名前空間に制限するかどうかによって異なります。

アクセスポリシーの ARN が必要になります。利用可能なアクセスポリシーをレビューします。

名前空間スコープを指定せずにポリシーを作成する

aws eks associate-access-policy --cluster-name <cluster-name> --principal-arn <iam-identity-arn> --policy-arn <access-policy-arn>

名前空間スコープを指定してポリシーを作成する

aws eks associate-access-policy --cluster-name <cluster-name> --principal-arn <iam-identity-arn> \ --access-scope type=namespace,namespaces=my-namespace1,my-namespace2 --policy-arn <access-policy-arn>

次のステップ