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
-
액세스 항목 생성 - 클러스터가 클러스터 Kubernetes 버전의 EKS 액세스 항목을 사용한 IAM 사용자에게 Kubernetes에 대한 액세스 권한 부여사전 조건 섹션에 나열된 플랫폼 버전 이상인 경우 이 옵션을 사용하는 것이 좋습니다.
액세스 항목을 사용하여 클러스터 외부에서 IAM 보안 주체의 Kubernetes 권한을 관리합니다. EKS API, AWS 명령줄 인터페이스, AWS SDK, AWS CloudFormation 및 AWS Management Console를 사용하여 클러스터에 대한 액세스를 추가하고 관리할 수 있습니다. 즉, 클러스터를 생성할 때 사용한 것과 동일한 도구로 사용자를 관리할 수 있습니다.
시작하려면 인증 모드 액세스 항목을 사용하도록 인증 모드 변경변경에 따라 액세스 항목을 사용한 다음 기존 aws-auth ConfigMap 항목을 기존 aws-auth ConfigMap 항목을 액세스 항목으로 마이그레이션마이그레이션하여 항목에 액세스합니다.
-
aws-auth
ConfigMap
에 항목 추가 - 클러스터의 플랫폼 버전이 EKS 액세스 항목을 사용한 IAM 사용자에게 Kubernetes에 대한 액세스 권한 부여사전 조건 섹션에 나열된 버전 이하인 경우 이 옵션을 사용해야 합니다. 클러스터의 플랫폼 버전이 클러스터 Kubernetes 버전의 EKS 액세스 항목을 사용한 IAM 사용자에게 Kubernetes에 대한 액세스 권한 부여사전 조건 섹션에 나열된 플랫폼 버전 이상이고ConfigMap
에 항목을 추가한 경우 해당 항목을 액세스 항목으로 마이그레이션하는 것이 좋습니다. 그러나 관리형 노드 그룹 또는 Fargate 프로파일과 함께 사용되는 IAM 역할 항목과 같이 Amazon EKS가ConfigMap
에 추가한 항목은 마이그레이션할 수 없습니다. 자세한 내용은 IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여 단원을 참조하십시오.-
aws-auth
ConfigMap
옵션을 사용해야 하는 경우eksctl create iamidentitymapping
명령을 사용하여ConfigMap
에 항목을 추가할 수 있습니다. 자세한 내용은eksctl
설명서의 IAM 사용자 및 역할 관리를 참조하세요.
-
클러스터 인증 모드 설정
각 클러스터에는 인증 모드가 있습니다. 인증 모드는 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 그룹을 사용하여 사용자 지정 권한을 할당할 수 있습니다.
인증 모드 | 메서드 |
---|---|
|
|
EKS API 및 |
EKS API, AWS 명령줄 인터페이스, AWS SDKs, AWS CloudFormation 및 AWS Management Console 및 |
EKS API만 해당( |
EKS API, AWS 명령줄 인터페이스, AWS SDKs, AWS CloudFormation 및 AWS Management Console의 액세스 항목 |