Função do IAM do conector do Amazon EKS - Amazon EKS

Função do IAM do conector do Amazon EKS

Você pode conectar clusters do Kubernetes para visualizá-los no AWS Management Console. Para se conectar a um cluster do Kubernetes, crie um perfil do IAM.

Verificar se já existe um perfil de conector do EKS

Use o procedimento a seguir para verificar se a conta já tem a função de conector do Amazon EKS.

  1. Abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Roles.

  3. Pesquise AmazonEKSConnectorAgentRole na lista de perfis. Se não houver uma função que inclua AmazonEKSConnectorAgentRole, consulte Criar a função do IAM para o agente de conector do Amazon EKS para criar a função. Se houver uma função que inclua AmazonEKSConnectorAgentRole, selecione-a para visualizar as políticas anexadas.

  4. Escolha Permissões.

  5. Verifique se a política gerenciada AmazonEKSConnectorAgentPolicy está anexada ao perfil. Se a política estiver anexada, o perfil de conector do Amazon EKS estará configurado corretamente.

  6. Escolha Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).

  7. Verifique se o relacionamento de confiança contém a seguinte política: Se o relacionamento de confiança corresponder à seguinte política, escolha Cancel (Cancelar). Se o relacionamento de confiança não corresponder, copie a política para a janela Edit trust policy (Editar política de confiança) e escolha Update policy (Atualizar política).

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

Criar a função do IAM para o agente de conector do Amazon EKS

Você pode usar o AWS Management Console ou o AWS CloudFormation para criar o perfil de agente conector.

AWS CLI
  1. Crie um arquivo denominado eks-connector-agent-trust-policy.json que contenha o seguinte JSON para ser usado para a função do IAM:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. Crie um arquivo denominado eks-connector-agent-policy.json que contenha o seguinte JSON para ser usado para a função do IAM.

    { "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. Crie a função de agente do Amazon EKS Connector usando a política de confiança e a política que você criou nos itens de lista anteriores.

    aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
  4. Anexe a política à função do agente do 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. Salve o seguinte modelo do AWS CloudFormation em um arquivo de texto em seu sistema local.

    nota

    Esse modelo também cria a função vinculada ao serviço que seria criada quando a API registerCluster fosse chamada. Para mais detalhes, consulte Usar funções para conectar um cluster do Kubernetes ao Amazon EKS.

    --- 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. Abra o console do AWS CloudFormation.

  3. Escolha Criar pilha com novos recursos (padrão).

  4. Para Specify template (Especificar modelo), selecione Upload a template file (Fazer upload de um arquivo de modelo) e depois Choose file (Escolher arquivo).

  5. Selecione o arquivo que você criou anteriormente e, em seguida, selecione Next (Próximo).

  6. Em Stack name (Nome da pilha), insira um nome para a função, como eksConnectorAgentRole, e selecione Next (Próximo).

  7. Na página Configurar opções de pilha, selecione Avançar.

  8. Na página Review (Revisão), reveja as informações, confirme se a pilha pode criar recursos do IAM e, em seguida, selecione Create (Criar).