Amazon EKS Connector IAM 역할 - Amazon EKS

Amazon EKS Connector IAM 역할

Kubernetes 클러스터를 연결하여 AWS Management Console에서 볼 수 있습니다. Kubernetes 클러스터에 연결하려면 IAM 역할을 생성합니다.

기존 EKS 커넥터 역할 확인

다음 절차를 사용하여 계정에 이미 Amazon EKS Connector 역할이 있는지 확인할 수 있습니다.

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  3. 역할 목록에서 AmazonEKSConnectorAgentRole을 검색합니다. AmazonEKSConnectorAgentRole을 포함하는 역할이 존재하지 않을 경우 Amazon EKS Connector 에이전트 역할 생성 섹션을 참조하여 역할을 생성합니다. AmazonEKSConnectorAgentRole을 포함하는 역할이 존재하지 않을 경우, 연결된 정책을 볼 역할을 선택합니다.

  4. 권한을 선택합니다.

  5. AmazonEKSConnectorAgentPolicy 관리형 정책이 역할에 연결되었는지 확인합니다. 정책이 연결된 경우 Amazon EKS 커넥터 역할이 적절히 구성된 것입니다.

  6. 신뢰 관계(Trust relationships)를 선택한 후 신뢰 정책 편집(Edit trust policy)을 선택합니다.

  7. 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 다음 정책과 일치하는 경우, 취소를 선택합니다. 신뢰 관계가 일치하지 않으면 정책을 신뢰 정책 편집 창에 복사하고 정책 업데이트를 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Amazon EKS Connector 에이전트 역할 생성

AWS Management Console 또는 AWS CloudFormation을 사용하여 커넥터 에이전트 역할을 생성할 수 있습니다.

AWS CLI
  1. IAM 역할에 사용할 다음과 같은 JSON이 포함된 eks-connector-agent-trust-policy.json이라는 이름의 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. IAM 역할에 사용할 다음과 같은 JSON이 포함된 eks-connector-agent-policy.json이라는 이름의 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SsmControlChannel", "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel" ], "Resource": "arn:aws:eks:*:*:cluster/*" }, { "Sid": "ssmDataplaneOperations", "Effect": "Allow", "Action": [ "ssmmessages:CreateDataChannel", "ssmmessages:OpenDataChannel", "ssmmessages:OpenControlChannel" ], "Resource": "*" } ] }
  3. 이전 목록 항목에서 생성한 신뢰 정책 및 정책을 사용하여 Amazon EKS Connector 에이전트 역할을 생성합니다.

    aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
  4. Amazon EKS Connector 에이전트 역할에 정책을 연결합니다.

    aws iam put-role-policy \ --role-name AmazonEKSConnectorAgentRole \ --policy-name AmazonEKSConnectorAgentPolicy \ --policy-document file://eks-connector-agent-policy.json
AWS CloudFormation
  1. 다음 AWS CloudFormation 템플릿을 로컬 시스템의 텍스트 파일에 저장합니다.

    참고

    이 템플릿은 또한 registerCluster API가 호출될 때 생성되는 서비스 링크 역할도 생성합니다. 세부 정보는 역할을 사용하여 Amazon EKS에 Kubernetes 클러스터 연결 섹션을 참조하세요.

    --- AWSTemplateFormatVersion: '2010-09-09' Description: 'Provisions necessary resources needed to register clusters in EKS' Parameters: {} Resources: EKSConnectorSLR: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: eks-connector.amazonaws.com EKSConnectorAgentRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: [ 'sts:AssumeRole' ] Principal: Service: 'ssm.amazonaws.com' EKSConnectorAgentPolicy: Type: AWS::IAM::Policy Properties: PolicyName: EKSConnectorAgentPolicy Roles: - {Ref: 'EKSConnectorAgentRole'} PolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Action: [ 'ssmmessages:CreateControlChannel' ] Resource: - Fn::Sub: 'arn:${AWS::Partition}:eks:*:*:cluster/*' - Effect: 'Allow' Action: [ 'ssmmessages:CreateDataChannel', 'ssmmessages:OpenDataChannel', 'ssmmessages:OpenControlChannel' ] Resource: "*" Outputs: EKSConnectorAgentRoleArn: Description: The agent role that EKS connector uses to communicate with AWS services. Value: !GetAtt EKSConnectorAgentRole.Arn
  2. AWSCloudFormation 콘솔을 엽니다.

  3. 새 리소스를 사용한 스택 생성을 선택합니다(표준).

  4. 템플릿 지정(Specify template)에서 템플릿 파일 업로드(Upload a template file)를 선택한 다음 파일 선택(Choose file)을 선택합니다.

  5. 이전에 생성한 파일을 선택한 후 다음(Next)을 선택합니다.

  6. 스택 이름(Stack name)eksConnectorAgentRole과 같은 역할 이름을 입력하고 다음(Next)을 선택합니다.

  7. 스택 옵션 구성 페이지에서 다음(Next)을 선택합니다.

  8. 검토 페이지에서 정보를 검토하고, 스택이 IAM 리소스를 생성할 수 있음을 확인한 다음 스택 생성(Create stack)을 선택합니다.