

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

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

# IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여
<a name="grant-k8s-access"></a>

클러스터에는 Kubernetes API 엔드포인트가 있습니다. Kubectl은 이 API를 사용합니다. 다음 두 유형의 ID를 사용하여 이 API에 인증할 수 있습니다.
+  **AWS ID 및 액세스 관리(IAM) *보안 주체*(역할 또는 사용자)** - 이 유형에는 IAM에 대한 인증이 필요합니다. 자격 증명 소스를 통해 제공된 보안 인증 정보를 사용하여 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 사용자 또는 [페더레이션 ID](https://aws.amazon.com/identity/federation/)로 AWS에 로그인할 수 있습니다. 관리자가 이전에 IAM 역할을 사용하여 ID 페더레이션을 설정한 경우 페더레이션형 ID로만 로그인할 수 있습니다. 페더레이션을 사용하여 AWS에 액세스하면 간접적으로 [역할을 수임](https://docs.aws.amazon.com/IAM/latest/UserGuide/when-to-use-iam.html#security-iam-authentication-iamrole)합니다. 이 유형의 ID를 사용하는 경우 다음을 수행할 수 있습니다.
  + 클러스터의 Kubernetes 객체에서 작업할 수 있도록 Kubernetes 권한을 할당할 수 있습니다. 클러스터의 Kubernetes 객체에 액세스할 수 있도록 IAM 위탁자에 권한을 할당하는 방법에 대한 자세한 내용은 [EKS 액세스 항목을 사용한 IAM 사용자에게 Kubernetes에 대한 액세스 권한 부여](access-entries.md) 섹션을 참조하세요.
  + Amazon EKS API, AWS CLI, AWS CloudFormation, AWS Management Console 또는 `eksctl`을 사용하여 Amazon EKS 클러스터 및 해당 리소스에서 작업할 수 있도록 IAM 권한을 할당할 수 있습니다. 자세한 내용은 서비스 권한 부여 참조에서 [Amazon Elastic Kubernetes Service에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)을 참조하세요.
  + 노드는 IAM 역할을 수임하여 클러스터에 조인합니다. IAM 보안 주체를 사용하는 클러스터에 액세스하는 기능은 [Kubernetes용 AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme)에서 제공되며, Amazon EKS 컨트롤 플레인에서 실행됩니다.
+  **자체 OpenID Connect(OIDC) 제공자의 사용자** - 이 유형은 [OIDC](https://openid.net/connect/) 제공자에 대한 인증이 필요합니다. Amazon EKS 클러스터에서 자체 OIDC 제공자를 설정하는 방법에 대한 자세한 내용은 [외부 OIDC 제공자를 통해 사용자에게 Kubernetes에 대한 액세스 권한 부여](authenticate-oidc-identity-provider.md) 섹션을 참조하세요. 이 유형의 ID를 사용하는 경우 다음을 수행할 수 있습니다.
  + 클러스터의 Kubernetes 객체에서 작업할 수 있도록 Kubernetes 권한을 할당할 수 있습니다.
  + Amazon EKS API, AWS CLI, AWS CloudFormation, AWS Management Console 또는 `eksctl`을 사용하여 Amazon EKS 클러스터 및 해당 리소스에서 작업할 수 있도록 IAM 권한을 할당할 수 없습니다.

클러스터에서는 두 가지 유형의 ID를 모두 사용할 수 있습니다. IAM 인증 방법은 비활성화할 수 없습니다. OIDC 인증 방법은 선택 사항입니다.

## IAM 자격 증명을 Kubernetes 권한과 연결
<a name="authentication-modes"></a>

[Kubernetes용 AWS IAM Authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme)는 클러스터의 컨트롤 플레인에 설치됩니다. [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) 위탁자(역할 및 사용자)가 클러스터의 Kubernetes 리소스에 액세스할 수 있습니다. 다음 방법 중 하나를 사용하여 IAM 위탁자가 클러스터의 Kubernetes 객체에 액세스하도록 허용할 수 있습니다.
+  **액세스 항목 생성** - 클러스터가 클러스터의 Kubernetes 버전의 [사전 조건](access-entries.md) 섹션에 나열된 플랫폼 버전 이상인 경우 이 옵션을 사용하는 것이 좋습니다.

  *액세스 항목*을 사용하여 클러스터 외부에서 IAM 위탁자의 Kubernetes 권한을 관리합니다. EKS API, AWS 명령줄 인터페이스, AWS SDK, AWS CloudFormation 및 AWS Management Console를 사용하여 클러스터에 대한 액세스를 추가하고 관리할 수 있습니다. 즉, 클러스터를 생성할 때 사용한 것과 동일한 도구로 사용자를 관리할 수 있습니다.

  시작하려면 [인증 모드를 액세스 항목을 사용하도록 변경](setting-up-access-entries.md)에 따라 [기존 aws-auth ConfigMap 항목을 액세스 항목으로 마이그레이션](migrating-access-entries.md)합니다.
+  **`aws-auth` `ConfigMap`에 항목 추가**-클러스터의 플랫폼 버전이 [사전 조건](access-entries.md) 섹션에 나열된 버전 이하인 경우 이 옵션을 사용해야 합니다. 클러스터의 플랫폼 버전이 클러스터의 Kubernetes 버전의 [사전 조건](access-entries.md) 섹션에 나열된 플랫폼 버전 이상이고 `ConfigMap`에 항목을 추가한 경우 해당 항목을 액세스 항목으로 마이그레이션하는 것이 좋습니다. 그러나 관리형 노드 그룹 또는 Fargate 프로필과 함께 사용되는 IAM 역할 항목과 같이 Amazon EKS가 `ConfigMap`에 추가한 항목은 마이그레이션할 수 없습니다. 자세한 내용은 [IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여](#grant-k8s-access) 섹션을 참조하세요.
  + `aws-auth` `ConfigMap` 옵션을 사용해야 하는 경우 `eksctl create iamidentitymapping` 명령을 사용하여 `ConfigMap`에 항목을 추가할 수 있습니다. 자세한 내용은 `eksctl` 설명서의 [IAM 사용자 및 역할 관리](https://eksctl.io/usage/iam-identity-mappings/)를 참조하세요.

## 클러스터 인증 모드 설정
<a name="set-cam"></a>

각 클러스터에는 *인증 모드*가 있습니다. 인증 모드는 IAM 위탁자가 클러스터의 Kubernetes 객체에 액세스하도록 허용하는 데 사용할 수 있는 방법을 결정합니다. 세 가지 인증 모드가 있습니다.

**중요**  
액세스 항목 방법을 활성화한 후에는 비활성화할 수 없습니다.  
클러스터 생성 중에 `ConfigMap` 방법을 활성화하지 않으면 나중에 활성화할 수 없습니다. 액세스 항목이 도입되기 전에 생성된 모든 클러스터에는 `ConfigMap` 메서드가 활성화되어 있습니다.  
클러스터에서 하이브리드 노드를 사용하는 경우 `API` 또는 `API_AND_CONFIG_MAP` 클러스터 인증 모드를 사용해야 합니다.

 **클러스터 내부 `aws-auth` `ConfigMap` **   
Amazon EKS 클러스터의 원래 인증 모드입니다. 클러스터를 생성한 IAM 보안 주체는 `kubectl`을 사용하여 클러스터에 액세스할 수 있는 초기 사용자입니다. 초기 사용자는 `aws-auth` `ConfigMap`에서 목록에 다른 사용자를 추가하고 클러스터 내 다른 사용자에게 영향을 주는 권한을 할당해야 합니다. `ConfigMap`에 관리할 항목이 없기 때문에 이러한 다른 사용자는 초기 사용자를 관리하거나 제거할 수 없습니다.

 **`ConfigMap` 및 액세스 항목 모두**   
이 인증 모드에서는 두 가지 방법을 모두 사용하여 클러스터에 IAM 보안 주체를 추가할 수 있습니다. 각 방법에서는 별도의 항목을 저장합니다. 예를 들어, AWS CLI에서 액세스 항목을 추가하는 경우 `aws-auth` `ConfigMap`이 업데이트되지 않습니다.

 **액세스 항목만**   
이 인증 모드에서는 EKS API, AWS 명령줄 인터페이스, AWS SDK, AWS CloudFormation 및 AWS Management Console을 사용하여 IAM 보안 주체의 클러스터에 대한 액세스를 관리할 수 있습니다.  
각 액세스 항목에는 *유형*이 있으며, 보안 주체를 특정 네임스페이스로 제한하는 *액세스 범위*와 사전 구성된 재사용 가능한 권한 정책을 설정하는 *액세스 정책*을 조합하여 사용할 수 있습니다. 또는 STANDARD 유형 및 Kubernetes RBAC 그룹을 사용하여 사용자 지정 권한을 할당할 수 있습니다.


| 인증 모드 | 메서드 | 
| --- | --- | 
|   `ConfigMap`만 해당(`CONFIG_MAP`)  |   `aws-auth` `ConfigMap`   | 
|  EKS API 및 `ConfigMap`(`API_AND_CONFIG_MAP`)  |  EKS API, AWS 명령줄 인터페이스, AWS SDKs, AWS CloudFormation 및 AWS Management Console 및 `aws-auth` `ConfigMap`의 액세스 항목   | 
|  EKS API만 해당(`API`)  |  EKS API, AWS 명령줄 인터페이스, AWS SDKs, AWS CloudFormation 및 AWS Management Console의 액세스 항목   | 

**참고**  
Amazon EKS Auto Mode에는 액세스 항목이 필요합니다.