我使用承担角色API创建了一个aws eks。角色A承担角色B以执行创建EKS API。我创建eks并指定EKS的集群角色为角色C。据我所知,角色C的arn将存储在eks aws-auth configMap中。
当A承担角色C以访问所创建的EKS时,“获取命名空间失败:未授权”返回。
我总是使用假设角色来调用API。有没有人知道,aws-auth是否像'arn:aws:iam::C:role/k8s-cluster-role'那样存储角色C的arn,或者eks以另一种方式在aws-auth中存储角色arn。
1条答案
按热度按时间50few1ms1#
你有一些误解;根据官方文档,您集群中aws-auth configmap for system:masters group中存储的角色不是集群角色,而是创建集群本身的iam主体。
创建Amazon EKS群集时,在Amazon EKS控制平面的群集基于角色的访问控制(RBAC)配置中,会自动授予创建群集的IAM主体system:masters权限。
从你所写的来看,如果顺序正确,并且你遵循的assume-role方法工作正常,你应该能够用role-b而不是role-c查询你的集群API资源,因为b是你用来创建集群的。在当前的设置中,您希望角色C能够访问群集资源,尽管您使用角色b创建了群集资源。