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 Supporto AWS Team su AWS re:post
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

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:
-
Usa la IAM console o API per creare un profilo.
Per ulteriori informazioni, consulta l'argomento relativo ai ruoli (delegazione e federazione).
-
Usa un AWS CloudFormation modello per creare un profilo.
Per alcuni esempi di come includere IAM risorse in un modello, vedete Identity and Access Management (IAM) Template Snippets.
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 IAMconsoleregion
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:PassRole
azione 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.