Fase 4: crea un profilo di istanza IAM per le tue istanze Amazon EC2 - AWS CodeDeploy

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à.

Fase 4: crea un profilo di istanza IAM per le tue istanze Amazon EC2

Nota

Se utilizzi la piattaforma di calcolo Amazon ECS o AWS Lambda, salta questo passaggio.

Le tue istanze Amazon EC2 necessitano dell'autorizzazione per accedere ai bucket o ai GitHub repository Amazon S3 in cui sono archiviate le applicazioni. Per avviare istanze Amazon EC2 compatibili con CodeDeploy, devi creare un ruolo IAM aggiuntivo, un profilo di istanza. Queste istruzioni mostrano come creare un profilo di istanza IAM da collegare alle istanze Amazon EC2. Questo ruolo consente all' CodeDeploy agente di accedere ai bucket o ai GitHub repository Amazon S3 in cui sono archiviate le applicazioni.

Puoi creare un profilo di istanza IAM con AWS CLI, la console IAM o le API IAM.

Nota

È possibile collegare un profilo dell'istanza IAM a un'istanza Amazon EC2 all'avvio o a un'istanza avviata in precedenza. Per ulteriori informazioni, consulta Profili di istanza.

Crea un profilo di istanza IAM per le tue istanze Amazon EC2 (CLI)

In queste fasi, presumiamo che tu abbia già seguito le istruzioni per le prime tre fasi di Guida introduttiva con CodeDeploy.

  1. Nella macchina di sviluppo, creare un file di testo denominato CodeDeployDemo-EC2-Trust.json. Incolla il seguente contenuto, che consente ad Amazon EC2 di lavorare per tuo conto:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Nella stessa directory, crea un file di testo denominato CodeDeployDemo-EC2-Permissions.json. Incolla il contenuto seguente:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Nota

    Ti consigliamo di limitare questa politica solo ai bucket Amazon S3 a cui devono accedere le tue istanze Amazon EC2. Assicurati di consentire l'accesso ai bucket Amazon S3 che contengono l'agente. CodeDeploy In caso contrario, potrebbe verificarsi un errore quando l' CodeDeploy agente viene installato o aggiornato sulle istanze. Per concedere al profilo dell'istanza IAM l'accesso solo ad alcuni bucket del kit di CodeDeploy risorse in Amazon S3, utilizza la seguente policy, ma rimuovi le righe relative ai bucket a cui desideri impedire l'accesso:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Nota

    Se desideri utilizzare l'autorizzazione IAM o gli endpoint Amazon Virtual Private Cloud (VPC) con CodeDeploy, dovrai aggiungere altre autorizzazioni. Per ulteriori informazioni, consulta Utilizzo CodeDeploy con Amazon Virtual Private Cloud.

  3. Dalla stessa directory, chiama il create-role comando per creare un ruolo IAM denominatoCodeDeployDemo-EC2-Instance-Profile, in base alle informazioni contenute nel primo file:

    Importante

    Assicurarsi di includere file:// prima del nome del file. Questo è obbligatorio in questo comando.

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. Dalla stessa directory chiama il comando put-role-policy per concedere a un ruolo denominato CodeDeployDemo-EC2-Instance-Profile le autorizzazioni in base alle informazioni del secondo file:​

    Importante

    Assicurarsi di includere file:// prima del nome del file. Questo è obbligatorio in questo comando.

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. Chiamalo attach-role-policy per concedere al ruolo le autorizzazioni di Amazon EC2 Systems Manager in modo che SSM possa installare l'agente. CodeDeploy Questa politica non è necessaria se prevedi di installare l'agente dal bucket pubblico di Amazon S3 con la riga di comando. Ulteriori informazioni sull'installazione dell'agente CodeDeploy .

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Chiama il create-instance-profile comando seguito dal add-role-to-instance-profile comando per creare un profilo di istanza IAM denominato. CodeDeployDemo-EC2-Instance-Profile Il profilo dell'istanza consente ad Amazon EC2 di passare il ruolo IAM denominato CodeDeployDemo-EC2-Instance-Profile a un'istanza Amazon EC2 al primo avvio dell'istanza:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    Se hai bisogno di ottenere il nome del profilo dell'istanza IAM, consulta list-instance-profiles-for-role nella sezione IAM del Reference.AWS CLI

Ora hai creato un profilo di istanza IAM da collegare alle tue istanze Amazon EC2. Per ulteriori informazioni, consulta i ruoli IAM per Amazon EC2 nella Amazon EC2 User Guide.

Crea un profilo di istanza IAM per le tue istanze Amazon EC2 (console)

  1. Accedi AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nella console IAM, nel riquadro di navigazione, scegli Policies, quindi scegli Crea policy.

  3. Nella pagina Specifica autorizzazioni, seleziona JSON.

  4. Rimuovi il JSON codice di esempio.

  5. Incolla il codice seguente:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Nota

    Ti consigliamo di limitare questa politica solo ai bucket Amazon S3 a cui devono accedere le tue istanze Amazon EC2. Assicurati di consentire l'accesso ai bucket Amazon S3 che contengono l'agente. CodeDeploy In caso contrario, potrebbe verificarsi un errore quando l' CodeDeploy agente viene installato o aggiornato sulle istanze. Per concedere al profilo dell'istanza IAM l'accesso solo ad alcuni bucket del kit di CodeDeploy risorse in Amazon S3, utilizza la seguente policy, ma rimuovi le righe relative ai bucket a cui desideri impedire l'accesso:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Nota

    Se desideri utilizzare l'autorizzazione IAM o gli endpoint Amazon Virtual Private Cloud (VPC) con CodeDeploy, dovrai aggiungere altre autorizzazioni. Per ulteriori informazioni, consulta Utilizzo CodeDeploy con Amazon Virtual Private Cloud.

  6. Seleziona Successivo.

  7. Nella pagina Rivedi e crea, nella casella Nome della politica, digitaCodeDeployDemo-EC2-Permissions.

  8. (Facoltativo) In Description (Descrizione) inserire una descrizione per la policy.

  9. Scegli Crea policy.

  10. Nel pannello di navigazione, scegliere Roles (Ruoli) e quindi Create role (Crea ruolo).

  11. In Caso d'uso, scegli il caso d'uso EC2.

  12. Seleziona Successivo.

  13. Nell'elenco delle politiche, seleziona la casella di controllo accanto alla policy che hai appena creato (CodeDeployDemo-EC2-Permissions). Se necessario, utilizzare la casella di ricerca per trovare la policy.

  14. Per utilizzare Systems Manager per installare o configurare l' CodeDeploy agente, seleziona la casella di controllo accanto a ManagedInstanceCoreAmazonSSM. Questa policy AWS gestita consente a un'istanza di utilizzare le funzionalità principali del servizio Systems Manager. Se necessario, utilizzare la casella di ricerca per trovare la policy. Questa politica non è necessaria se prevedi di installare l'agente dal bucket pubblico di Amazon S3 con la riga di comando. Ulteriori informazioni sull'installazione dell'agente CodeDeploy.

  15. Seleziona Successivo.

  16. Nella pagina Nome, revisione e creazione, in Nome ruolo, inserisci un nome per il ruolo di servizio (ad esempio,CodeDeployDemo-EC2-Instance-Profile), quindi scegli Crea ruolo.

    Puoi anche inserire una descrizione per questo ruolo di servizio nella descrizione del ruolo.

Ora hai creato un profilo di istanza IAM da collegare alle tue istanze Amazon EC2. Per ulteriori informazioni, consulta i ruoli IAM per Amazon EC2 nella Amazon EC2 User Guide.