Назад | Перейти на главную страницу

AWS EKS update-kubeconfig не учитывает флаг --role-arn

Всякий раз, когда я запускаю следующую команду с ролью, которая использовалась для создания кластера eks ...

aws eks update-kubeconfig --name eks-cluster --role-arn arn:aws:iam::999999999999:role/eksServiceRole

... я получаю следующую ошибку:

An error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:iam::111111111111:user/username is not authorized to perform: eks:DescribeCluster on resource: arn:aws:eks:us-east-1:561353845098:cluster/eks-cluster

Есть ли у кого-нибудь совет о том, как диагностировать и исправить эту ошибку?

--role-arn это роль, которую будет использовать aws-iam-authenticator когда ты бежишь kubectl получить токен и вводится только в сгенерированный конфиг; он никоим образом не используется командой для получения ресурсов EKS.

Вы столкнулись с ошибкой, потому что учетные данные AWS, которые вы используете для запуска update-kubeconfig У команды нет разрешений на описание этого кластера.

Несколько предложений, которые могут помочь, а могут и не помочь:

  • Вы можете включить --verbose к вашей команде, чтобы, возможно, получить более подробную информацию о том, где он терпит неудачу. Может ли быть, что пользователь, от имени которого вы аутентифицированы, не может взять на себя указанную роль?

  • В мануале для aws-cli --role-arn передается как строка, вы должны попытаться заключить ее в двойные кавычки:

aws eks update-kubeconfig --name eks-cluster --role-arn "arn:aws:iam::999999999999:role/eksServiceRole"

  • Попробуйте вручную взять на себя роль через aws-cli.

    1. Проверьте текущий сеанс аутентификации: aws sts get-caller-identity

    2. Попытка взять на себя роль: aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/eksServiceRole" --role-session-name test-eks-role

я не который знаком с EKS, но я думаю, пользователь, что вы запускаете aws eks команде, поскольку необходимы привилегии для описания кластера.

Это работает успешно?

~ $ aws eks describe-cluster --name eks-cluster

Если нет, вам нужно проверить свой разрешения aws-cli и заставьте это работать первым.

Это всего лишь предположение, но надеюсь, что это поможет :)

Если вы получите AccessDeniedException при вызове операции AWS API учетные данные пользователя или роли AWS Identity and Access Management (IAM), которые вы используете, не имеют необходимых разрешений для выполнения этого вызова.

Чтобы предоставить пользователю права администратора Amazon EKS, см. Создание политик Amazon EKS IAM.

(Ссылка: https://docs.aws.amazon.com/eks/latest/userguide/troubleshooting.html#iam-error)

Я придумал ту же ошибку. Но после того, как я обновил правильный ключ доступа и секретный ключ в файле .aws / credentials, проблема была решена.

Обратите внимание, что вам необходимо использовать ключ доступа и секретный ключ пользователя, который позволяет выполнять действия, связанные с AWS EKS.

Включен ли ваш идентификатор пользователя, с которым вы создаете кластер MFA? Если это так, вам необходимо получить токен и обновить файл учетных данных.

Подтверждая, что эта ошибка с aws eks все еще присутствует по состоянию на 2020/04 год. Я столкнулся с той же проблемой, что и OP, несмотря на правильность всех конфигураций. В конце концов я обнаружил, что aws eks update-kubeconfig --name eks-cluster --profile profilename успешно, если предполагаемая роль IAM определена в конфигурации, альтернатива, которая должна делать то же самое, поэтому определенно ошибка с aws eks

В моем случае эта проблема возникла из-за отсутствия слова «профиль» в .aws / config для именованных профилей. Если именованные профили не используются, т.е. существует только профиль по умолчанию, «профиль» не требуется. Источник: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html