帮助改进此页面
想为本用户指南做出贡献? 选择位于每个页面右侧窗格中的在 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
-
先决条件。您使用的 IAM 主体必须拥有所需权限中描述的权限。
-
打开 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
-
.Prerequisite 您用于列出集群上的 Kubernetes 资源的实体(AWS Identity and Access Management(IAM)或 OpenID Connect(OIDC))必须由 IAM 或您的 OIDC 身份提供者进行身份验证。必须向实体授予权限,才能为您希望该实体使用的集群上的
Role
、ClusterRole
、RoleBinding
和ClusterRoleBinding
资源使用 Kubernetesget
和list
动词。有关向 IAM 实体授予集群访问权限的更多信息,请参阅向 IAM 用户和角色授予对 Kubernetes APIs 的访问权限。有关向经过您自己的 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
-