IAMRuolo dell'istanza di ECS container Amazon - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

IAMRuolo dell'istanza di ECS container Amazon

Le istanze di ECS container Amazon, incluse le istanze Amazon EC2 e quelle esterne, eseguono l'agente ECS container Amazon e richiedono un IAM ruolo affinché il servizio sappia che l'agente appartiene a te. Prima di avviare le istanze di container e registrarle in un cluster, devi creare un IAM ruolo da utilizzare per le istanze di container. Il ruolo viene creato nell'account che utilizzi per accedere alla console o eseguire i AWS CLI comandi.

Importante

Se si registrano istanze esterne nel cluster, il IAM ruolo utilizzato richiede anche le autorizzazioni di Systems Manager. Per ulteriori informazioni, consulta IAMRuolo di Amazon ECS Anywhere.

Amazon ECS fornisce la IAM policy AmazonEC2ContainerServiceforEC2Role gestita che contiene le autorizzazioni necessarie per utilizzare l'intero set di ECS funzionalità Amazon. Questa policy gestita può essere associata a un IAM ruolo e associata alle istanze del contenitore. In alternativa, è possibile utilizzare la policy gestita come guida durante la creazione di una policy personalizzata da utilizzare. Il ruolo dell'istanza del contenitore fornisce le autorizzazioni necessarie affinché l'agente ECS contenitore Amazon e il daemon Docker possano effettuare chiamate AWS APIs per tuo conto. Per ulteriori informazioni sulla policy gestita, consulta Amazon EC2ContainerServiceforEC2Role.

Amazon ECS supporta il lancio di istanze di container con maggiore ENI densità utilizzando i tipi di EC2 istanze Amazon supportati. Quando utilizzi questa funzionalità, ti consigliamo di creare 2 ruoli di istanza di container. Abilita l'impostazione awsvpcTrunking dell'account per un ruolo e utilizza quel ruolo per attività che richiedono il ENI trunking. Per informazioni sull'impostazione dell'awsvpcTrunkingaccount, vedere. Accedi alle ECS funzionalità di Amazon con le impostazioni dell'account

Creare il ruolo dell'istanza del contenitore

Importante

Se registri istanze esterne nel cluster, consulta IAMRuolo di Amazon ECS Anywhere.

Puoi creare manualmente il ruolo e allegare la IAM policy gestita per le istanze di container per consentire ECS ad Amazon di aggiungere autorizzazioni per funzionalità e miglioramenti futuri man mano che vengono introdotti. Utilizza la seguente procedura per allegare la politica gestitaIAM, se necessario.

AWS Management Console
Per creare il ruolo di servizio per Elastic Container Service (IAMconsole)
  1. Accedi a AWS Management Console e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione della IAM console, scegli Ruoli, quindi scegli Crea ruolo.

  3. Per Trusted entity type (Tipo di entità attendibile), scegli Servizio AWS.

  4. Per Servizio o caso d'uso, scegli Elastic Container Service, quindi scegli il caso d'uso EC2Ruolo per Elastic Container Service.

  5. Scegli Next (Successivo).

  6. Nella sezione Politiche di autorizzazione, verifica che sia selezionata la EC2ContainerServiceforEC2Role politica di Amazon.

    Importante

    La policy EC2ContainerServiceforEC2Role gestita da Amazon deve essere associata al IAM ruolo dell'istanza del contenitore, altrimenti riceverai un errore durante l'utilizzo AWS Management Console di per creare cluster.

  7. Scegli Next (Successivo).

  8. Per il nome del ruolo, inserisci ecsInstanceRole

  9. Verificare il ruolo e quindi scegliere Create role (Crea ruolo).

AWS CLI

Sostituisci tutto user input con i tuoi valori.

  1. Crea un file denominato instance-role-trust-policy.json con i seguenti contenuti.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. Utilizzate il seguente comando per creare il IAM ruolo dell'istanza utilizzando il documento di politica di fiducia.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. Create un profilo di istanza denominato ecsInstanceRole-profile utilizzando il create-instance-profilecomando.

    aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile

    Example response

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2022-04-12T23:53:34.093Z", "InstanceProfileName": "ecsInstanceRole-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile" } }
  4. Aggiungi il ruolo ecsInstanceRole al profilo dell'istanza ecsInstanceRole-profile.

    aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole-profile \ --role-name ecsInstanceRole
  5. Allega la politica AmazonEC2ContainerServiceRoleForEC2Role gestita al ruolo utilizzando il comando seguente.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole

Dopo aver creato il ruolo, aggiungi ulteriori autorizzazioni al ruolo per le seguenti funzionalità.

Funzionalità Autorizzazioni aggiuntive

Amazon ECR ha l'immagine del contenitore

ECRAutorizzazioni Amazon

Fai in modo che CloudWatch Logs monitori le istanze dei container

Monitoraggio delle autorizzazioni delle istanze dei container

Ospita i file di configurazione in un bucket Amazon S3

Accesso in sola lettura ad Amazon S3

ECRAutorizzazioni Amazon

Il ruolo dell'istanza di ECS container Amazon che utilizzi con le tue istanze di container deve avere le seguenti autorizzazioni relative alle IAM policy per Amazon. ECR

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Se utilizzi la policy gestita AmazonEC2ContainerServiceforEC2Role per le tue istanze di container, il tuo ruolo dispone già delle opportune autorizzazioni. Per verificare che il tuo ruolo supporti AmazonECR, consulta Amazon ECS Container Instance IAM Role nella Amazon Elastic Container Service Developer Guide.

Accesso in sola lettura ad Amazon S3

L'archiviazione delle informazioni di configurazione in un bucket privato in Amazon S3 e la concessione dell'accesso in sola lettura al ruolo dell'istanza di contenitore sono un modo sicuro e conveniente per consentire la configurazione dell'IAMistanza di contenitore al momento del lancio. Puoi archiviare una copia del tuo ecs.config file in un bucket privato, utilizzare i dati EC2 utente di Amazon per installarlo AWS CLI e quindi copiare le informazioni di configurazione all'/etc/ecs/ecs.configavvio dell'istanza.

Per ulteriori informazioni sulla creazione di un file ecs.config, sull'archiviazione di tale file in Amazon S3 e sull'avvio di istanze con questa configurazione, consulta Archiviazione della configurazione dell'istanza del ECS contenitore Amazon in Amazon S3.

Puoi utilizzare il seguente AWS CLI comando per consentire l'accesso in sola lettura ad Amazon S3 per il tuo ruolo di istanza di contenitore. Replace (Sostituisci) ecsInstanceRole con il nome del ruolo che hai creato.

aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws::iam::aws:policy/AmazonS3ReadOnlyAccess

Puoi anche utilizzare la IAM console per aggiungere Amazon S3 read-only access (AmazonS3ReadOnlyAccess) al tuo ruolo. Per ulteriori informazioni, consulta Modifica della politica di autorizzazione di un ruolo (console) nella Guida per l'utente.AWS Identity and Access Management

Monitoraggio delle autorizzazioni delle istanze dei container

Prima che le istanze del contenitore possano inviare i dati di registro ai CloudWatch registri, è necessario creare una IAM politica che consenta alle istanze del contenitore di utilizzare CloudWatch i registri APIs e quindi allegare tale policy a. ecsInstanceRole

AWS Management Console
Per utilizzare l'editor di JSON policy per creare una policy
  1. Accedi a AWS Management Console e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione a sinistra, seleziona Policies (Policy).

    Se è la prima volta che selezioni Policy, verrà visualizzata la pagina Benvenuto nelle policy gestite. Seleziona Inizia.

  3. Nella parte superiore della pagina, scegli Crea policy.

  4. Nella sezione Policy editor, scegli l'JSONopzione.

  5. Inserisci il seguente documento JSON di policy:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  6. Scegli Next (Successivo).

    Nota

    È possibile passare dall'opzione Visual a quella dell'JSONeditor in qualsiasi momento. Tuttavia, se apporti modifiche o scegli Avanti nell'editor visuale, IAM potresti ristrutturare la tua politica per ottimizzarla per l'editor visuale. Per ulteriori informazioni, consulta la sezione Ristrutturazione delle politiche nella Guida per l'IAMutente.

  7. Nella pagina Rivedi e crea, immettere un valore in Nome policy e Descrizione (facoltativo) per la policy in fase di creazione. Rivedi Autorizzazioni definite in questa policy per visualizzare le autorizzazioni concesse dalla policy.

  8. Seleziona Crea policy per salvare la nuova policy.

Dopo aver creato la policy, associa la policy al ruolo dell'istanza del contenitore. Per informazioni su come allegare la politica al ruolo, consulta Modifica della politica di autorizzazione di un ruolo (console) nella Guida per l'AWS Identity and Access Management utente.

AWS CLI
  1. Crea un file denominato instance-cw-logs.json, con il seguente contenuto:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  2. Utilizzate il comando seguente per creare la IAM policy utilizzando il file del documento relativo alla JSON policy.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. Recupera ARN la IAM politica che hai creato utilizzando il seguente comando. Replace (Sostituisci) cwlogspolicy con il nome della politica che hai creato.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogsppolicy`].Arn'
  4. Utilizza il comando seguente per allegare la policy al IAM ruolo dell'istanza del contenitore utilizzando la policyARN.

    aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy