Ruolo IAM di esecuzione di attività Amazon ECS
Il ruolo di esecuzione del processo concede all'agente del container di Amazon ECS e agli agenti Fargate l'autorizzazione per effettuare chiamate API AWS per tuo conto. Il ruolo IAM di esecuzione di attività è necessario a seconda dei requisiti dell'attività. È possibile disporre di più ruoli di esecuzione di attività per scopi e servizi diversi associati all'account.
Nota
Queste autorizzazioni vengono rese disponibili all'agente in esecuzione sull'istanza tramite l'invio periodico da parte di Amazon ECS delle credenziali temporanee del ruolo, ma non sono direttamente accessibili dai container nell'attività. Per le autorizzazioni IAM necessarie all'esecuzione del codice dell'applicazione all'interno del container, consulta Ruolo IAM dell'attività Amazon ECS.
Di seguito sono elencati i casi di utilizzo comune per un ruolo IAM di esecuzione di attività:
-
L'attività è ospitata su AWS Fargate o su un'istanza esterna e:
-
estrae un'immagine container da un repository privato Amazon ECR.
-
estrae un'immagine di container da un repository privato Amazon ECR in un account diverso da quello che esegue l'attività.
-
invia i log del container a CloudWatch Logs utilizzando il driver di log
awslogs. Per ulteriori informazioni, consulta Invio di log Amazon ECS a CloudWatch .
-
-
Le tue attività sono ospitate su istanze AWS Fargate o Amazon EC2 e:
-
usa l'autenticazione del registro privato. Per ulteriori informazioni, consulta Autorizzazioni di autenticazione del registro privato.
-
utilizza Runtime Monitoring.
-
la definizione dell'attività fa riferimento a dati sensibili utilizzando i segreti di Secrets Manager o i parametri AWS Systems Manager Parameter Store. Per ulteriori informazioni, consulta Autorizzazioni per Secrets Manager o Systems Manager.
-
Nota
Il ruolo di esecuzione dei processi è supportato dall'agente del container di Amazon ECS versione 1.16.0 e successiva.
Amazon ECS fornisce la policy gestita denominata AmazonECSTaskExecutionRolePolicy che contiene le autorizzazioni richieste dai casi di utilizzo comune descritti in precedenza. Per ulteriori informazioni, consulta AmazonECSTaskExecutionRolePolicy nella Guida di riferimento sulle policy gestite da AWS. Potrebbe essere necessario aggiungere policy in linea al ruolo di esecuzione delle attività per i casi d'uso speciali
La console Amazon ECS crea un ruolo di esecuzione delle attività. Puoi collegare manualmente la policy IAM gestita per le attività in modo da consentire ad Amazon ECS di aggiungere le autorizzazioni per funzionalità e miglioramenti futuri man mano che vengono introdotti. Puoi usare la ricerca della console IAM per cercare ecsTaskExecutionRole e controllare se l'account dispone già di un ruolo di esecuzione dell'attività. Per ulteriori informazioni, consulta Ricerca nella console IAM nella Guida per l'utente IAM .
Se estrai immagini in qualità di utente autenticato, è meno probabile che tu subisca l'impatto delle modifiche apportate Docker Huball'utilizzo e ai limiti di
Utilizzando Amazon ECR e Amazon ECR Public, puoi evitare i limiti imposti da Docker. Se estrai immagini da Amazon ECR, ciò contribuisce anche ad abbreviare i tempi di estrazione della rete e a ridurre le modifiche al trasferimento di dati quando il traffico esce dal tuo VPC.
Quando utilizzi Fargate, devi autenticarti in un registro di immagini privato utilizzando repositoryCredentials. Non è possibile impostare le variabili di ambiente dell'agente di container Amazon ECS ECS_ENGINE_AUTH_TYPE o ECS_ENGINE_AUTH_DATA o modificare il file ecs.config per le attività in hosting su Fargate. Per ulteriori informazioni, consulta Autenticazione del registro privato per le attività.
Creazione del ruolo di esecuzione attività
Se l'account non dispone già di un ruolo di esecuzione di attività, attenersi alla seguente procedura per creare il ruolo.
Dopo aver creato il ruolo, aggiungi ad esso ulteriori autorizzazioni per le seguenti funzionalità.
| Funzionalità | Autorizzazioni aggiuntive |
|---|---|
|
Estrai le immagini dei container da registri privati esterni a AWS (come Docker Hub, Quay.io o il tuo registro privato) usando le credenziali di Secrets Manager |
|
| Trasmetti dati sensibili con Systems Manager o Secrets Manager | |
| Fai in modo che le attività Fargate eseguano il pull delle immagini Amazon ECR su endpoint di interfaccia | |
| File di configurazione di host in un bucket Amazon S3 | |
| Configura Approfondimenti sui container per visualizzare gli eventi del ciclo di vita di Amazon ECS | |
| Visualizza gli eventi del ciclo di vita di Amazon ECS in Approfondimenti sui container |
Autorizzazioni di autenticazione del registro privato
L'autenticazione del registro privato consente alle attività di Amazon ECS di estrarre immagini di container da registri privati esterni a AWS (come Docker Hub, Quay.io o il tuo registro privato) che richiedono credenziali di autenticazione. Questa funzionalità utilizza Secrets Manager per archiviare in modo sicuro le credenziali del tuo registro, a cui viene poi fatto riferimento nella definizione dell'attività utilizzando il parametro repositoryCredentials.
Per ulteriori informazioni sulla configurazione dell'autenticazione del registro privato, consultare Utilizzo di immagini container non AWS in Amazon ECS.
Le autorizzazioni seguenti devono essere aggiunte manualmente come policy inline al ruolo per l'esecuzione di attività, per fornire l'accesso ai segreti che contengono credenziali del tuo registro privato. Per ulteriori informazioni, consulta Aggiunta e rimozione delle policy IAM.
-
secretsmanager:GetSecretValue: necessario per recuperare le credenziali del registro privato da Secrets Manager. -
kms:Decrypt: obbligatorio solo se il segreto utilizza una chiave KMS personalizzata e non quella di default. Il nome della risorsa Amazon (ARN) per la chiave personalizzata deve essere aggiunto come risorsa.
Di seguito viene riportata una policy inline che aggiunge le autorizzazioni.
Autorizzazioni per Secrets Manager o Systems Manager
Autorizzazioni per consentire all'agente del container di recuperare le risorse di AWS Systems Manager o Secrets Manager necessarie. Per ulteriori informazioni, consulta Trasferimento di dati sensibili a un container Amazon ECS.
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 avere informazioni sulla gestione delle autorizzazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente IAM.
-
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.
Uso di Systems Manager
Importante
Per i processi che utilizzano il tipo di avvio EC2, devi utilizzare la variabile di configurazione dell'agente ECS ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true per utilizzare questa funzionalità. Puoi aggiungerlo al file ./etc/ecs/ecs.config durante la creazione dell'istanza di container oppure aggiungerlo a un'istanza esistente e quindi riavviare l'agente ECS. Per ulteriori informazioni, consulta Configurazione dell'agente del container Amazon ECS.
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 avere informazioni sulla gestione delle autorizzazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente IAM.
-
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. L'ARN per la chiave personalizzata deve essere aggiunto come risorsa. Aggiunge l'autorizzazione per decrittografare la chiave gestita dal cliente.
La seguente policy di esempio aggiunge le autorizzazioni necessarie:
Autorizzazioni per attività Fargate che eseguono il pull delle immagini Amazon ECR su endpoint di interfaccia
Quando avvii attività che usano 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 dei processi per i processi 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, consulta Chiavi di contesto delle condizioni globali AWS.
-
aws:SourceVpc: limita l'accesso a un VPC specifico. Puoi limitare il VPC al VPC che ospita l'attività e l'endpoint. -
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:
Autorizzazioni Amazon ECR
Le seguenti autorizzazioni sono necessarie quando è necessario eseguire il pull delle immagini di container dai repository privati di Amazon ECR. Il ruolo di esecuzione dell'attività deve disporre di queste autorizzazioni per consentire al container Amazon ECS e agli agenti Fargate di eseguire il pull delle immagini del container per tuo conto. Per le implementazioni ECS di base, queste autorizzazioni devono essere aggiunte al ruolo di esecuzione dell'attività invece che al ruolo IAM dell'attività.
La policy gestita del ruolo di esecuzione delle attività di Amazon ECS (AmazonECSTaskExecutionRolePolicy) comprende le autorizzazioni necessarie per eseguire il pull delle immagini da Amazon ECR. Se usi la policy gestita, non è necessario aggiungere queste autorizzazioni separatamente.
Se stai creando una policy personalizzata, includi le seguenti autorizzazioni per consentire il pull delle immagini da Amazon ECR:
Considera che queste autorizzazioni sono diverse dalle autorizzazioni che potrebbero essere richieste nel ruolo IAM dell'attività se il codice dell'applicazione deve interagire direttamente con le API di Amazon ECR. Per ulteriori informazioni sulle autorizzazioni per un ruolo IAM dell'attività, consulta Autorizzazioni Amazon ECR.
Autorizzazioni per l'archiviazione dei file Amazon S3
Quando specifichi un file di configurazione ospitato in Amazon S3, il ruolo di esecuzione dell'attività deve includere l'autorizzazione s3:GetObject per il file di configurazione e l'autorizzazione s3:GetBucketLocation per il bucket Amazon S3 in cui si trova il file. Per maggiori informazioni, consulta Azioni di policy per Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.
La policy di esempio seguente aggiunge le autorizzazioni necessarie per recuperare un file da Amazon S3. Specifica il nome del bucket Amazon S3 e il nome del file di configurazione.