このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
AWS CLI で Kubernetes グループを使用してアクセスエントリを作成する
作成する Amazon EKS アクセスエントリは、認可に Kubernetes グループを使用し、RBAC を手動で設定する必要があるものとします。
注記
通常は、このページで説明している Kubernetes グループによるアプローチではなく、EKS アクセスポリシーを使用する方法をお勧めします。EKS アクセスポリシーでは、AWS との統合を進めたシンプルな方法でアクセスを管理するため、RBAC を手動で設定する必要がありません。Kubernetes グループによるアプローチを使用するのは、EKS アクセスポリシーよりもさらにきめ細かく制御する必要がある場合だけにしてください。
概要
アクセスエントリでは、IAM ID (ユーザーとロール) が Kubernetes クラスターにアクセスする方法を定義します。Kubernetes グループによるアプローチでは、標準の Kubernetes RBAC グループを介して EKS クラスターにアクセスするためのアクセス許可を IAM ユーザーまたは IAM ロールに付与します。この方法では、Kubernetes RBAC リソース (Roles、RoleBindings、ClusterRoles、ClusterRoleBindings) を作成および管理する必要があります。高度にカスタマイズされたアクセス許可セットが必要なときや複雑な認可要件が必要なとき、あるいはハイブリッド Kubernetes 環境全体にわたって一貫したアクセスコントロールパターンを維持するときに、お勧めの方法です。
このトピックでは、Amazon EC2 インスタンスが EKS クラスターに参加する際に使用する IAM ID 用のアクセスエントリの作成については取り上げません。
前提条件
-
アクセスエントリを有効にするようにクラスターの認証モードを設定する必要があります。詳細については、「アクセスエントリを使用するように認証モードを変更する」を参照してください。
-
AWS コマンドラインインターフェイスユーザーガイドの「インストール」の説明に従って、AWS CLI をインストールして設定します。
-
Kubernetes RBAC をよく理解しておくことをお勧めします。詳細についてはKubernetes ドキュメントの「RBAC 認可を使用する
」を参照してください。
ステップ 1: アクセスエントリを定義する
-
アクセス許可を付与する IAM ID (ユーザーやロールなど) の ARN を確認します。
-
IAM ID ごとに EKS アクセスエントリを 1 つのみ含めることができます。
-
-
この IAM ID に関連付ける Kubernetes グループを決定します。
-
そのグループを参照する Kubernetes
Role
/ClusterRole
とRoleBinding
/ClusterRoleBinding
リソースを作成するか、既存のものを使用する必要があります。
-
-
自動生成したユーザー名がアクセスエントリに適しているかどうかや、ユーザー名を手動で指定する必要があるかどうかを判断します。
-
AWS は、IAM ID に基づいてこの値を自動生成します。カスタムのユーザー名を設定できます。この名前が Kubernetes ログに表示されます。
-
詳細については、「EKS アクセスエントリ用のカスタムユーザー名を設定する」を参照してください。
-
ステップ2: Kubernetes グループと共にアクセスエントリを作成する
アクセスエントリを作成する準備を整えたら、AWS CLI を使用して適切な Kubernetes グループと共に作成します。
aws eks create-access-entry --cluster-name <cluster-name> --principal-arn <iam-identity-arn> --type STANDARD --kubernetes-groups <groups>
置換:
-
<cluster-name>
を EKS クラスター名に置き換えます。 -
<iam-identity-arn>
を IAM ユーザーまたはロールの ARN に置き換えます。 -
<groups>
を Kubernetes グループのカンマ区切りリスト (例えば「system:developers,system:readers」)に置き換えます。
すべての設定オプションについて CLI リファレンスを表示します。
ステップ 3: Kubernetes RBAC を設定する
IAM プリンシパルがクラスター上の Kubernetes オブジェクトにアクセスできるようにするには、Kubernetes ロールベースアクセスコントロール (RBAC) オブジェクトを作成して管理する必要があります。
-
アクセス許可を定義する Kubernetes オブジェクト
Role
またはClusterRole
を作成します。 -
クラスター上で Kubernetes
RoleBinding
またはClusterRoleBinding
オブジェクトを作成し、kind: Group
のsubject
としてグループ名を指定します。
Kubernetes でグループとアクセス許可を設定する方法の詳細については、Kubernetes のドキュメントの「Using RBAC Authorization