IAM のトラブルシューティング - Amazon EKS

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

IAM のトラブルシューティング

このトピックでは、IAM での Amazon EKS の使用中に表示される一般的なエラーとその回避方法について説明します。

AccessDeniedException

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

An error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:iam::<111122223333>:user/<user_name> is not authorized to perform: eks:DescribeCluster on resource: arn:aws:eks<:region>:<111122223333>:cluster/<cluster_name>

上記のメッセージ例では、ユーザーは Amazon EKS DescribeCluster API オペレーションを呼び出す権限を持っていません。ユーザーに Amazon EKS 管理権限を付与するには、Amazon EKS アイデンティティベースのポリシーの例を参照してください。

の一般的な情報については、IAM の「ポリシーを使用したアクセス制御」を参照してください。IAM ユーザーガイド

ワークロードまたはノードが見つからず、AWS マネジメントコンソール でエラーを受け取る

というコンソールエラーメッセージが表示される場合があります。Your current user or role does not have access to Kubernetes objects on this EKS cluster にサインインしている IAM エンティティ (ユーザーまたはロール) が、以下のすべての要件を満たしていることを確認します。AWS マネジメントコンソール

  • アクションを含む IAM ポリシーがアタッチされています。eks:AccessKubernetesApiポリシーの例については、「IAM」を参照してください。のすべてのクラスターのノードとワークロードの表示AWS マネジメントコンソールで IAM ポリシービジュアルエディタを使用していて、[AWS マネジメントコンソール eks:AccessKubernetesApiPermission (アクセス許可)] が表示されていない場合は、ポリシーの JSON を編集し、JSON の のリストに eks:AccessKubernetesApi を追加します。Action

  • configmap 内の Kubernetes ユーザーまたはグループへのマッピングがあります。aws-authユーザーまたはロールを IAM configmap に追加する方法の詳細については、「aws-auth」を参照してください。クラスターのユーザーまたは IAM ロールの管理ユーザーまたはロールがマッピングされていない場合、コンソールエラーに Unauthorized: が含まれることがあります。Kubernetes クラスターにアクセスできることを確認します

  • アカウントまたはロールが configmap でマッピングされている Kubernetes ユーザーまたはグループは、Kubernetes リソースを表示するために必要なアクセス権限を持つ Kubernetes IAM または subject にバインドされている rolebinding または clusterrolebinding にある role である必要があります。clusterroleユーザーまたはグループに必要なアクセス許可がない場合、コンソールエラーに [Unauthorized:] が含まれることがあります。Kubernetes クラスターにアクセスできることを確認します。ロールとバインドを作成するには、Kubernetes ドキュメントの「RBAC 認証の使用」を参照してください。と clusterrole、または clusterrolebindingrole を作成する次のマニフェストの例をダウンロードできます。rolebinding

    • すべての名前空間の Kubernetes リソースを表示する – ファイル内のグループ名は eks-console-dashboard-full-access-group です。これは、IAM ユーザーまたはロールを aws-auth configmap でマッピングする必要があるグループです。必要に応じて、クラスターに適用する前にグループの名前を変更し、IAM ユーザーまたはロールを configmap でそのグループにマッピングできます。ファイルをダウンロードするには、クラスターがあるリージョンの適切なリンクを選択します。

    • 特定の名前空間内の Kubernetes リソースを表示する – このファイルの名前空間は default であるため、別の名前空間を指定する場合は、クラスターに適用する前にファイルを編集します。ファイル内のグループ名は eks-console-dashboard-restricted-access-group です。これは、IAM ユーザーまたはロールを aws-auth configmap でマッピングする必要があるグループです。必要に応じて、クラスターに適用する前にグループの名前を変更し、IAM ユーザーまたはロールを configmap でそのグループにマッピングできます。ファイルをダウンロードするには、クラスターがあるリージョンの適切なリンクを選択します。

aws-auth ConfigMap がクラスターにアクセスを許可しない

AWS IAM Authenticator は、設定マップで使用されるロール ARN でパスを許可しません。したがって、rolearn を指定する前に、パスを削除してください。たとえば、arn:aws:iam::<123456789012>:role/<team>/<developers>/<eks-admin>arn:aws:iam::<123456789012>:role/<eks-admin> に変更します。

iam:PassRole を実行する権限がない

iam:PassRole アクションを実行する権限がないというエラーが表示された場合、管理者に問い合わせ、サポートを依頼する必要があります。お客様のユーザー名とパスワードを発行したのが、担当の管理者です。Amazon EKS にロールを渡すことができるようにポリシーを更新するよう、管理者に依頼します。

一部の AWS サービスでは、新しいサービスロールまたはサービスにリンクされたロールを作成せずに、既存のロールをサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

以下の例のエラーは、marymajor という IAM ユーザーがコンソールを使用して Amazon EKS でアクションを実行しようする場合に発生します。ただし、アクションでは、サービスロールによって付与されたアクセス許可がサービスにある必要があります。メアリーには、ロールをサービスに渡すアクセス許可がありません。

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

この場合、メアリーは担当の管理者に iam:PassRole アクションを実行できるようにポリシーの更新を依頼します。

アクセスキーを表示する場合

IAM ユーザーアクセスキーを作成した後は、いつでもアクセスキー ID を表示できます。ただし、シークレットアクセスキーをもう一度表示することはできません。シークレットアクセスキーを紛失した場合は、新しいキーペアを作成する必要があります。

アクセスキーは、アクセスキー ID (例: AKIAIOSFODNN7EXAMPLE) とシークレットアクセスキー (例: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY) の 2 つの部分から構成されます。ユーザー名とパスワードと同様に、リクエストを認証するために、アクセスキー ID とシークレットアクセスキーの両方を使用する必要があります。ユーザー名とパスワードと同様に、アクセスキーをしっかり管理してください。

重要

正規ユーザー ID を確認するためであっても、アクセスキーをサードパーティーに提供しないでください。提供すると、第三者がアカウントへの永続的アクセスを取得する場合があります。

アクセスキーペアを作成する場合、アクセスキー ID とシークレットアクセスキーを安全な場所に保存するように求めるプロンプトが表示されます。このシークレットアクセスキーは、作成時にのみ使用できます。シークレットアクセスキーを紛失した場合、新しいアクセスキーを IAM ユーザーに追加する必要があります。最大 2 つのアクセスキーを持つことができます。すでに 2 つある場合は、新しいキーペアを作成する前に、いずれかを削除する必要があります。手順を確認するには、IAM ユーザーガイドの「アクセスキーの管理」を参照してください。

管理者として Amazon EKS へのアクセスを他のユーザーに許可する

Amazon EKS へのアクセスを他のユーザーに許可するには、アクセスを必要とする人またはアプリケーションの IAM エンティティ (ユーザーまたはロール) を作成する必要があります。ユーザーは、このエンティティの認証情報を使用して AWS にアクセスします。次に、Amazon EKS の適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要があります。

すぐに開始するには、IAM ユーザーガイドの「IAM が委任した最初のユーザーおよびグループの作成」を参照してください 。

自分の AWS アカウント以外のユーザーに Amazon EKS リソースへのアクセスを許可する場合

他のアカウントのユーザーや組織外のユーザーが、リソースへのアクセスに使用できるロールを作成できます。ロールを引き受けるように信頼されたユーザーを指定することができます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください。