Specificazione delle autorizzazioni per le app in esecuzione su istanze EC2 - AWS OpsWorks

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

Specificazione delle autorizzazioni per le app in esecuzione su istanze EC2

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

Se le applicazioni in esecuzione sulle EC2 istanze Amazon del tuo stack devono accedere ad altre AWS risorse, come i bucket Amazon S3, devono disporre delle autorizzazioni appropriate. Per conferire tali autorizzazioni, puoi utilizzare un profilo dell'istanza. Puoi specificare un profilo di istanza per ogni istanza quando crei uno stack Stacks. AWS OpsWorks

Opzione avanzata nella pagina Add Stack (Aggiungi stack).

Puoi anche specificare un profilo per le istanze di un livello modificando la configurazione del livello.

Il profilo dell'istanza specifica un ruolo. IAM Le applicazioni in esecuzione sull'istanza possono assumere quel ruolo per accedere alle AWS risorse, in base alle autorizzazioni concesse dalla politica del ruolo. Per ulteriori informazioni su come un'applicazione assume un ruolo, vedere Assuming the Role Using an Call. API

È possibile creare un profilo dell'istanza in uno dei seguenti modi:

Un profilo di istanza deve avere una relazione di fiducia e una politica associata che conceda le autorizzazioni di accesso alle risorse. AWS

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

Il profilo di istanza deve avere questa relazione di fiducia affinché AWS OpsWorks Stacks agisca per tuo conto. Se utilizzi il ruolo di servizio predefinito, non modificare la relazione di trust. Se crei un ruolo di servizio personalizzato, specifica la relazione di trust come segue:

  • Se utilizzi la procedura guidata Create Role nella IAMconsole, specifica il tipo di EC2 ruolo Amazon in AWSService Roles nella seconda pagina della procedura guidata.

  • Se utilizzi un AWS CloudFormation modello, puoi aggiungere qualcosa come segue alla sezione Risorse del modello.

    "Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }

Quando crei il profilo dell'istanza, puoi allegare una policy appropriata al ruolo del profilo in quel momento. Dopo aver creato lo stack, devi utilizzare la IAMconsole o API allegare una policy appropriata al ruolo del profilo. Ad esempio, la seguente policy garantisce l'accesso completo a tutti gli oggetti nel bucket Amazon S3 denominato amzn-s3-demo-bucket. Replace (Sostituisci) region e amzn-s3-demo-bucket con valori appropriati alla tua configurazione.

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

Per un esempio di come creare e utilizzare un profilo dell'istanza, consulta Utilizzo di un bucket Amazon S3.

Se l'applicazione utilizza un profilo di istanza per richiamare gli AWS OpsWorks Stack API da un'EC2istanza, la policy deve consentire l'iam:PassRoleazione in aggiunta alle azioni appropriate per Stacks e altri servizi. AWS OpsWorks AWS L'autorizzazione iam:PassRole consente a AWS OpsWorks Stacks di assumere il ruolo di servizio per tuo conto. Per ulteriori informazioni sugli AWS OpsWorks StackAPI, consulta Reference. AWS OpsWorks API

Di seguito è riportato un esempio di IAM policy che consente di richiamare qualsiasi azione AWS OpsWorks Stacks da un'EC2istanza, nonché qualsiasi azione Amazon EC2 o Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:region:account_id:instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
Nota

Se non lo consentiiam:PassRole, qualsiasi tentativo di richiamare un'azione AWS OpsWorks Stacks fallisce e genera un errore come il seguente:

User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole

Per ulteriori informazioni sull'utilizzo dei ruoli su un'EC2istanza per le autorizzazioni, consulta Concedere alle applicazioni eseguite su Amazon EC2 Instances l'accesso alle AWS risorse nella Guida per l'AWS Identity and Access Management utente.