Ruolo IAM CodeDeploy di Amazon ECS - Amazon Elastic Container Service

Ruolo IAM CodeDeploy di Amazon ECS

Prima di utilizzare il tipo di implementazione blu/verde di CodeDeploy con Amazon ECS, il servizio CodeDeploy richiede le autorizzazioni per aggiornare il servizio Amazon ECS per tuo conto. Queste autorizzazioni sono fornite dal ruolo IAM di CodeDeploy (ecsCodeDeployRole).

Nota

Gli utenti richiedono anche le autorizzazioni per utilizzare CodeDeploy, autorizzazioni descritte in Autorizzazioni IAM richieste.

Sono disponibili due policy gestite. Per ulteriori informazioni, consulta una delle seguenti voci nella Guida di riferimento alle policy gestite da AWS:

Creazione del ruolo di CodeDeploy

Puoi usare le seguenti procedure per creare un ruolo CodeDeploy per Amazon ECS

AWS Management Console
Per creare il ruolo di servizio per CodeDeploy (console IAM)
  1. Accedi a 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, seleziona CodeDeploy, quindi scegli il caso d'uso CodeDeploy - ECS.

  5. Scegli Next (Successivo).

  6. Nella sezione Allega criteri di autorizzazione, assicurati che sia selezionato il criterio AWSCodeDeployRoleForECS.

  7. Scegli Next (Successivo).

  8. Per Nome ruolo, inserisci ecsCodeDeployRole.

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

AWS CLI

Sostituisci tutti gli input dell'utente con le tue informazioni.

  1. Crea un file denominato codedeploy-trust-policy.json contenente la policy di attendibilità da utilizzare per il ruolo IAM CodeDeploy.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. Crea un ruolo IAM denominato ecsCodedeployRole utilizzando la policy di attendibilità creata nel passaggio precedente.

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. Collega la policy gestita da AWSCodeDeployRoleForECS o da AWSCodeDeployRoleForECSLimited al ruolo ecsTaskRole.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECSLimited

Quando le attività nel servizio richiedono un ruolo di esecuzione delle attività, è necessario aggiungere l'autorizzazione iam:PassRole per ogni ruolo di esecuzione delle attività o sostituzione del ruolo delle attività al ruolo CodeDeploy come policy.

Autorizzazioni del ruolo di esecuzione dell'attività

Quando le attività nel servizio richiedono un ruolo di esecuzione delle attività, è necessario aggiungere l'autorizzazione iam:PassRole per ogni ruolo di esecuzione delle attività o sostituzione del ruolo delle attività al ruolo CodeDeploy come policy. Per ulteriori informazioni, consultare Ruolo IAM di esecuzione di attività Amazon ECS e Ruolo IAM dell'attività Amazon ECS. Quindi, allega tale policy al ruolo CodeDeploy

Creare la policy

AWS Management Console
Come utilizzare l'editor di policy JSON per creare una policy
  1. Accedi a 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": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  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 avere creato la policy, collegala al ruolo CodeDeploy. Per informazioni su come associare la policy al ruolo, consulta Aggiorna autorizzazioni per un ruolo nella Guida per l'utente di AWS Identity and Access Management

AWS CLI

Sostituisci tutti gli input dell'utente con le tue informazioni.

  1. Crea un file denominato blue-green-iam-passrole.json, con il seguente contenuto:

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::*:role/code-deploy-role"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }
  2. Usa il seguente comando per creare la policy IAM utilizzando il file del documento della policy JSON.

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. Recupera l'ARN della policy IAM che hai creato usando il seguente comando.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
  4. Utilizza il comando seguente per collegare la policy delle autorizzazioni al ruolo IAM CodeDeploy.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy