AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Amazon EKS 클러스터를 위한 kubconfig 파일을 생성할 수 없는 이유는 무엇인가요?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에 대한 kubeconfig 파일을 생성하려고 할 때 AccessDeniedException 오류가 발생합니다.

간략한 설명

클러스터에 eks:DescribeCluster 클러스터에 대한 kubeconfig 파일을 생성하려면 클러스터에 대한 API 작업을 사용할 수 있는 권한이 있어야 합니다. 권한을 얻으려면, AWS Identity and Access Management(AWS 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 Command Line Interface(AWS CLI)를 사용하는 IAM 사용자에 대해 다중 인증(MFA)을 적용했다면 다음 단계를 완료하기 전에 MFA로 인증해야 합니다. 명시적 거부 메시지는 MFA가 거짓인 경우 작업을 거부하는 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 디바이스를 사용하기 때문에 MFA 토큰을 사용하여 AWS CLI로 AWS 리소스에 대한 액세스를 인증해야 합니다. MFA 토큰을 사용하여 AWS CLI를 통해 AWS 리소스에 대한 액세스를 인증하려면 어떻게 하나요? 문서의 단계를 따르세요. 그런 다음, sts get-session-token AWS CLI 명령을 실행합니다. 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 공식업데이트됨 일 년 전