启用 AWS Group 以访问 AWS EKS 集群
Enabling AWS Group to access AWS EKS cluster
这个问题本质上是 Adding IAM Group to aws-auth configmap in AWS EKS 的重复。但是,该问题没有公认的答案,我想提供更多背景信息。
我知道 aws-auth
ConfigMap 对象不允许直接映射 AWS 组。解决方法是改为映射 AWS 角色。我试过了,但无法让它工作。映射 AWS 用户没有问题。
我将帐户 027755483893
的 AWS 角色 arn:aws:iam::027755483893:role/development-readwrite
设置为受信任的实体,并附加了以下信任策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::027755483893:root"
},
"Action": "sts:AssumeRole"
}
]
}
我设置了一个 AWS 组 arn:aws:iam::027755483893:group/development-readwrite
并附加了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::027755483893:role/development-readwrite"
]
}
]
}
我按如下方式设置 aws-auth
ConfigMap:
apiVersion: v1
data:
mapRoles: |
# Other mappings omitted for clarity
- groups:
- system:masters
rolearn: arn:aws:iam::027755483893:role/development-readwrite
mapUsers: |
[]
kind: ConfigMap
metadata:
creationTimestamp: "2019-08-21T08:25:15Z"
name: aws-auth
namespace: kube-system
resourceVersion: "62031092"
selfLink: /api/v1/namespaces/kube-system/configmaps/aws-auth
uid: 33b33620-c3ed-11e9-83c0-029bc9dcca16
但是,组中 none 的用户可以访问集群。用户是否需要明确承担角色?还有什么我想念的吗?
在这种情况下,用户确实需要明确承担该角色。用户可以担任角色这一事实不足以让他们实际访问集群。
一种可以为您的用户简化它的方法是 creating a kubeconfig with the aws get token
call。这允许您指定一个 role_arn 角色来承担集群。
这个问题本质上是 Adding IAM Group to aws-auth configmap in AWS EKS 的重复。但是,该问题没有公认的答案,我想提供更多背景信息。
我知道 aws-auth
ConfigMap 对象不允许直接映射 AWS 组。解决方法是改为映射 AWS 角色。我试过了,但无法让它工作。映射 AWS 用户没有问题。
我将帐户 027755483893
的 AWS 角色 arn:aws:iam::027755483893:role/development-readwrite
设置为受信任的实体,并附加了以下信任策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::027755483893:root"
},
"Action": "sts:AssumeRole"
}
]
}
我设置了一个 AWS 组 arn:aws:iam::027755483893:group/development-readwrite
并附加了以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::027755483893:role/development-readwrite"
]
}
]
}
我按如下方式设置 aws-auth
ConfigMap:
apiVersion: v1
data:
mapRoles: |
# Other mappings omitted for clarity
- groups:
- system:masters
rolearn: arn:aws:iam::027755483893:role/development-readwrite
mapUsers: |
[]
kind: ConfigMap
metadata:
creationTimestamp: "2019-08-21T08:25:15Z"
name: aws-auth
namespace: kube-system
resourceVersion: "62031092"
selfLink: /api/v1/namespaces/kube-system/configmaps/aws-auth
uid: 33b33620-c3ed-11e9-83c0-029bc9dcca16
但是,组中 none 的用户可以访问集群。用户是否需要明确承担角色?还有什么我想念的吗?
在这种情况下,用户确实需要明确承担该角色。用户可以担任角色这一事实不足以让他们实际访问集群。
一种可以为您的用户简化它的方法是 creating a kubeconfig with the aws get token
call。这允许您指定一个 role_arn 角色来承担集群。