このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Amazon EKS 作成の RBAC ロールおよびユーザーの説明
Kubernetes クラスターを作成すると、Kubernetes が正常に機能するようにそのクラスターに複数のデフォルト Kubernetes ID が作成されます。Amazon EKS はデフォルトコンポーネントごとに Kubernetes ID を作成します。ID はクラスターコンポーネントの Kubernetes ロールベースの承認制御 (RBAC) を提供します。詳細についてはKubernetes ドキュメントの「RBAC 認可を使用する
オプションのアドオンをクラスターにインストールすると、クラスターに追加の Kubernetes ID が追加されることがあります。このトピックで扱われていない ID の詳細については「アドオンのドキュメント」を参照してください。
AWS Management Console または kubectl
コマンドラインツールを使用して、クラスターで Amazon EKS が作成した Kubernetes ID のリストを表示できます。すべてのユーザー ID はお客様に対して、Amazon CloudWatch を通じて利用可能な kube
監査ログに表示されます。
AWS Management Console
前提条件
使用する IAM プリンシパルには「必要なアクセス許可」に記載されている許可が必要です。
AWS Management Console を使用して Amazon EKS で作成された ID を表示するには
-
アマゾン EKS コンソール
を開きます。 -
[Clusters] (クラスター) のリストで、表示したい ID を含んでいるクラスターを選択してください。
-
[リソース] タブを選択してください。
-
[Resource types] (リソースタイプ) で [Authorization] (承認)を 選択してください。
-
[クラスター役割]、[クラスター役割ビンディング]、[役割] 、または [バインディング役割] を選択してください。[eks] というプレフィックスが付いたリソースはすべて、Amazon EKS によって作成されます。Amazon EKS で作成される追加の ID リソースは次のとおりです:
-
[aws-node] という名前の [クラスター役割] と [クラスター役割バインディング]。[aws-node] リソースは Amazon EKS がすべてのクラスターにインストールする Amazon VPC CNI plugin for Kubernetes をサポートします。
-
[vpc-resource-controller-role] という名前の [クラスター役割] および [vpc-resource-controller-rolebinding] という名前の [クラスター役割バインディング]。これらのリソースはAmazon EKS がすべてのクラスターにインストールする「Amazon VPC resource controller
」(Amazon VPC リソースコントローラー) サポートします。
コンソールに表示されるリソースに加えて、次の特別なユーザー ID がクラスターに存在しますが、クラスターの設定には表示されません:
-
eks:cluster-bootstrap
- クラスターブートストラップ中のkubectl
操作に使用されます。 -
eks:support-engineer
- クラスター管理操作に使用されます。
-
-
特定のリソースを選択すると、そのリソースの詳細が表示されます。デフォルトでは情報は [Structured view] (構造化ビュー) で表示されます。詳細ページの右上隅で、[Raw View] (生のビュー) 選択すると、リソースの情報をすべて表示できます。
Kubectl
前提条件
クラスター上の Kubernetes リソースを一覧表示するために使用するエンティティ (AWS Identity and Access Management (IAM) または OpenID Connect (OIDC)) は IAM または OIDC ID プロバイダーによって認証される必要があります。エンティティにはそのエンティティに使用させたいクラスター上の、Role
、ClusterRole
、RoleBinding
、および ClusterRoleBinding
リソースに対してKubernetes get
および list
動詞を使用するアクセス許可が付与されている必要があります。IAM エンティティにクラスターへのアクセスを付与する方法の詳細については「IAM ユーザーおよびロールに Kubernetes API へのアクセスを付与する」を参照してください。独自の OIDC プロバイダーによって認証されたエンティティにクラスターへのアクセスを付与する方法の詳細については「外部 OIDC プロバイダーを使用して Kubernetes へのアクセスをユーザーに許可する」を参照してください。
kubectl
を使用して Amazon EKS で作成された ID を表示するには
表示するリソースのタイプのコマンドを実行します。[eks] というプレフィックスが付いたすべての返されるリソースはAmazon EKS によって作成されます。コマンドからの出力で返されるリソースに加えて、次の特別なユーザー ID がクラスターに存在しますが、クラスターの設定には表示されません:
-
eks:cluster-bootstrap
- クラスターブートストラップ中のkubectl
操作に使用されます。 -
eks:support-engineer
- クラスター管理操作に使用されます。
ClusterRoles - ClusterRoles
はクラスターにスコープが設定されているため、ロールに付与されたすべてのアクセス許可はクラスター上の任意の Kubernetes 名前空間内のリソースに適用されます。
次のコマンドは、クラスター上で Amazon EKSによって作成されたすべての Kubernetes ClusterRoles
を返します。
kubectl get clusterroles | grep eks
出力で返されるのはプレフィックスが付けられた ClusterRoles
の他に、次の ClusterRoles
が存在します。
-
aws-node
– このClusterRole
はアマゾン EKS がすべてのクラスターにインストールする Amazon VPC CNI plugin for Kubernetes, をサポートします。 -
vpc-resource-controller-role
- このClusterRole
はアマゾン EKS がすべてのクラスターにインストールする「アマゾン VPC resource controller」(アマゾン VPC リソースコントローラー) サポートします。
ClusterRole
の仕様を確認するには次のコマンドの eks:k8s-metrics
を前のコマンドの出力で返された ClusterRole
に置き換えます。次の例ではeks:k8s-metrics
ClusterRole
の仕様を返します。
kubectl describe clusterrole eks:k8s-metrics
出力例は次のとおりです。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- [/metrics] [] [get] endpoints [] [] [list] nodes [] [] [list] pods [] [] [list] deployments.apps [] [] [list]
クラスター役割Bindings - ClusterRoleBindings
はクラスターを対象としています。
次のコマンドは、クラスター上で Amazon EKSによって作成されたすべての Kubernetes ClusterRoleBindings
を返します。
kubectl get clusterrolebindings | grep eks
出力で返される ClusterRoleBindings
以外に、次の ClusterRoleBindings
が存在します。
-
aws-node
– このClusterRoleBinding
はAmazon EKS がすべてのクラスターにインストールする Amazon VPC CNI plugin for Kubernetes, をサポートします。 -
vpc-resource-controller-rolebinding
- このClusterRoleBinding
はアマゾン EKS がすべてのクラスターにインストールする「アマゾン VPC resource controller」(アマゾン VPC リソースコントローラー) サポートします。
ClusterRoleBinding
の仕様を確認するには次のコマンドの eks:k8s-metrics
を前のコマンドの出力で返された ClusterRoleBinding
に置き換えます。次の例ではeks:k8s-metrics
ClusterRoleBinding
の仕様を返します。
kubectl describe clusterrolebinding eks:k8s-metrics
出力例は次のとおりです。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: ClusterRole Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
Roles - Roles
は Kubernetes 名前空間にスコープされます。Roles
で作成されたすべての アマゾン EKS はkube-system
名前空間にスコープされます。
次のコマンドは、クラスター上で Amazon EKSによって作成されたすべての Kubernetes Roles
を返します。
kubectl get roles -n kube-system | grep eks
Role
の仕様を確認するには、次のコマンドの eks:k8s-metrics
を、前のコマンドの出力で返された Role
の名前に置き換えます。次の例ではeks:k8s-metrics
Role
の仕様を返します。
kubectl describe role eks:k8s-metrics -n kube-system
出力例は次のとおりです。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- daemonsets.apps [] [aws-node] [get] deployments.apps [] [vpc-resource-controller] [get]
RoleBindings - RoleBindings
は Kubernetes 名前空間にスコープされます。RoleBindings
で作成されたすべての アマゾン EKS はkube-system
名前空間にスコープされます。
次のコマンドは、クラスター上で Amazon EKSによって作成されたすべての Kubernetes RoleBindings
を返します。
kubectl get rolebindings -n kube-system | grep eks
RoleBinding
の仕様を確認するには次のコマンドの eks:k8s-metrics
を前のコマンドの出力で返された RoleBinding
に置き換えます。次の例ではeks:k8s-metrics
RoleBinding
の仕様を返します。
kubectl describe rolebinding eks:k8s-metrics -n kube-system
出力例は次のとおりです。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics