使AWS Group访问AWS EKS集群

时间:2020-06-08 13:01:47

标签: amazon-web-services amazon-iam amazon-eks

这个问题本质上是Adding IAM Group to aws-auth configmap in AWS EKS的重复。但是,该问题没有一个可接受的答案,我想提供更多背景信息。

我知道aws-auth ConfigMap对象不允许直接映射AWS Group。一种解决方法是改为映射一个AWS角色。我尝试过,但是无法正常工作。映射AWS用户可以正常工作。

我将账户arn:aws:iam::027755483893:role/development-readwrite设置为AWS角色027755483893作为受信任实体,并附加了以下信任策略:

{
  "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

但是,该组中没有用户可以访问群集。用户是否需要明确承担角色?还有什么我想念的吗?

1 个答案:

答案 0 :(得分:4)

在这种情况下,用户确实确实需要显式承担角色。用户可以承担角色这一事实不足以使他们实际有权访问群集。

可以简化您的用户的一种方法是creating a kubeconfig with the aws get token call。这样,您就可以为集群指定一个角色的role_arn。