このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
EKS アクセスエントリを使用して Kubernetes へのアクセスを IAM ユーザーに許可する
このセクションでは、アクセスエントリとポリシーを使用して、Amazon Elastic Kubernetes Service (EKS) の Kubernetes クラスターへの IAM プリンシパルアクセスを管理する方法について説明します。認証モードの変更、レガシー aws-auth
ConfigMap エントリからの移行、アクセスエントリの作成、更新、削除、ポリシーとエントリの関連付け、事前定義されたポリシーのアクセス許可の確認、安全なアクセス管理の主な前提条件と考慮事項について詳しく説明します。
概要
EKS アクセスエントリはユーザーに Kubernetes API へのアクセスを許可する最善の方法です。例えば、アクセス エントリを使用して、開発者に kubectl を使用するアクセス権を付与できます。基本的に、EKS アクセスエントリは一連の Kubernetes アクセス許可を IAM ロールなどの IAM アイデンティティに関連付けます。例えば、開発者は IAM ロールを引き受け、それを使用して EKS クラスターを認証できます。
機能
-
認証と認可の一元化: Amazon EKS API を介して Kubernetes クラスターへのアクセスを直接制御するため、ユーザーアクセス許可のために AWS と Kubernetes API を切り替える必要がなくなります。
-
詳細なアクセス権限の管理: アクセスエントリとアクセスポリシーを使用して、クラスター作成者からのクラスター管理者権限の変更または取り消しなど、AWS IAM プリンシパルの詳細な権限を定義できます。
-
IaC ツールの統合: AWS CloudFormation、Terraform、AWS CDK などの Infrastructure as Code (IaC) ツールをに対応し、クラスターの作成時にアクセス構成を定義できます。
-
設定ミスリカバリ: Kubernetes API に直接アクセスすることなく、Amazon EKS API を介してクラスターアクセスの復元を許可します。
-
オーバーヘッドの削減とセキュリティの強化: CloudTrail 監査ログ記録や多要素認証などの AWS IAM 機能を活用しながら、オペレーションを一元化してオーバーヘッドを削減します。
アクセス許可をアタッチする方法
Kubernetes アクセス許可をアタッチして、次の 2 つの方法でエントリにアクセスできます:
-
アクセス ポリシーを使用します。アクセスポリシーは、AWS によって管理される事前定義された Kubernetes アクセス許可テンプレートです。詳細については「アクセスポリシーアクセス許可を確認する」を参照してください。
-
Kubernetes グループを参照してください。IAM アイデンティティを Kubernetes グループに関連付けると、グループのアクセス許可を付与する Kubernetes リソースを作成できます。詳細についてはKubernetes ドキュメントの「RBAC 認可を使用する
」を参照してください。
考慮事項
既存のクラスターで EKS アクセスエントリを有効にするときは、次の点に注意してください。
-
レガシークラスターの動作: アクセスエントリが導入される前に作成されたクラスター (プラットフォームバージョン要件で指定されているものよりも前の初期プラットフォームバージョンを持つもの) の場合、EKS は既存のアクセス許可を反映するアクセスエントリを自動的に作成します。このエントリには、最初にクラスターを作成した IAM ID と、クラスターの作成中にその ID に付与された管理アクセス許可が含まれます。
-
レガシー
aws-auth
ConfigMap の処理: クラスターがアクセス管理のためにレガシーaws-auth
ConfigMap に依存している場合、アクセスエントリを有効にすると、元のクラスター作成者のアクセスエントリのみが自動的に作成されます。ConfigMap に追加された追加のロールまたはアクセス許可 (デベロッパーまたはサービスのカスタム IAM ロールなど) は自動的に移行されません。これに対処するには、対応するアクセスエントリを手動で作成します。
はじめに
-
使用する IAM アイデンティティとアクセスポリシーを決定します。
-
クラスターで EKS アクセスエントリを有効にします。サポートされているプラットフォームバージョンがあることを確認します。
-
IAM アイデンティティを Kubernetes 権限に関連付けるアクセスエントリを作成します。
-
IAM アイデンティティを使用してクラスターを認証します。