Amazon ECSEsecuzione dell'attivitàIAMruolo - 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à.

Amazon ECSEsecuzione dell'attivitàIAMruolo

Il ruolo di esecuzione attività concede laAmazon ECScontenitore e agenti Fargate permesso di fareAWSRichiama API per tuo conto. Il ruolo di esecuzione IAM dell'attività è richiesto in base ai requisiti dell'attività. È possibile avere più ruoli di esecuzione attività per scopi e servizi diversi associati all'account.

Di seguito sono elencati i casi di utilizzo comune per un ruolo IAM di esecuzione delle attività:

Nota

Il ruolo di esecuzione delle attività è supportato dall'agente del container Amazon ECS versione 1.16.0 e successive.

Amazon ECS fornisce la policy gestita AmazonECSTaskExecutionRolePolicy che contiene le autorizzazioni richieste dai casi di utilizzo comune descritti in precedenza. Potrebbe essere necessario aggiungere policy in linea al ruolo di esecuzione delle attività per casi d'uso speciali descritti di seguito.

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

Un recordAmazon ECSpuò essere creato automaticamente nella finestra di dialogoAmazon ECS; tuttavia, è necessario collegare manualmente il fileIAMcriteri per le attività da consentireAmazon ECSper aggiungere le autorizzazioni per future caratteristiche e miglioramenti man mano che vengono introdotti. Per verificare se il tuo account dispone già del ruolo di esecuzione delle attività di Amazon ECS e, se necessario, collegare la policy gestita IAM, puoi utilizzare la procedura indicata di seguito.

Per verificare la presenza di ecsTaskExecutionRole nella console IAM

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

  2. Nel riquadro di navigazione, selezionare Roles (Ruoli).

  3. Cercare l'elenco dei ruoli per ecsTaskExecutionRole. Se il ruolo non esiste, consulta Creazione del ruolo IAM di esecuzione attività. Se il ruolo è presente, seleziona il ruolo per visualizzare le policy collegate.

  4. Sulla scheda Permissions (Autorizzazioni), assicurati che la policy gestita AmazonECSTaskExecutionRolePolicy sia collegata al ruolo. Se la policy è collegata, il tuo ruolo di esecuzione delle attività di Amazon ECS è configurato correttamente. In caso contrario, la procedura riportata di seguito consente di collegare la policy.

    1. Scegliere Collega policy.

    2. Per limitare le policy disponibili per il collegamento, in Filter (Filtro) digita AmazonECSTaskExecutionRolePolicy.

    3. Seleziona la casella a sinistra della policy AmazonECSTaskExecutionRolePolicy, quindi scegli Attach policy (Collega policy).

  5. Scegliere Trust relationships (Relazioni di trust), quindi Edit trust relationship (Modifica relazione di trust).

  6. 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 trust non corrisponde, copia la policy nella finestra Policy Document (Documento di policy) e scegli Update Trust Policy (Aggiorna policy di trust).

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

Creazione del ruolo IAM di esecuzione attività

Se l'account non dispone già di un ruolo di esecuzione attività, attenersi alla seguente procedura per creare il ruolo.

Per creare un'esecuzione di un'attivitàIAMruolo (AWS Management Console)

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

  2. Nel riquadro di navigazione seleziona Roles (Ruoli), quindi Create role (Crea nuovo ruolo).

  3. NellaSeleziona tipo di entità attendibile, scegliereAWSservizio,Elastic Container.

  4. PerSeleziona il caso d'uso, scegliereAttività di Elastic Container, quindi scegliereSuccessivo: Autorizzazioni.

  5. NellaAllegare policy autorizzazioni, cercareAmazonECSTaskExecutionRolePolicy, seleziona la policy, quindi scegliSuccessivo: Tag.

  6. PerAggiungi tag (opzionale), specificare eventuali tag personalizzati da associare al criterio, quindi scegliereSuccessivo: Verifica.

  7. PerRole Name (Nome ruolo), digitareecsTaskExecutionRolee scegliereCrea ruolo.

Per creare un'esecuzione di un'attivitàIAMruolo (AWS CLI)

  1. Creare un file denominatoecs-tasks-trust-policy.jsonche contiene i criteri di attendibilità da utilizzare per ilIAMRuolo . Il file JSON deve contenere il testo seguente:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Creazione di unIAMRuolo denominatoecsTaskExecutionRoleutilizzando la policy di attendibilità creata nel passaggio precedente.

    aws iam create-role \ --role-name ecsTaskExecutionRole \ --assume-role-policy-document file://ecs-tasks-trust-policy.json
  3. Allegare laAWSgestite daAmazonECSTaskExecutionRolePolicyai criteriecsTaskExecutionRoleRuolo . Questa policy fornisce

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

Campo obbligatorioIAMAutorizzazioni per l'autenticazione di registri

Per utilizzare la funzionalità di autenticazione di registri privati, è necessario il ruolo per l'esecuzione di attività Amazon ECS. In questo modo l'agente container può recuperare l'immagine del container. Per ulteriori informazioni, consulta Autenticazione di registri privati di attività.

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, consulta Aggiunta e rimozione delle policy IAM.

  • secretsmanager:GetSecretValue

  • kms:Decrypt—Obbligatorio solo se la chiave utilizza unaKMS keye non la chiave predefinita di. L'ARN per la chiave personalizzata deve essere aggiunto come risorsa.

Un esempio di policy inline che aggiunge le autorizzazioni è riportato di seguito.

{ "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" ] } ] }

Campo obbligatorioIAMAutorizzazioni perAmazon ECSsegreti

Per utilizzare i segreti di Amazon ECS, è necessario disporre del ruolo di esecuzione dell'attività Amazon ECS e farvi riferimento nella definizione dell'attività. In questo modo l'agente del container può recuperare le necessarie risorse AWS Systems Manager o Secrets Manager. Per ulteriori informazioni, consulta Specifica dei dati sensibili.

Per fornire accesso ai parametri dell'Archivio parametri di AWS Systems Manager creato, aggiungi manualmente le autorizzazioni seguenti come policy inline al ruolo per l'esecuzione di attività. Per ulteriori informazioni, consulta Aggiunta e rimozione delle policy IAM.

  • ssm:GetParameters—Obbligatorio quando si fa riferimento a un parametro dell'Archivio parametri di Systems Manager in una definizione di attività.

  • secretsmanager:GetSecretValue—Obbligatorio se si fa direttamente riferimento a un segreto Secrets Manager o se il parametro dell'Archivio parametri di Systems Manager fa riferimento a un segreto Secrets Manager in una definizione di attività.

  • kms:Decrypt—Obbligatorio solo se il segreto utilizza unaKMS keye non la chiave predefinita di. L'ARN per la chiave personalizzata deve essere aggiunto come risorsa.

La policy inline dell'esempio seguente aggiunge le autorizzazioni necessarie:

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

OpzionaleIAMAutorizzazioni perFargateAttività di estrazioneAmazon ECRImmagini sugli endpoint di interfaccia

Quando avvii attività che usano il tipo di lancio Fargate che estraggono immagini da Amazon ECR quando Amazon ECR è configurato per utilizzare un endpoint VPC dell'interfaccia, puoi limitare l'accesso a un VPC o endpoint VPC specifico. Per fare questo, crea un ruolo di esecuzione delle attività per le attività che utilizzano chiavi di condizione IAM.

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

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

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

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

Importante

Non è possibile applicare le chiavi di condizione aws:sourceVpc o aws:sourceVpce all'operazione API ecr:GetAuthorizationToken perché la chiamata API GetAuthorizationToken passa attraverso l'interfaccia di rete elastica di proprietà di AWS Fargate anziché l'interfaccia di rete elastica dell'attività.

{ "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" } } } ] }