aws-auth 配置映射中的用户名字段有什么作用?



我试图了解这些用户名字段在 Kubernetes 集群中映射到的位置。

这是一个示例配置映射:

apiVersion: v1
data:
mapRoles: |
- rolearn: arn:aws:iam::111122223333:role/eksctl-my-cluster-nodegroup
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
mapUsers: |
- userarn: arn:aws:iam::111122223333:user/admin
username: admin
groups:
- system:masters
- userarn: arn:aws:iam::444455556666:user/ops-user
username: ops-user
groups:
- eks-console-dashboard-full-access-group
  1. 如果我将用户名从system:node:{{EC2PrivateDNSName}}更改为类似mynode:{{EC2PrivateDNSName}}真的有什么区别吗?通过添加system:前缀对 k8 的集群有任何意义吗?

  2. 我在哪里可以在 k8 中看到这些用户。我可以像k get pods一样使用kubectl查询它吗,就像kubectl get usernames一样。它是我们提供的用于映射的虚拟用户名,还是拥有任何特殊权限。

  3. 这些名字{{EC2PrivateDNSName}}从何而来。还有其他变量可用吗?我无法从文档中看到与此相关的任何信息。

提前感谢!

将答案发布为社区维基,请随意编辑和扩展。


  1. 正如您在文档中读到的那样,system:node需要前缀system。如果删除system,它将无法正常工作:

system:node<</strong>br/> 允许访问 kubelet 所需的资源,包括对所有密钥的读取访问权限,以及对所有 pod 状态对象的写入访问权限。 您应该使用 Node 授权方和 NodeRestriction 准入插件而不是 system:node 角色,并允许根据计划在其上运行的 Pod 授予对 kubelet 的 API 访问权限。 system:node 角色仅用于与从 v1.8 之前版本升级的 Kubernetes 集群兼容。

  1. 您可以使用外部插件示例 RBAC 查找查看 RBAC 用户并使用命令:rbac-lookup

RBAC 查找是一个 CLI,可让您轻松查找绑定到任何用户、服务帐户或组名称的 Kubernetes 角色和群集角色。二进制文件是使用 goreleaser 为每个版本生成的,以便于简单安装。

  1. 名称将来自您的 AWS IAM。您可以在此处阅读有关它的更多信息:
使用 AWS IAM

实体访问您的集群由在 Amazon EKS 控制平面上运行的适用于 Kubernetes 的 AWS IAM 身份验证器启用。身份验证器从aws-authConfigMap获取其配置信息。对于所有aws-authConfigMap设置。

相关内容

  • 没有找到相关文章

最新更新