我试图了解如何为在AWS中创建EKS集群的第一个用户管理RBAC授权。
或者换句话说:集群创建者如何Map到RBAC中的“system:masters”组?
我知道doc说:* “创建Amazon EKS群集时,IAM实体用户或角色(例如创建群集的联合用户)将在群集的RBAC配置中自动授予system:masters权限。"*
我还理解了clusterrole cluster-admin 和clusterrolebinding cluster-admin 如何向“system:masters”组的任何成员赠款完全的管理员权限。
我不明白的是集群创建者用户是如何/在哪里Map到这个组的?(文档中的“自动授予”部分)
- PS:我知道要添加额外的用户/角色,我应该使用aws-authMap,但这里没有定义第一个用户,并且仍然可以访问集群。
如果有人能启发我,请?
提前感谢!
我使用的是kubernetes 1.18 EKS集群,它是通过社区模块here使用terraform构建的:
module "cluster" {
source = "terraform-aws-modules/eks/aws"
version = "13.2.1"
cluster_version = "1.18"
cluster_name = "memorandom-${local.id}"
vpc_id = module.vpc.vpc_id
subnets = module.vpc.private_subnets
write_kubeconfig = false
manage_aws_auth = true
worker_groups = [
{
instance_type = "t3.medium"
asg_max_size = 3
key_name = "pbenefice"
}
]
tags = local.tags
}
3条答案
按热度按时间643ylb081#
所以我就这个问题寻求AWS支持。总结一下答案是:“* 您所询问的大部分内容都是机密信息,不能透露。*"。
我把完整的回复贴在这里:
感谢您联系AWS Premium支持。我的名字是 *,我知道你对集群创建者作为system:masters组的一部分的实现细节很好奇。
你问的大部分都是机密信息,不能透露。
但是,我可以告诉你,EKS控制平面有一个身份验证器组件。您可以按照此处所述的方式启用日志[1]。
就我个人而言,我喜欢把文档的“自动授权”部分看作aws-authMap的
mapUsers:
部分下的一个虚构的、只读的永久对象。因为它没有在aws-authMap中实现,但它被授予的权限与它在那里时相同。我在下面的示例中创建了一个假想的集群创建者用户对象[2],它显示了有效的实现[1]:Amazon EKS控制平面日志记录-https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html
[2]:aws-auth验证Map示例
有关群集创建者RBAC权限的最重要的实际注意事项是:
1.如果删除了IAM实体,而没有向aws-authMap添加具有必要权限的其他IAM实体,则有两个选项:
1.您必须重新创建具有相同名称的IAM实体以重新获得对群集的访问权,或者
1.删除群集并使用新IAM实体创建新群集
我知道这可能不是你所希望的全部信息,但我希望它有助于满足你的好奇心。由于我不能深入到任何真实的深度来回答你的问题,我将继续解决你的问题。我希望你有一个美好的一天,请随时与我们联系。
j8yoct9x2#
请注意,
aws-auth
configMap
不是唯一的真理来源。初始用户来自MountedFile5ktev3wc3#
IAM - Kubernetes RBACMap的aws-authMap实现是通过控制平面部署的动态webhook服务器(admission webhook)完成的。
some entity must always have access to the cluster
是为此而设计的考虑因素