デフォルトの Amazon EKS は Kubernetes ロールとユーザーを作成しました。
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 を表示するには
https://console.aws.amazon.com/eks/home#/clusters
で Amazon EKS コンソール を開きます。 -
[Clusters] (クラスター) のリストで、表示したい ID を含んでいるクラスターを選択します。
-
Resources タブを選択します。
-
[Resource types] (リソースタイプ) で [Authorization] (承認) を選択します。
-
[ClusterRoles]、[ClusterRoleBindings]、[Roles] (ロール)、または [RoleBindings] を選択します。[eks] というプレフィックスが付いたリソースはすべて、Amazon EKS によって作成されます。Amazon EKS で作成される追加の ID リソースは次のとおりです。
[aws-node] という名前の [ClusterRole] と [ClusterRoleBinding]。[aws-node] リソースは、Amazon EKS がすべてのクラスターにインストールする Amazon VPC CNI plugin for Kubernetes をサポートします。
-
[vpc-resource-controller-role] という名前の [ClusterRole] および [vpc-resource-controller-rolebinding] という名前の [ClusterRoleBinding]。これらのリソースは、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
リソースに対して Kubernetesget
およびlist
動詞を使用するアクセス許可が付与されている必要があります。IAM エンティティにクラスターへのアクセスを付与する方法の詳細については、「クラスターに対する IAM プリンシパルのアクセスの有効化」を参照してください。独自の OIDC プロバイダーによって認証されたエンティティにクラスターへのアクセスを付与する方法の詳細については、「OpenID Connect アイデンティティプロバイダーからクラスターのユーザーを認証する」を参照してください。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
は Amazon EKS がすべてのクラスターにインストールする Amazon VPC CNI plugin for Kubernetes をサポートします。 -
vpc-resource-controller-role
- このClusterRole
は、Amazon EKS がすべてのクラスターにインストールする「Amazon VPC resource controller」(Amazon 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]
ClusterRoleBindings -
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
は、Amazon EKS がすべてのクラスターにインストールする「Amazon VPC resource controller」(Amazon 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
は Kubernetes 名前空間にスコープされます。Roles
で作成されたすべての Amazon 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
で作成されたすべての Amazon 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
-n kube-systemeks:k8s-metrics
出力例は次のとおりです。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
-