帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
创建 Kubernetes 集群时,会在该集群上创建多个默认 Kubernetes 身份,以便 Kubernetes 正常运行。Amazon EKS 会为其每个默认组件创建 Kubernetes 身份。这些身份为集群组件提供 Kubernetes 基于角色的授权控制(RBAC)。有关更多信息,请参阅 Kubernetes 文档中的使用 RBAC 授权
在向集群安装可选附加组件时,可能会向集群添加其他 Kubernetes 身份。有关本主题未涉及身份的更多信息,请参阅附加组件文档。
您可以使用 AWS Management Console或 kubectl
命令行工具,查看 Amazon EKS 在集群上创建的 Kubernetes 身份列表。所有用户身份都会出现在 kube
审计日志中,可通过 Amazon CloudWatch 向你提供。
AWS Management Console
先决条件
要使用AWS Management Console查看 Amazon EKS 创建的身份
-
打开 Amazon EKS 控制台
。 -
在 Clusters(集群)列表中,选择包含要查看的身份的集群。
-
选择资源选项卡。
-
在 Resource types(资源类型)下,选择 Authorization(授权)。
-
选择 ClusterRoles、ClusterRoleBindings、Roles 或 RoleBindings。所有以 eks 为前缀的资源均由 Amazon EKS 创建。Amazon EKS 创建的其他身份资源包括:
-
ClusterRole 和名为 aws-node 的 ClusterRoleBinding。aws-node 资源支持适用于 Kubernetes 的 Amazon VPC CNI 插件,Amazon EKS 会将其安装在所有集群上。
-
名为 vpc-resource-controller-role 的 ClusterRole 和名为 vpc-resource-controller-rolebinding 的 ClusterRoleBinding。这些资源支持 Amazon VPC 资源控制器
,Amazon EKS 会将其安装在所有集群上。
除了控制台中的资源外,即使以下特殊用户身份在集群配置中不可见,但它们仍存在于您的集群上:
-
eks:cluster-bootstrap
– 在集群引导期间用于kubectl
操作。 -
eks:support-engineer
– 用于集群管理操作。
-
-
选择特定资源以查看有关该资源的详细信息。默认情况下,信息在结构化视图中显示。在详细信息页面的右上角,您可以选择 Raw view(原始视图)以查看该资源的所有信息。
Kubectl
先决条件
用来列出集群上的 Kubernetes 资源的实体 [AWS Identity and Access Management(IAM)或 OpenID Connect(OIDC)],必须由 IAM 或您的 OIDC 身份提供者进行身份验证。必须向实体授予权限,才能为您希望该实体使用的集群上的 Role
、ClusterRole
、RoleBinding
和 ClusterRoleBinding
资源使用 Kubernetes get
和 list
动词。有关向 IAM 实体授予集群访问权限的更多信息,请参阅向 IAM 用户和角色授予对 Kubernetes API 的访问权限。有关向经过您自己的 OIDC 提供者身份验证的实体授予集群访问权限的更多信息,请参阅通过外部 OIDC 提供者向用户授予 Kubernetes 访问权限。
要使用 kubectl
查看 Amazon EKS 创建的身份
为要查看的资源类型运行命令。所有以 eks 为前缀的返回资源均由 Amazon EKS 创建。除命令输出中返回的资源,即使以下特殊用户身份在集群配置中不可见,但它们仍存在于您的集群上:
-
eks:cluster-bootstrap
– 在集群引导期间用于kubectl
操作。 -
eks:support-engineer
– 用于集群管理操作。
ClusterRoles – ClusterRoles
范围限定为您的集群,因此授予角色的任何权限都适用于集群上任何 Kubernetes 命名空间中的资源。
以下命令返回 Amazon EKS 在您的集群上创建的所有 Kubernetes ClusterRoles
。
kubectl get clusterroles | grep eks
除了输出中返回的 ClusterRoles
(具有前缀)外,还存在以下 ClusterRoles
。
-
aws-node
– 此ClusterRole
支持适用于 Kubernetes 的 Amazon VPC CNI 插件,Amazon EKS 会将其安装在所有集群上。 -
vpc-resource-controller-role
– 该ClusterRole
支持 Amazon VPC 资源控制器,Amazon EKS 会将其安装在所有集群上。
要查看 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
支持适用于 Kubernetes 的 Amazon VPC CNI 插件,Amazon EKS 会将其安装在所有集群上。 -
vpc-resource-controller-rolebinding
– 该ClusterRoleBinding
支持 Amazon VPC 资源控制器,Amazon EKS 会将其安装在所有集群上。
要查看 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 命名空间。Amazon EKS 创建的所有 Roles
范围限定为 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 命名空间。Amazon EKS 创建的所有 RoleBindings
范围限定为 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