

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# Kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결
<a name="create-kubeconfig"></a>

**작은 정보**  
 향후 예정된 Amazon EKS 워크숍에 [등록](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el)합니다.

이 주제에서는 클러스터에 대한 `kubeconfig` 파일을 생성하거나 기존 파일을 업데이트합니다.

`kubectl` 명령줄 도구는 `kubeconfig` 파일의 구성 정보를 사용하여 클러스터의 API 서버와 통신합니다. 자세한 내용은 쿠버네티스 문서의 [kubeconfig 파일을 사용하여 클러스터 접근 구성하기](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)를 참조하세요.

Amazon EKS는 클러스터 인증을 위해 `kubectl`과 함께 `aws eks get-token` 명령을 사용합니다. 기본적으로 AWS CLI에서는 다음 명령을 사용하여 반환되는 것과 동일한 보안 인증 정보를 사용합니다.

```
aws sts get-caller-identity
```
+ 기존 Amazon EKS 클러스터. 배포하려면 [Amazon EKS 시작하기](getting-started.md) 섹션을 참조하세요.
+ `kubectl` 명령줄 도구는 장치 또는 AWS CloudShell에 설치됩니다. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어, 클러스터 버전이 `1.29`인 경우 `kubectl` 버전 `1.28`, `1.29` 또는 `1.30`를 함께 사용할 수 있습니다. `kubectl`을 설치하거나 업그레이드하려면 [`kubectl` 및 `eksctl` 설정](install-kubectl.md) 부분을 참조하세요.
+ 장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전 `2.12.3` 이상 또는 버전 `1.27.160` 이상 또는 AWS CloudShell. 현재 버전을 확인하려면 `aws --version | cut -d / -f2 | cut -d ' ' -f1`을 사용합니다. `yum`, `apt-get` 또는 macOS용 Homebrew 같은 패키지 관리자는 최신 버전의 AWS CLI 이전에 나온 버전이 몇 가지 있을 때도 있습니다. 최신 버전을 설치하려면 * AWS 명령줄 인터페이스 사용 설명서*에서 [설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 및 [aws config를 사용하여 빠른 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 * AWS CloudShell 사용 설명서*의 [홈 디렉터리에 AWS CLI 설치하기](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software)를 참조하세요.
+ 지정한 클러스터에 대해 `eks:DescribeCluster` API 작업을 사용할 수 있는 권한을 보유한 IAM 사용자 또는 역할. 자세한 내용은 [Amazon EKS 자격 증명 기반 정책 예제](security-iam-id-based-policy-examples.md) 섹션을 참조하세요. 자체 OpenID Connect 제공업체의 ID를 사용하여 클러스터에 액세스하는 경우 Kubernetes Documentation의 [Using kubectl](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-kubectl)을 참조하여 `kube config` 파일을 생성하거나 업데이트합니다.

## 자동으로 `kubeconfig` 파일 생성
<a name="create-kubeconfig-automatically"></a>
+ 장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전 `2.12.3` 이상 또는 버전 `1.27.160` 이상 또는 AWS CloudShell. 현재 버전을 확인하려면 `aws --version | cut -d / -f2 | cut -d ' ' -f1`을 사용합니다. `yum`, `apt-get` 또는 macOS용 Homebrew 같은 패키지 관리자는 최신 버전의 AWS CLI 이전에 나온 버전이 몇 가지 있을 때도 있습니다. 최신 버전을 설치하려면 * AWS 명령줄 인터페이스 사용 설명서*에서 [설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 및 [aws config를 사용하여 빠른 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 * AWS CloudShell 사용 설명서*의 [홈 디렉터리에 AWS CLI 설치하기](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software)를 참조하세요.
+ 지정한 클러스터에 대해 `eks:DescribeCluster` API 작업을 사용할 수 있는 권한. 자세한 내용은 [Amazon EKS 자격 증명 기반 정책 예제](security-iam-id-based-policy-examples.md) 섹션을 참조하세요.

  1. 클러스터에 대해 `kubeconfig` 파일을 생성 또는 업데이트합니다. *region-code*를 클러스터를 생성한 AWS 리전으로 바꾸고 *my-cluster*를 클러스터 이름으로 바꿉니다.

     ```
     aws eks update-kubeconfig --region region-code --name my-cluster
     ```

     기본적으로 구성 파일은 홈 디렉터리의 기본 `kubeconfig` 경로(`.kube`)에 생성되거나 해당 위치의 기존 `config` 파일과 병합됩니다. `--kubeconfig` 옵션을 사용하여 다른 경로를 지정할 수 있습니다.

     `--role-arn` 옵션으로 IAM 역할 ARN을 지정하면 `kubectl` 명령을 실행할 때 인증에 사용할 수 있습니다. 그렇지 않으면 기본 AWS CLI 또는 SDK 자격 증명 체인의 [IAM 보안 주체](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)가 사용됩니다. `aws sts get-caller-identity` 명령을 실행하여 기본 AWS CLI 또는 SDK ID를 확인할 수 있습니다.

     사용 가능한 모든 옵션을 알아보려면 `aws eks update-kubeconfig help` 명령을 실행하거나 *AWS CLI 명령 참조*의 [update-kubeconfig](https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html)를 참조하세요.

  1. 구성을 테스트합니다.

     ```
     kubectl get svc
     ```

     예제 출력은 다음과 같습니다.

     ```
     NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
     svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m
     ```

     권한 부여 또는 리소스 유형 오류가 표시되는 경우 문제 해결 주제의 [권한이 없거나 액세스가 거부됨(`kubectl`)](troubleshooting.md#unauthorized) 부분을 참조하세요.