IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여 - Amazon EKS

IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여

클러스터에는 Kubernetes API 엔드포인트가 있습니다. Kubectl은 이 API를 사용합니다. 다음 두 유형의 ID를 사용하여 이 API에 인증할 수 있습니다.

  • AWS ID 및 액세스 관리(IAM) 보안 주체(역할 또는 사용자) - 이 유형에는 IAM에 대한 인증이 필요합니다. 자격 증명 소스를 통해 제공된 보안 인증 정보를 사용하여 IAM 사용자 또는 페더레이션 ID로 AWS에 로그인할 수 있습니다. 관리자가 이전에 IAM 역할을 사용하여 ID 페더레이션을 설정한 경우 페더레이션형 ID로만 로그인할 수 있습니다. 페더레이션을 사용하여 AWS에 액세스하면 간접적으로 역할을 수임합니다. 이 유형의 ID를 사용하는 경우 다음을 수행할 수 있습니다.

    • 클러스터의 Kubernetes 객체에서 작업할 수 있도록 Kubernetes 권한을 할당할 수 있습니다. 클러스터의 Kubernetes 객체에 액세스할 수 있도록 IAM 보안 주체에 권한을 할당하는 방법에 대한 자세한 내용은 EKS 액세스 항목을 사용한 IAM 사용자에게 Kubernetes에 대한 액세스 권한 부여을 참조하세요.

    • Amazon EKS API, AWS CLI, AWS CloudFormation, AWS Management Console 또는 eksctl을 사용하여 Amazon EKS 클러스터 및 해당 리소스에서 작업할 수 있도록 IAM 권한을 할당할 수 있습니다. 자세한 내용은 서비스 권한 부여 참조에서 Amazon Elastic Kubernetes Service에서 정의한 작업을 참조하세요.

    • 노드는 IAM 역할을 수임하여 클러스터에 조인합니다. IAM 보안 주체를 사용하는 클러스터에 액세스하는 기능은 Kubernetes용 AWS IAM Authenticator에서 제공되며, Amazon EKS 컨트롤 플레인에서 실행됩니다.

  • 자체 OpenID Connect (OIDC) 제공업체의 사용자 - 이 유형은 OIDC 제공업체에 대한 인증이 필요합니다. Amazon EKS 클러스터에서 자체 OIDC 제공업체를 설정하는 방법에 대한 자세한 내용은 외부 OIDC 공급자를 통해 사용자에게 Kubernetes에 대한 액세스 권한 부여 섹션을 참조하세요. 이 유형의 ID를 사용하는 경우 다음을 수행할 수 있습니다.

    • 클러스터의 Kubernetes 객체에서 작업할 수 있도록 Kubernetes 권한을 할당할 수 있습니다.

    • Amazon EKS API, AWS CLI, AWS CloudFormation, AWS Management Console 또는 eksctl을 사용하여 Amazon EKS 클러스터 및 해당 리소스에서 작업할 수 있도록 IAM 권한을 할당할 수 없습니다.

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

IAM 자격 증명을 Kubernetes 권한과 연결

Kubernetes용 AWS IAM Authenticator는 클러스터의 컨트롤 플레인에 설치됩니다. 이를 통해 AWS ID 및 액세스 관리(IAM) 보안 주체(역할 및 사용자)가 클러스터의 Kubernetes 리소스에 액세스할 수 있습니다. 다음 방법 중 하나를 사용하여 IAM 보안 주체가 클러스터의 Kubernetes 객체에 액세스하도록 허용할 수 있습니다.

클러스터 인증 모드 설정

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

중요

액세스 항목 방법을 활성화한 후에는 비활성화할 수 없습니다.

클러스터 생성 중에 ConfigMap 방법을 활성화하지 않으면 나중에 활성화할 수 없습니다. 액세스 항목이 도입되기 전에 생성된 모든 클러스터에는 ConfigMap 메서드가 활성화되어 있습니다.

클러스터 내부 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의 액세스 항목