web-dev-qa-db-ja.com

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

誰かがこのエラーを診断して修正する方法について何かアドバイスはありますか?

4
Kurt Mueller

役立つかもしれない、または役に立たないかもしれないいくつかの提案:

  • コマンドに--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

4
William Sandin

--role-arnは、kubectlを実行してトークンを取得するときにaws-iam-authenticatorによって使用される役割であり、生成された構成にのみ挿入されます。コマンドによるEKSリソースのフェッチには使用されません。

発生しているエラーは、update-kubeconfigコマンドの実行に使用しているAWS認証情報に、そのクラスターを説明する権限がないためです。

4
Mike

私はEKSに慣れていないそれですが、ユーザーがaws eksコマンドを実行していると思います。

これは正常に実行されますか?

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

そうでない場合は、aws-cli権限を確認して、最初に動作させる必要があります。

それは単なる推測ですが、それが役立つことを願っています:)

2
MLu

AWS APIオペレーションを呼び出すときにAccessDeniedExceptionを受け取った場合、使用しているAWS Identity and Access Management(IAM)ユーザーまたはロールの認証情報には、その呼び出しを行うために必要なアクセス許可がありません。

Amazon EKS管理者権限をユーザーに提供するには、「 Amazon EKS IAMポリシーの作成 」を参照してください。

(参照: https://docs.aws.Amazon.com/eks/latest/userguide/troubleshooting.html#iam-error

2
Yuci

同じエラーが発生しました。しかし、.aws/credentialsファイルの正しいアクセスキーとシークレットキーを更新した後、問題は解決しました。

AWS EKSによって実行されるアクションの実行を許可するユーザーのアクセスキーと秘密キーを使用する必要があることに注意してください。

1
user516231

クラスターMFAの作成に使用しているユーザーIDは有効ですか?その場合は、トークンを取得して資格情報ファイルを更新する必要があります

0
Suresh