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
誰かがこのエラーを診断して修正する方法について何かアドバイスはありますか?
役立つかもしれない、または役に立たないかもしれないいくつかの提案:
コマンドに--verbose
を含めて、失敗した場所に関する詳細を取得することができます。あなたが認証されたユーザーが指定された役割を引き受けることができないのはその場合でしょうか?
Aws-cliのマニュアルでは、--role-arn
は文字列として渡されるため、二重引用符でカプセル化する必要があります。
aws eks update-kubeconfig --name eks-cluster --role-arn "arn:aws:iam::999999999999:role/eksServiceRole"
Aws-cliを使用して手動で役割を引き受けるようにしてください。
現在の認証済みセッションを確認してください:aws sts get-caller-identity
役割を引き受ける:aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/eksServiceRole" --role-session-name test-eks-role
--role-arn
は、kubectl
を実行してトークンを取得するときにaws-iam-authenticator
によって使用される役割であり、生成された構成にのみ挿入されます。コマンドによるEKSリソースのフェッチには使用されません。
発生しているエラーは、update-kubeconfig
コマンドの実行に使用しているAWS認証情報に、そのクラスターを説明する権限がないためです。
私はEKSに慣れていないそれですが、ユーザーがaws eks
コマンドを実行していると思います。
これは正常に実行されますか?
~ $ aws eks describe-cluster --name eks-cluster
そうでない場合は、aws-cli権限を確認して、最初に動作させる必要があります。
それは単なる推測ですが、それが役立つことを願っています:)
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 )
同じエラーが発生しました。しかし、.aws/credentialsファイルの正しいアクセスキーとシークレットキーを更新した後、問題は解決しました。
AWS EKSによって実行されるアクションの実行を許可するユーザーのアクセスキーと秘密キーを使用する必要があることに注意してください。
クラスターMFAの作成に使用しているユーザーIDは有効ですか?その場合は、トークンを取得して資格情報ファイルを更新する必要があります