Ruolo IAM delle istanze di container Amazon ECS - 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à.

Ruolo IAM delle istanze di container Amazon ECS

Le istanze di container Amazon ECS, incluse le istanze Amazon EC2 e quelle esterne, eseguono l'agente container Amazon ECS e richiedono un ruolo IAM 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 ruolo IAM per le istanze da utilizzare. Il ruolo viene creato nell'account che usi per accedere alla console o eseguire i comandi. AWS CLI

Importante

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

Amazon ECS fornisce la policy IAM gestita da AmazonEC2ContainerServiceforEC2Role che contiene le autorizzazioni necessarie per utilizzare il set completo di funzionalità di Amazon ECS. Questa policy gestita può essere associata a un ruolo IAM e alle istanze del container. 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 contenitore Amazon ECS e il daemon Docker possano effettuare chiamate per tuo conto. AWS APIs Per ulteriori informazioni sulla policy gestita, consulta EC2ContainerServiceforEC2Ruolo di Amazon.

Amazon ECS supporta il lancio di istanze di container con una maggiore densità ENI utilizzando i tipi di istanze Amazon EC2 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 trunking ENI. 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 Ruolo IAM di Amazon ECS Anywhere.

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

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

  2. Nel pannello di navigazione della console IAM, scegliere Ruoli e quindi 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 EC2 Role for Elastic Container Service.

  5. Scegli Next (Successivo).

  6. Nella sezione Politiche di autorizzazione, verifica che sia selezionata la politica di Amazon EC2 ContainerServicefor EC2 Role.

    Importante

    La policy gestita di Amazon EC2 ContainerServicefor EC2 Role deve essere allegata al ruolo IAM 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 tutti i user input con i valori in tuo possesso.

  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. Utilizza il comando seguente per creare il ruolo IAM dell'istanza utilizzando il documento di policy di fiducia.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. Crea 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

Autorizzazioni Amazon ECR

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

Autorizzazioni Amazon ECR

Il ruolo dell'istanza di container Amazon ECS che usi con le tue istanze di container deve avere le seguenti autorizzazioni della policy IAM 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 se il tuo ruolo supporta Amazon ECR, consulta Ruolo IAM per le istanze di container di Amazon ECS nella Guida per lo sviluppatore di Amazon Elastic Container.

Accesso in sola lettura ad Amazon S3

Archiviare le informazioni di configurazione in un bucket privato in Amazon S3 e concedere l'accesso in sola lettura al ruolo IAM dell'istanza di container è un modo sicuro e conveniente per permettere la configurazione delle istanze di container all'ora di avvio. 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 Memorizzazione della configurazione dell'istanza del contenitore Amazon ECS 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. ecsInstanceRoleSostituiscilo 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 console IAM per aggiungere Amazon S3 read-only access (AmazonS3ReadOnlyAccess) al tuo ruolo. Per ulteriori informazioni, consulta Aggiornamento delle autorizzazioni per un ruolo 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 dati di log a CloudWatch Logs, devi creare una policy IAM per consentire all'agente Amazon ECS di scrivere i log delle applicazioni del cliente CloudWatch (normalmente gestiti tramite il driver). awslogs Dopo aver creato la policy, allegala a. ecsInstanceRole

AWS Management Console
Come utilizzare l'editor di policy JSON per creare una policy
  1. Accedi AWS Management Console e apri la console IAM 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 Editor di policy, scegli l'opzione JSON.

  5. Inserisci il documento di policy JSON seguente:

    { "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 alternare le opzioni dell'editor Visivo e JSON in qualsiasi momento. Se tuttavia si apportano modifiche o si seleziona Successivo nell'editor Visivo, IAM potrebbe ristrutturare la policy in modo da ottimizzarla per l'editor visivo. Per ulteriori informazioni, consulta Modifica della struttura delle policy nella Guida per l'utente di IAM.

  7. Nella pagina Rivedi e crea, inserisci 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 policy al ruolo, consulta Aggiornamento delle autorizzazioni per un ruolo 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. Usa il comando seguente per creare la policy IAM utilizzando il file del documento della policy JSON.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. Recupera l'ARN della policy IAM che hai creato utilizzando il seguente comando. cwlogspolicySostituiscilo con il nome della policy che hai creato.

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

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