AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon EKS クラスターの kubeconfig ファイルを生成できないのはなぜですか?

所要時間2分
0

Amazon Elastic Kubernetes Service (Amazon EKS) クラスターの kubeconfig ファイルを生成しようとすると、AccessDeniedException エラーが発生します。

簡単な説明

Amazon EKS クラスターの kubeconfig ファイルを生成するには、クラスターで eks:DescribeCluster API アクションを使用できる権限が必要です。権限を得るには、AWS Identity and Access Management (IAM) ポリシーを IAM ユーザーにアタッチします。

解決策

IAM ポリシーをユーザーにアタッチするには、次の手順を実行します。

  1. IAM コンソールを開きます。次に、ナビゲーションペインで [ユーザー] または [ロール] を選択します。

  2. ポリシーを埋め込むユーザーまたはロールの名前を選択します。

  3. [権限] タブで [インラインポリシーを追加] を選択します。

  4. [JSON] タブを選択します。

  5. テキストエディタを使用して、コードを次の IAM ポリシーに置き換えます。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "eks:DescribeCluster"
          ],
          "Resource": "*"
        }
      ]
    }
  6. [ポリシーを確認] を選択します。

  7. [名前] にポリシーの名前を入力します。例: eks_update-kubeconfig

  8. [ポリシーを作成] を選択します。
    : AWS コマンドラインインターフェイス (AWS CLI) を使用する IAM ユーザーに対して多要素認証 (MFA) を導入した場合は、次のステップを完了する前に MFA で認証する必要があります。明示的な拒否メッセージは、MFA が false の場合、アクションを拒否する IAM ポリシーがあることを示します。

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "BlockMostAccessUnlessSignedInWithMFA",
          "Effect": "Deny",
          "NotAction": [
            "iam:CreateVirtualMFADevice",
            "iam:EnableMFADevice",
            "iam:ListMFADevices",
            "iam:ListUsers",
            "iam:ListVirtualMFADevices",
            "iam:ResyncMFADevice",
            "sts:GetSessionToken"
          ],
          "Resource": "*",
          "Condition": {
            "BoolIfExists": {
              "aws:MultiFactorAuthPresent": "false"
            }
          }
        }
      ]
    }

    MFA デバイスを使用することにより、AWS CLI で AWS リソースへのアクセスを認証するには MFA トークンを使用する必要があります。記事「MFA トークンを使用して、AWS CLI を通じて AWS リソースへのアクセスを認証するにはどうすればよいですか?」に記載されている手順に従って、AWS CLI コマンド sts get-session-token を実行してください。arn-of-the-mfa-device を MFA デバイスの ARN に置き換え、code-from-token をトークンのコードに置き換えます。

    $ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

    値を環境変数にエクスポートすることで、一時的な認証情報を使用できます。

    例:

    $ export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output$ export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output$ export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
  9. update-kubeconfig コマンドを実行して、~/.kube/config の下にある設定ファイルが更新されることを確認します。 region-code を AWS リージョンのコードに置き換え、cluster_name をクラスター名に置き換えます。

    aws eks --region region-code update-kubeconfig --name cluster_name
AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ