기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EKS 액세스 항목 인증
Amazon EKS는 클러스터의 Kubernetes API를 호출할 수 있는 권한을 IAM 보안 주체에 부여하는 두 가지 메커니즘, 즉 레거시 aws-auth ConfigMap과 최신 액세스 항목 API를 지원합니다. 액세스 항목은 두 메커니즘 중 하나를 통해 클러스터에 인증할 수 있는 ConfigMap. AWS Batch can을 편집할 필요 없이 IAM 보안 주체에 대한 Kubernetes API 액세스 권한을 부여합니다.
컴퓨팅 환경에서를 ENABLED eksConfiguration.accessEntry.desiredState로 설정하면 AWS Batch 가 클러스터에서 해당 컴퓨팅 환경의 액세스 항목을 관리할 수 있습니다. 더 이상 aws-auth ConfigMap을 수동으로 편집할 필요가 없습니다.
가 액세스 항목을 AWS Batch 프로비저닝하는지 여부는 AWS Batch 컴퓨팅 환경과 Amazon EKS 클러스터 구성에 따라 달라집니다. 세부 정보는 클러스터의와 상호 작용 authenticationMode 섹션을 참조하세요.
accessEntry.desiredState에 대한 값
의 desiredState 필드는 컴퓨팅 환경에 대해 원하는 액세스 항목 상태를 EksAccessEntry 선언합니다. 유효값은 다음과 같습니다.
ENABLED-
AWS Batch 는 컴퓨팅 환경에 대해 클러스터에 AWS Batch관리형 액세스 항목을 생성합니다. AWS Batch 는 클러스터의 모든 컴퓨팅 환경이를
desiredState로 설정한 경우에만 AWS Batch관리형 액세스 항목을 생성합니다ENABLED(가 컴퓨팅 환경 desiredState 간에 AWS Batch 를 조정하는 방법자세한 내용은 참조). DISABLED-
AWS Batch 는 클러스터의 AWS Batch관리형 액세스 항목을 삭제합니다. AWS Batch 는 클러스터의 모든 컴퓨팅 환경이를
desiredState로 설정한 경우에만 AWS Batch관리형 액세스 항목을 삭제합니다DISABLED(가 컴퓨팅 환경 desiredState 간에 AWS Batch 를 조정하는 방법자세한 내용은 참조). 클러스터에 대한 액세스는aws-authConfigMap을 통해 구성해야 합니다. INHERIT_FROM_CLUSTER-
AWS Batch 는 클러스터의 현재 액세스 항목를 연기합니다
status. 인증 모드가 인 Amazon EKS 클러스터에서는 클러스터에 대체할aws-authConfigMap이 없기 때문에 액세스 항목을APIAWS Batch 생성하고 관리합니다. 인증 모드가CONFIG_MAP또는 인 클러스터에서는 액세스 항목을 추가하거나 제거API_AND_CONFIG_MAPAWS Batch 하지 않습니다.
또한 컴퓨팅 환경은 DescribeComputeEnvironments 응답에 읽기 전용 accessEntry.status 필드를 노출합니다. ACTIVE는 컴퓨팅 환경에 대한 AWS Batch관리형 액세스 항목이 클러스터에 존재하고 ConfigMap보다 우선한다는 의미입니다. aws-auth는 AWS Batch관리형 액세스 항목이 없음을 INACTIVE 의미합니다. 이는 desiredState, 클러스터DISABLED를 대상으로 하는 컴퓨팅 환경이 아직에 동의하지 않거나 항목이 아직 프로비저닝되지 desiredState않았기 때문일 수 있습니다. 이 accessEntry.status인 경우 INACTIVE배치는 클러스터 액세스에 aws-auth ConfigMap을 사용합니다.
참고
AWS Batch 가 액세스 정책을 사용할 수 있도록 연결하지 않은 경우에도 액세스 항목은 클러스터에 있는 ACTIVE 즉시 보고합니다. 가 accessEntry.status인 INVALID 동안 컴퓨팅 환경 상태가 로 변경되면 섹션을 ACTIVE참조하세요Amazon EKS 액세스 항목 설정이 불완전함.
참고
accessEntry 필드를 생략하면 AWS Batch 는 컴퓨팅 환경에 desiredState 대한를 기록하지 않고 반환하지 DescribeComputeEnvironments 않습니다. 액세스 항목을 프로비저닝하기 위해는 에서와 같이 AWS Batch 동작합니다INHERIT_FROM_CLUSTER.
클러스터의와 상호 작용 authenticationMode
의 AWS Batch 동작 방식은 클러스터의 인증 모드에 desiredState 따라 달라집니다. 다음 표는 CreateComputeEnvironment 및 모두에 적용됩니다UpdateComputeEnvironment.
클러스터 |
컴퓨팅 환경 |
컴퓨팅 환경 |
컴퓨팅 환경 |
|---|---|---|---|
|
액세스 항목은 클러스터에서 사용할 수 없으므로는 액세스 항목을 생성하거나 제거 AWS Batch 하지 않습니다. AWS Batch 는 지정한 값을 기록합니다. 클러스터의 인증 모드를 변경하면 기록된 값이를 지정하는 다음 |
||
|
AWS Batch 는 클러스터를 공유하는 컴퓨팅 환경에서 기록된 값을 비교합니다. 단원을 참조하십시오가 컴퓨팅 환경 desiredState 간에 AWS Batch 를 조정하는 방법. |
기존 액세스 모드는 유지됩니다.는 액세스 항목을 추가하거나 제거하지 AWS Batch 않습니다. |
|
|
액세스 항목은 클러스터에서 생성되고 유지됩니다. |
요청이 거부됩니다. 이 모드의 클러스터는 |
액세스 항목은 클러스터에서 생성되고 유지됩니다. 클러스터가 |
가 컴퓨팅 환경 desiredState 간에 AWS Batch 를 조정하는 방법
단일 Amazon EKS 클러스터는 여러 AWS Batch 컴퓨팅 환경을 지원할 수 있으므로 클러스터의 액세스 구성은 공유 리소스입니다. AWS Batch 따라서는 해당 컴퓨팅 환경에서 기록된 desiredState 값을 조정하거나 비교 및 해결합니다.
클러스터의이 인 경우 API_AND_CONFIG_MAPauthenticationMode는 클러스터를 대상으로 하는 동일한 AWS 계정 및 AWS 리전의 모든 컴퓨팅 환경에 대해 desiredState 기록된를 AWS Batch 비교합니다.는이 비교를 AWS Batch 사용하여를 지정하는 각 CreateComputeEnvironment 또는 UpdateComputeEnvironment 작업에 액세스 항목을 추가 또는 제거할지 여부를 결정합니다desiredState.
- 모든 컴퓨팅 환경에는
desiredState=ENABLED -
AWS Batch 는 클러스터에 액세스 항목을 생성합니다.
- 모든 컴퓨팅 환경에는
desiredState=DISABLED -
AWS Batch 는 액세스 항목이 있는 경우 클러스터에서 액세스 항목을 삭제합니다.
- 기록된
desiredState값이 모두 일치하지 않는 경우 -
AWS Batch 는 기존 액세스 모드를 유지합니다. 액세스 항목은 추가되거나 제거되지 않습니다. 여기에는
ENABLED,DISABLED및의 모든 혼합이 포함되며INHERIT_FROM_CLUSTER가desiredState기록되지 않은 컴퓨팅 환경도 포함됩니다.
참고
인증 모드가 aws-auth ConfigMapAPI_AND_CONFIG_MAP인 클러스터를 액세스 항목 인증으로 전환하려면 클러스터desiredState=ENABLED를 대상으로 하는 모든 AWS Batch 컴퓨팅 환경에를 설정합니다. 다시 전환하려면 모든 desiredState=DISABLED에를 설정합니다.
가 클러스터에 AWS Batch 생성하는 내용
AWS Batch 는 위의 조건을 충족하는 클러스터당 하나의 액세스 항목을 생성한 다음 AWSBatchClusterPolicy Amazon EKS 액세스 정책을 해당 액세스 항목과 연결합니다. 액세스 항목은 컴퓨팅 환경이 아닌 클러스터당이므로 동일한 클러스터를 대상으로 하는 모든 AWS Batch 컴퓨팅 환경이 이를 공유합니다.
참고
컴퓨팅 환경을 삭제해도 클러스터의 마지막 AWS Batch 컴퓨팅 환경인 경우에도 액세스 항목은 제거되지 않습니다. AWS Batch관리형 액세스 항목을 제거하려면 클러스터를 대상으로 하는 UpdateComputeEnvironment desiredState=DISABLED 모든 AWS Batch 컴퓨팅 환경에서 삭제하기 전에를 호출합니다.
액세스 항목만으로는 클러스터에서 작업을 실행하기에 충분하지 않습니다. 직접 구성해야 하는 Kubernetes 권한 및 노드 액세스는 섹션을 참조하세요여전히 제공해야 하는 클러스터 구성.
필수 권한
AWS Batch 는 CreateComputeEnvironment 또는 UpdateComputeEnvironment 작업을 호출하는 IAM 자격 증명의 자격 증명을 사용하여 액세스 항목을 관리합니다. 이 자격 증명은 다음 Amazon EKS 작업을 수행할 수 있어야 합니다.
-
eks:DescribeCluster -
eks:DescribeAccessEntry -
eks:CreateAccessEntry -
eks:AssociateAccessPolicy -
eks:DeleteAccessEntry
액세스 항목 구성
CreateComputeEnvironment 또는 UpdateComputeEnvironment API의 eksConfiguration.accessEntry 필드를 통해 컴퓨팅 환경에서 액세스 항목을 구성할 수 있습니다.
여전히 제공해야 하는 클러스터 구성
액세스 항목은가 클러스터에 AWS Batch 대해 인증하는 방법만 제어합니다. 작업을 실행하는 데 필요한 AWS Batch Kubernetes 권한을 부여하지 않으며 AWS Batch 시작하는 인스턴스가 클러스터에 조인하도록 허용하지 않습니다. 사용하는 인증 메커니즘에 관계없이 다음 두 가지를 모두 구성해야 합니다.
중요
클러스터(accessEntry.status=ACTIVE)의 AWS Batch 서비스 연결 역할에 대해 AWS Batch관리형 액세스 항목이 생성되면 해당 역할에 대한 aws-auth ConfigMap 구성보다 우선합니다. AWS Batch 서비스 연결 역할에 대한 ConfigMap 항목은 사용되지 않으며 대신 액세스 항목을 사용하여 AWS Batch 인증합니다. ConfigMap 인증으로 돌아가려면 클러스터desiredState=DISABLED를 대상으로 하는 모든 컴퓨팅 환경에를 설정합니다. 이렇게 하면 AWS Batch관리형 액세스 항목이 제거됩니다.
- Kubernetes AWS Batch 네임스페이스에 대한 권한
-
AWS Batch 에는에서 지정한 네임스페이스에서 포드를 생성하고 관리할 수 있는 Kubernetes 권한이 필요합니다
eksConfiguration.kubernetesNamespace. 네임스페이스를 생성한 다음 인증 접근 방식에 따라 다음 방법 중 하나를 사용하여 해당 권한을 구성합니다.-
액세스 정책 연결(액세스 항목에 필요
status=ACTIVE) - 클러스터desiredState=ENABLED를 대상으로 하는 모든 컴퓨팅 환경에서를 설정하면가 클러스터 수준 로 액세스 항목을 AWS Batch 생성합니다AWSBatchClusterPolicy. 그런 다음 네임스페이스 범위를 연결하여 포드를 생성하고 관리할 수 있는 권한을AWSBatchNamespacePolicy부여 AWS Batch 해야 합니다.액세스 항목이에 도달하면 AWS CLI다음을 사용하여 네임스페이스 정책을
status=ACTIVE연결합니다.$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AWSBatchNamespacePolicy \ --access-scope type=namespace,namespaces=my-aws-batch-namespacemy-aws-batch-namespace를에서 지정한 값으로 바꿉니다eksConfiguration.kubernetesNamespace.중요
네임스페이스 범위 정책 연결이 없으면 작업은
RUNNABLE상태로 유지됩니다. 클러스터 수준 정책만으로는 포드 관리 권한을 부여하지 않습니다. -
Kubernetes 역할 및 역할 바인딩(액세스 항목
status=INACTIVE) AWS Batch- 관리형 액세스 항목이 활성화되지 않은 경우에 설명된 대로 해당 권한을 부여하는 Kubernetes 역할 및 역할 바인딩을 생성합니다2단계: Amazon EKS 클러스터 준비 AWS Batch. 각 클러스터에 대해이 작업을 한 번 수행합니다.참고
AWS Batch관리형 액세스 항목이 활성화되면(
status=ACTIVE) Kubernetes RBAC 역할이 우회됩니다. 대신 액세스 정책 연결 방법을 사용해야 합니다.
AWS Batch 는 이러한 리소스를 자동으로 생성하지 않으며 AWS Batch, 관리형 액세스 항목이 리소스를 대체하지 않습니다. 누락된 경우 작업이 시작되지 않는
VALID동안 컴퓨팅 환경이 계속 될 수 있습니다. -
- 노드 인스턴스 역할에 대한 클러스터 액세스
-
를 AWS Batch 시작하는 인스턴스는에서 지정한 인스턴스 프로파일을 사용하여 클러스터에 조인합니다
computeResources.instanceRole. 이 역할에는 AWS Batch관리형 액세스 항목과 별개이고 구성 AWS Batch 되지 않는 클러스터에 대한 자체 액세스 권한이 필요합니다.구성 방법은 클러스터의에 따라 다릅니다.
authenticationMode-
이
authenticationMode인 클러스터의CONFIG_MAP경우aws-authConfigMap을 사용해야 합니다. 이러한 클러스터에서는 액세스 항목이 지원되지 않습니다. -
이
authenticationMode인 클러스터의 경우API_AND_CONFIG_MAP- 노드 인스턴스 역할은aws-authConfigMap 또는 액세스 항목을 사용하여 인증할 수 있습니다. 인스턴스 역할이 ConfigMap에 이미 매핑된 경우 노드는 역할에 대한 액세스 항목을 생성하지 않고 성공적으로 조인됩니다. -
이
authenticationMode인 클러스터API의 경우 - 노드 인스턴스 역할에 대한 액세스 항목을 생성해야 합니다.aws-authConfigMap은 이러한 클러스터의 인증에 사용되지 않습니다.
노드 인스턴스 역할에 대한 액세스 항목을 생성하려면 AWS CLI다음을 사용합니다.
$aws eks create-access-entry \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --type EC2_LINUX$aws eks associate-access-policy \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::123456789012:role/my-node-instance-role\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSWorkerNodePolicy \ --access-scope type=cluster자세한 내용은 Amazon EKS 사용 설명서의 액세스 항목 생성을 참조하세요.
중요
노드 인스턴스 역할에 대한 적절한 클러스터 액세스 권한이 없으면 EC2 인스턴스가 클러스터에 조인할 수 없습니다. 클러스터에 등록된 용량이 없기 때문에 작업은
RUNNABLE상태로 유지됩니다. -
aws-auth ConfigMap과 액세스 항목 중에서 선택
액세스 항목 인증은 Amazon EKS 컴퓨팅 환경에서 새로운 AWS Batch 에 권장되는 경로이며 다음과 같은 이점을 제공합니다.
-
클러스터에 대한 AWS Batch 액세스 권한을 부여하기 위해
aws-authConfigMap을 수동으로 편집할 필요가 없습니다. -
클러스터에 액세스할 수 있는 보안 주체에 대한 감사 가능한 API 기반 레코드를 제공합니다.
-
ConfigMap을 지원하지 않는
aws-authauthenticationMode가API인 클러스터에 필요합니다.
클러스터의이 authenticationMode인 경우 CONFIG_MAP액세스 항목을 사용할 수 없으며 aws-auth ConfigMap을 통해 AWS Batch 인증됩니다. 지침은 aws-auth ConfigMap 필드가 제대로 구성되었는지 확인 섹션을 참조하세요.