Доступ через роль IAM к кластеру EKS

Пожалуйста, помогите понять, почему я получаю

ошибка: вы должны войти на сервер (неавторизованный)

Я создал пустой хост EKS и вручную создал внутреннюю роль:

eksctl create iamidentitymapping \
  --cluster eks-cluster \
  --arn arn:aws:iam::account_number:role/eks_test_full_role \
  --username admin \
  --group system:masters

и это работает

eksctl get iamidentitymapping --cluster eks-cluster
ARN                                             USERNAME                GROUPS
arn:aws:iam::account_number:role/eks_test_full_role                     admin                   system:masters
arn:aws:iam::account_number:role/eks-cluster-eks-workers-iam-role   system:node:{{EC2PrivateDNSName}}   system:bootstrappers,system:nodes

После того, как я создал пользователя IAM, который может принять на себя созданную роль со всеми необходимыми разрешениями

aws sts assume-role --role-arn arn:aws:iam::account_number:role/eks_test_full_role --role-session-name test
{
    "Credentials": {
        "AccessKeyId": "",
        "SecretAccessKey": "",
        "SessionToken": "",
        "Expiration": "2021-02-04T10:24:59Z"
    },
    "AssumedRoleUser": {
        "AssumedRoleId": "Role_id:test",
        "Arn": "arn:aws:sts::account_number:assumed-role/eks_test_full_role/test"
    }
}

Какой шаг я пропустил, чтобы он заработал?

P.S. моя роль и привязка ролей

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: dev
  name: get-pods
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: get-pods-bind
  namespace: dev
subjects:
- kind: User
  name: admin
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: get-pods
  apiGroup: rbac.authorization.k8s.io

person Manish Iarhovich    schedule 04.02.2021    source источник


Ответы (1)


Вам нужно будет отредактировать конфигурационную карту aws-auth и разрешить этому другому пользователю IAM доступ к кластеру. Что-то вроде ниже:

1. kubectl edit cm aws-auth -n kube-system  
  1. Добавьте приведенную ниже конфигурацию и отредактируйте заполнители имени пользователя и заполнителя идентификатора учетной записи. Если mapusers уже существует, просто добавьте к нему новую запись, начиная с - в следующей строке:
mapUsers: |
    - userarn: arn:aws:iam::<account-id>:user/<name of IAM user>
      username: <name of IAM user>
      groups:
        - system:masters
person Anshul Verma    schedule 04.02.2021