Ruolo IAM del connettore Amazon EKS - Amazon EKS

Ruolo IAM del connettore Amazon EKS

È possibile collegare i cluster Kubernetes per visualizzarli nella AWS Management Console. Per collegarsi a un cluster Kubernetes, creare un ruolo IAM.

Verificare la presenza di un ruolo del connettore esistente

Per controllare se l'account dispone già di un ruolo del connettore Amazon EKS, utilizzare la procedura indicata di seguito.

Come verificare la presenza di AmazonEKSConnectorAgentRole nella console IAM

  1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione a sinistra seleziona Ruoli.

  3. Cercare l'elenco dei ruoli per AmazonEKSConnectorAgentRole. Se un ruolo che include AmazonEKSConnectorAgentRole non esiste, consultare Creazione del ruolo agente del connettore Amazon EKS per creare il ruolo. Se un ruolo che include AmazonEKSConnectorAgentRole esiste, selezionare il ruolo per visualizzare le policy allegate.

  4. Selezionare Autorizzazioni.

  5. Assicurarsi che la policy gestita AmazonEKSClusterPolicy sia allegata al ruolo. Se la policy è allegata, il ruolo del cluster Amazon EKS è configurato correttamente.

  6. Scegli Trust relationships (Relazioni di attendibilità), quindi scegli Edit trust policy (Modifica policy di attendibilità).

  7. Verifica che la relazione di trust includa la seguente policy. Se la relazione di trust corrisponde alla policy sottostante, scegli Cancel (Annulla). Se la relazione di attendibilità non corrisponde, copia la policy nella finestra Edit trust policy (Modifica policy di attendibilità) e scegli Update policy (Aggiorna policy).

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

Creazione del ruolo agente del connettore Amazon EKS

È possibile utilizzare la AWS Management Console o AWS CloudFormation per creare un ruolo agente del connettore. Selezionare la scheda con il nome dello strumento che si desidera utilizzare per creare il ruolo.

AWS CLI
  1. Creare un file denominato eks-connector-agent-trust-policy.json contenente il seguente JSON da utilizzare per il ruolo IAM.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMAccess", "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. Creare un file denominato eks-connector-agent-policy.json contenente il seguente JSON da utilizzare per il ruolo 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. Crea il ruolo agente del connettore Amazon EKS utilizzando la policy di attendibilità e la policy creata negli elementi precedenti dell'elenco.

    aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
  4. Allegare la policy al ruolo agente del connettore Amazon EKS.

    aws iam put-role-policy \ --role-name AmazonEKSConnectorAgentRole \ --policy-name AmazonEKSConnectorAgentPolicy \ --policy-document file://eks-connector-agent-policy.json
AWS CloudFormation

Per creare il ruolo agente del connettore Amazon EKS con AWS CloudFormation.

  1. Salvare il seguente modello AWS CloudFormation in un file di testo nel sistema locale.

    Nota

    Questo modello crea anche il Utilizzo di ruoli per connettere un cluster Kubernetes ad Amazon EKS che altrimenti sarebbe stato creato al momento della chiamata API registerCluster.

    --- 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 Servizi AWS. Value: !GetAtt EKSConnectorAgentRole.Arn
  2. Aprire la console di AWS CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation.

  3. Scegliere Crea pila (con nuove risorse o risorse esistenti).

  4. In Specify template (Specifica modello), selezionare Upload a template file (Carica un file di modello) e Choose file (Scegli file).

  5. Scegliere il file creato in precedenza, quindi selezionare Next (Successivo).

  6. Per Stack name (Nome pila), immettere un nome per il ruolo, ad esempio eksConnectorAgentRole, quindi scegliere Next (Successivo).

  7. Nella pagina Configure stack options (Configura opzioni pila), scegliere Next (Successivo).

  8. Nella pagina Revisione, esaminare le informazioni, accettare che la pila può creare risorse IAM, quindi scegliere Crea pila.