IAMRuolo di esecuzione delle ECS attività di 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 di esecuzione delle ECS attività di Amazon

Il ruolo di esecuzione delle attività concede al ECS container Amazon e agli agenti di Fargate l'autorizzazione a AWS API effettuare chiamate per tuo conto. Il IAM ruolo di esecuzione dell'attività è richiesto in base ai requisiti dell'attività. È possibile disporre di più ruoli di esecuzione di attività per scopi e servizi diversi associati all'account. Per le IAM autorizzazioni necessarie per l'esecuzione dell'applicazione, consultaIAMRuolo ECS dell'attività di Amazon.

Di seguito sono riportati i casi d'uso più comuni per un IAM ruolo di esecuzione di attività:

  • L'attività è ospitata su AWS Fargateo su un'istanza esterna e:

    • estrae un'immagine del contenitore da un repository ECR privato di Amazon.

    • estrae un'immagine del contenitore da un repository ECR privato Amazon in un account diverso dall'account che esegue l'attività.

    • invia i log dei contenitori a CloudWatch Logs utilizzando il driver di registro. awslogs Per ulteriori informazioni, consulta Invia i ECS log di Amazon a CloudWatch .

  • Le tue attività sono ospitate su una delle AWS Fargate EC2 istanze di Amazon e:

Nota

Il ruolo di esecuzione delle attività è supportato da Amazon ECS Container Agent versione 1.16.0 e successive.

Amazon ECS fornisce la policy gestita denominata A mazonECSTask ExecutionRolePolicy che contiene le autorizzazioni richieste dai casi d'uso comuni sopra descritti. Per ulteriori informazioni, consulta A mazonECSTask ExecutionRolePolicy nella AWS Managed Policy Reference Guide. Potrebbe essere necessario aggiungere politiche in linea al ruolo di esecuzione delle attività per casi d'uso speciali

La ECS console Amazon crea un ruolo di esecuzione delle attività. Puoi allegare manualmente la IAM policy gestita per le attività per consentire ECS ad Amazon di aggiungere autorizzazioni per funzionalità e miglioramenti futuri man mano che vengono introdotti. Puoi utilizzare la ricerca IAM nella console per cercare ecsTaskExecutionRole e vedere se il tuo account ha già il ruolo di esecuzione delle attività. Per ulteriori informazioni, consulta la ricerca nella IAM console nella guida IAM per l'utente.

Se richiami immagini come utente autenticato, è meno probabile che le modifiche apportate ai limiti di pull rate di Docker Hub influiscano meno su di te. Per ulteriori informazioni, consulta Autenticazione di registri privati per istanze di container.

Utilizzando Amazon ECR e Amazon ECR Public, puoi evitare i limiti imposti da Docker. Se estrai immagini da AmazonECR, ciò aiuta anche a ridurre i tempi di recupero della rete e a ridurre le modifiche al trasferimento dei dati quando il traffico esce dal tuoVPC.

Quando utilizzi Fargate, devi autenticarti in un registro di immagini privato utilizzando repositoryCredentials. Non è possibile impostare le variabili di ambiente di Amazon ECS Container Agent ECS_ENGINE_AUTH_TYPE ECS_ENGINE_AUTH_DATA o modificare il ecs.config file per le attività ospitate su Fargate. Per ulteriori informazioni, consulta Autenticazione del registro privato per le attività.

Creazione del ruolo di esecuzione attività

Se il tuo account non ha già un ruolo di esecuzione delle attività, utilizza i seguenti passaggi per creare il ruolo.

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 Elastic Container Service Task.

  5. Scegli Next (Successivo).

  6. Nella sezione Aggiungi autorizzazioni, cerca A mazonECSTask ExecutionRolePolicy, quindi seleziona la politica.

  7. Scegli Next (Successivo).

  8. Per Nome ruolo, inserisci ecsTaskExecutionRuolo.

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

AWS CLI

Sostituisci tutto user input con le tue informazioni.

  1. Crea un file denominato ecs-tasks-trust-policy.json che contenga la politica di fiducia da utilizzare per il IAM ruolo. Il file deve contenere il testo seguente:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Crea un IAM ruolo denominato ecsTaskExecutionRole utilizzando la politica di fiducia creata nel passaggio precedente.

    aws iam create-role \ --role-name ecsTaskExecutionRole \ --assume-role-policy-document file://ecs-tasks-trust-policy.json
  3. Allega la AmazonECSTaskExecutionRolePolicy policy AWS gestita al ecsTaskExecutionRole ruolo.

    aws iam attach-role-policy \ --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

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

Funzionalità Autorizzazioni aggiuntive

Usa le credenziali di Secrets Manager per accedere all'archivio privato delle immagini del contenitore

Autorizzazioni di autenticazione del registro privato

Trasmetti dati sensibili con Systems Manager o Secrets Manager

Autorizzazioni Secrets Manager o Systems Manager

Fai in modo che le attività di Fargate trasferiscano le ECR immagini di Amazon dagli endpoint dell'interfaccia

Fargate esegue le attività di trasferimento delle immagini di ECR Amazon tramite le autorizzazioni degli endpoint dell'interfaccia

Ospita i file di configurazione in un bucket Amazon S3

Autorizzazioni per lo storage di file Amazon S3

Configura Container Insights per visualizzare gli eventi del ECS ciclo di vita di Amazon

Autorizzazioni necessarie per configurare Container Insights per visualizzare gli eventi del ECS ciclo di vita di Amazon

Visualizza gli eventi del ECS ciclo di vita di Amazon in Container Insights

Autorizzazioni necessarie per visualizzare gli eventi del ECS ciclo di vita di Amazon in Container Insights

Autorizzazioni di autenticazione del registro privato

Le autorizzazioni seguenti devono essere aggiunte manualmente come policy inline al ruolo per l'esecuzione di attività, per fornire l'accesso ai segreti che crei. Per ulteriori informazioni, vedere Aggiungere e rimuovere IAM politiche.

  • secretsmanager:GetSecretValue

  • kms:Decrypt—Richiesto solo se la chiave utilizza una KMS chiave personalizzata e non la chiave predefinita. L'Amazon Resource Name (ARN) per la tua chiave personalizzata deve essere aggiunto come risorsa.

Di seguito viene riportata una policy inline che aggiunge le autorizzazioni.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }

Autorizzazioni Secrets Manager o Systems Manager

L'autorizzazione per consentire all'agente contenitore di estrarre le risorse necessarie AWS Systems Manager o Secrets Manager. Per ulteriori informazioni, consulta Trasferisci dati sensibili a un ECS contenitore Amazon.

Uso di Secrets Manager

Per fornire l'accesso ai segreti di Gestione di segreti che crei, aggiungi manualmente la seguente autorizzazione al ruolo di esecuzione dell'attività. Per informazioni su come gestire le autorizzazioni, consulta Aggiungere e rimuovere le autorizzazioni di IAM identità nella Guida per l'IAMutente.

  • secretsmanager:GetSecretValue: obbligatorio se si fa riferimento a un segreto di Gestione dei segreti. Aggiunge l'autorizzazione per recuperare il segreto da Secrets Manager.

La policy dell'esempio seguente aggiunge le autorizzazioni necessarie.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" ] } ] }

Uso di Systems Manager

Importante

Per le attività che utilizzano il tipo di EC2 avvio, è necessario utilizzare la variabile di configurazione dell'ECSagente ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true per utilizzare questa funzionalità. È possibile aggiungerla al ./etc/ecs/ecs.config file durante la creazione dell'istanza del contenitore oppure aggiungerla a un'istanza esistente e quindi riavviare l'ECSagente. Per ulteriori informazioni, consulta Configurazione di Amazon ECS Container Agent.

Per fornire l'accesso ai parametri di Archivio dei parametri Systems Manager che hai creato, aggiungi manualmente le autorizzazioni seguenti come policy al ruolo per l'esecuzione di attività. Per informazioni su come gestire le autorizzazioni, consulta Aggiungere e rimuovere le autorizzazioni di IAM identità nella Guida per l'IAMutente.

  • ssm:GetParameters: obbligatorio quando si fa riferimento a un parametro di Archivio dei parametri Systems Manager in una definizione di attività. Aggiunge l'autorizzazione per recuperare i parametri di Systems Manager.

  • secretsmanager:GetSecretValue: obbligatorio quando si fa riferimento a un segreto di Gestione dei segreti direttamente o se il parametro di Archivio dei parametri Systems Manager fa riferimento a un segreto di Gestione dei segreti in una definizione di attività. Aggiunge l'autorizzazione per recuperare il segreto da Secrets Manager.

  • kms:Decrypt: obbligatorio solo se il segreto utilizza una chiave gestita personalizzata e non quella predefinita. La ARN chiave personalizzata deve essere aggiunta come risorsa. Aggiunge l'autorizzazione per decrittografare la chiave gestita dal cliente.

La seguente policy di esempio aggiunge le autorizzazioni necessarie:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:region:aws_account_id:parameter/parameter_name", "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name", "arn:aws:kms:region:aws_account_id:key/key_id" ] } ] }

Fargate esegue le attività di trasferimento delle immagini di ECR Amazon tramite le autorizzazioni degli endpoint dell'interfaccia

Quando avvii attività che utilizzano il tipo di avvio Fargate che estrae immagini da Amazon ECR quando ECR Amazon è configurato per utilizzare un endpoint di VPC interfaccia, puoi limitare l'accesso alle attività a un endpoint o a uno VPC specifico endpoint. VPC A tale scopo, crea un ruolo di esecuzione delle attività per le attività da utilizzare che utilizzano chiavi di condizione. IAM

Utilizza le seguenti chiavi di condizione IAM globali per limitare l'accesso a uno specifico VPC o a un VPC endpoint. Per ulteriori informazioni, consulta Chiavi di contesto delle condizioni globali AWS.

  • aws:SourceVpc—Limita l'accesso a uno specifico. VPC È possibile limitarli VPC a VPC quello che ospita l'attività e l'endpoint.

  • aws:SourceVpce—Limita l'accesso a un endpoint specifico. VPC

La policy del ruolo di esecuzione delle attività fornisce un esempio per l'aggiunta di chiavi di condizione:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-xxxxxx", "aws:sourceVpc": "vpc-xxxxx" } } } ] }

Autorizzazioni per lo storage di file Amazon S3

Quando specifichi un file di configurazione ospitato in Amazon S3, il ruolo di esecuzione dell'attività deve includere l's3:GetObjectautorizzazione per il file di configurazione e l's3:GetBucketLocationautorizzazione per il bucket Amazon S3 in cui si trova il file. Per ulteriori informazioni, consulta Specifica delle autorizzazioni in una policy nella Guida per l'utente di Amazon Simple Storage Service.

La seguente policy di esempio aggiunge le autorizzazioni necessarie per il recupero di un file da Amazon S3. Specifica il nome del bucket Amazon S3 e il nome del file di configurazione.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/folder_name/config_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }

Autorizzazioni necessarie per configurare Container Insights per visualizzare gli eventi del ECS ciclo di vita di Amazon

Le seguenti autorizzazioni sono necessarie nel ruolo dell'attività per configurare gli eventi del ciclo di vita:

  • eventi: PutRule

  • eventi: PutTargets

  • registri: CreateLogGroup

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutRule", "events:PutTargets", "logs:CreateLogGroup" ], "Resource": "*" } ] }

Autorizzazioni necessarie per visualizzare gli eventi del ECS ciclo di vita di Amazon in Container Insights

Per visualizzare gli eventi del ciclo di vita sono necessarie le seguenti autorizzazioni. Aggiungi le autorizzazioni seguenti come policy in linea al ruolo di esecuzione di attività. Per ulteriori informazioni, consulta Aggiungere e rimuovere le politiche. IAM

  • eventi: DescribeRule

  • eventi: ListTargetsByRule

  • registri: DescribeLogGroups

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListTargetsByRule", "logs:DescribeLogGroups" ], "Resource": "*" } ] }