Amazon EKS Pod 실행 IAM 역할 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Amazon EKS Pod 실행 IAM 역할

Pod 인프라에서 Pods를 실행하려면 Amazon EKS AWS Fargate 실행 역할이 필요합니다.

클러스터가 AWS Fargate 인프라에서 Pods를 생성하는 경우 Fargate 인프라에서 실행되는 구성 요소는 사용자를 대신하여 AWS API를 호출해야 합니다. 이를 통해 Amazon ECR에서 컨테이너 이미지를 가져오거나 로그를 다른 AWS 서버로 라우팅하는 등의 작업을 수행할 수 있습니다. Amazon EKS Pod 실행 역할은 이 작업을 수행할 수 있는 IAM 권한을 제공합니다.

Fargate 프로필을 생성할 때 프로필을 사용하여 Fargate 인프라에서 실행되는 Amazon EKS 구성 요소의 Pod 실행 역할을 지정해야 합니다. 이 역할은 권한 부여를 위해 클러스터의 Kubernetes 역할 기반 액세스 제어(RBAC)에 추가됩니다. 이렇게 하면 Fargate 인프라에서 실행 중인 kubelet이 Amazon EKS 클러스터에 등록되어 클러스터에 노드로 표시될 수 있습니다.

참고

Fargate 프로파일에는 Amazon EC2 노드 그룹과 다른 IAM 역할이 있어야 합니다.

중요

Fargate Pod에서 실행 중인 컨테이너는 Pod 실행 역할과 연결된 IAM 권한을 맡을 수 없습니다. Fargate Pod의 컨테이너에 다른 AWS 서비스에 대한 액세스 권한을 부여하려면 서비스 계정에 대한 IAM 역할을 사용해야 합니다.

Fargate 프로필을 생성하기 전에 AmazonEKSFargatePodExecutionRolePolicy를 사용하여 IAM 역할을 생성해야 합니다.

올바르게 구성된 기존 Pod 실행 역할 확인

다음 절차를 사용하여 계정에 이미 올바로 구성된 Amazon EKS Pod 실행 역할이 있는지 확인할 수 있습니다. 대리인 보안 문제의 혼동을 방지하려면 역할이 SourceArn에 따라 액세스를 제한하는 것이 중요합니다. 필요에 따라 실행 역할을 수정하여 다른 클러스터의 Fargate 프로필에 대한 지원을 포함할 수 있습니다.

IAM 콘솔에서 Amazon EKS Pod 실행 역할 확인
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 역할(Roles)을 선택합니다.

  3. 역할(Roles) 페이지에서 AmazonEKSFargatePodExecutionRole에 대한 역할 목록을 검색합니다. 역할이 존재하지 않을 경우 Amazon EKS Pod 실행 역할 생성을 참조하여 역할을 생성합니다. 역할이 존재하지 않을 경우 역할을 선택합니다.

  4. AmazonEKSFargatePodExecutionRole 페이지에서 다음을 수행합니다.

    1. 권한(Permissions)을 선택합니다.

    2. AmazonEKSFargatePodExecutionRolePolicy Amazon 관리형 정책이 역할에 연결되어 있는지 확인합니다.

    3. 신뢰 관계(Trust relationships)를 선택합니다.

    4. 신뢰 정책 편집(Edit trust policy)을 선택합니다.

  5. 신뢰 정책 편집(Edit trust policy) 페이지에서 신뢰 관계에 다음 정책이 포함되어 있고 클러스터의 Fargate 프로필에 대한 줄이 있는지 확인합니다. 그렇다면 취소(Cancel)를 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    정책이 일치하지만 클러스터의 Fargate 프로필을 지정하는 줄이 없는 경우 다음 줄을 ArnLike 객체의 상단에 추가할 수 있습니다. region-code를 클러스터가 있는 AWS 리전으로, 111122223333을 계정 ID로, my-cluster를 클러스터 이름으로 바꿉니다.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    정책이 일치하지 않는 경우 이전 정책 전체를 양식에 복사하고 업데이트 정책(Update policy)을 선택합니다. region-code를 클러스터가 있는 AWS 리전으로 바꿉니다. 계정의 모든 AWS 리전에서 동일한 역할을 사용하려는 경우 region-code*로 바꾸세요. 111122223333를 계정 ID로, my-cluster를 클러스터의 이름으로 바꿉니다. 계정의 모든 클러스터에 대해 동일한 역할을 사용하려는 경우 *my-cluster로 바꾸세요.

Amazon EKS Pod 실행 역할 생성

클러스터에 대한 Amazon EKS Pod 실행 역할이 아직 없는 경우 AWS Management Console 또는 AWS CLI를 사용하여 생성할 수 있습니다.

AWS Management Console
AWS Management Console을 사용하여 AWS FargatePod 실행 역할 생성
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 역할을 선택합니다.

  3. 역할(Roles) 페이지에서 역할 생성(Create role)을 선택합니다.

  4. 신뢰할 수 있는 엔터티 선택(Select trusted entity) 페이지에서 다음을 수행합니다.

    1. 신뢰할 수 있는 엔터티 유형(Trusted entity type) 섹션에서 AWS 서비스( service)를 선택합니다.

    2. 기타 AWS 서비스에 대한 사용 사례(Use cases for other ) 드롭다운에서 EKS를 선택합니다.

    3. EKS - Fargate Pod를 선택합니다.

    4. 다음을 선택합니다.

  5. 권한 추가(Add permissions) 페이지에서 다음(Next)을 선택합니다.

  6. 이름, 검토 및 생성(Name, review, and create) 페이지에서 다음을 수행합니다.

    1. 역할 이름(Role name)에 역할의 고유한 이름(예: AmazonEKSFargatePodExecutionRole)을 입력합니다.

    2. 태그 추가(선택 사항)에서 태그를 키-값 페어로 연결하여 메타데이터를 역할에 추가합니다. IAM에서 태그 사용에 대한 자세한 내용을 알아보려면 IAM 사용 설명서의 IAM 리소스에 태그 지정을 참조하세요.

    3. 역할 생성을 선택합니다.

  7. 역할(Roles) 페이지에서 AmazonEKSFargatePodExecutionRole에 대한 역할 목록을 검색합니다. 역할을 선택합니다.

  8. AmazonEKSFargatePodExecutionRole 페이지에서 다음을 수행합니다.

    1. 신뢰 관계(Trust relationships)를 선택합니다.

    2. 신뢰 정책 편집(Edit trust policy)을 선택합니다.

  9. 신뢰 정책 편집(Edit trust policy) 페이지에서 다음 작업을 수행합니다.

    1. 다음 내용을 복사하여 신뢰 정책 편집(Edit trust policy) 양식에 붙여 넣습니다. region-code을 해당 클러스터가 있는 AWS 리전으로 바꿉니다. 계정의 모든 AWS 리전에서 동일한 역할을 사용하려는 경우 region-code*로 바꾸세요. 111122223333를 계정 ID로, my-cluster를 클러스터의 이름으로 바꿉니다. 계정의 모든 클러스터에 대해 동일한 역할을 사용하려는 경우 my-cluster*로 바꾸세요.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 정책 업데이트를 선택합니다.

AWS CLI
AWS CLI을 사용하여 AWS FargatePod 실행 역할 생성
  1. 다음 내용을 복사하여 pod-execution-role-trust-policy.json라는 파일에 붙여넣습니다. region-code을 해당 클러스터가 있는 AWS 리전으로 바꿉니다. 계정의 모든 AWS 리전에서 동일한 역할을 사용하려는 경우 region-code*로 바꾸세요. 111122223333를 계정 ID로, my-cluster를 클러스터의 이름으로 바꿉니다. 계정의 모든 클러스터에 대해 동일한 역할을 사용하려는 경우 *my-cluster로 바꾸세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Pod 실행 IAM 역할을 생성합니다.

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. 필요한 Amazon EKS 관리형 IAM 정책을 역할에 연결합니다.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole