Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Come posso concedere alla mia istanza Amazon EC2 l'accesso a un bucket Amazon S3 in un altro account AWS?
Voglio utilizzare un'istanza Amazon Elastic Compute Cloud (Amazon EC2) per accedere al mio bucket Amazon Simple Storage Service (Amazon S3) in un altro account.
Risoluzione
Nota: i passaggi per concedere a un'istanza Amazon EC2 l'accesso a un bucket Amazon S3 sono simili a quelli per concedere l'accesso alle risorse AWS in un altro account.
Completa i seguenti passaggi per concedere a un'istanza dell'account A l'accesso a un bucket S3 dell'account B.
Dall'account B, crea un ruolo IAM
Per creare un ruolo IAM (Identity and Access Management) dall'account B, completa i seguenti passaggi:
- Utilizza l’account B per accedere alla Console di gestione AWS.
- Apri la console IAM.
- Nel pannello di navigazione, scegli Ruoli, quindi scegli Crea ruolo.
- In Tipo di entità attendibile, scegli Account AWS.
- Seleziona Un altro account AWS, quindi inserisci l'ID dell'account A.
- Scegli Avanti.
- Collega una policy IAM al ruolo che delega l'accesso ad Amazon S3, quindi scegli Avanti. Ad esempio, la seguente policy IAM concede a S3:getObject l'accesso agli oggetti archiviati nel bucket:
Nota: modifica la policy IAM in base alle autorizzazioni a livello di bucket e di oggetto di Amazon S3 richieste per il tuo caso d'uso.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] } ] }
- In Nome ruolo, inserisci un nome per il ruolo.
- (Facoltativo) Aggiungi tag al ruolo.
- Scegli Crea ruolo.
Dall'account B, trova l'ARN del ruolo IAM
Per trovare l'ARN del ruolo IAM, completa i seguenti passaggi:
- Dal riquadro di navigazione della console IAM, scegli Ruoli.
- Scegli il ruolo IAM che hai creato.
- Prendi nota del valore elencato per ruolo ARN.
Dall'account A, crea un altro ruolo e collegalo all'istanza
Per creare un altro profilo dell’istanza dall'account A e collegarlo all'istanza, completa i seguenti passaggi:
- Utilizza l’account A per accedere alla Console di gestione AWS.
- Apri la console IAM.
- Dal pannello di navigazione, scegli Ruoli, quindi scegli Crea ruolo.
- In Tipo di entità attendibile, scegli Servizio AWS.
- In Servizio o caso d'uso, scegli EC2 e quindi seleziona il tuo caso d'uso.
- Scegli Avanti.
- Nella pagina Aggiungi autorizzazioni scegli Avanti.
- In Nome ruolo, inserisci un nome per il ruolo.
- (Facoltativo) Aggiungi tag al ruolo.
- Scegli Crea ruolo.
- Dall'elenco dei ruoli, scegli il ruolo che hai appena creato.
- In Aggiungi autorizzazioni, scegli Creare policy inline.
- Per l’Editor di policy, seleziona JSON, quindi inserisci la seguente policy:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111111111111:role/ROLENAME" }] }
Nota: sostituisci arn:aws:iam::111111111111:role/ROLENAME con l'ARN del ruolo IAM che hai creato nell'account B. Scegli Avanti. In Nome, inserisci un nome per la policy, quindi scegli Crea policy. Collega il ruolo IAM all'istanza che usi per accedere al bucket Amazon S3.
Dall'istanza Amazon EC2, crea un profilo per il ruolo nel file di configurazione dell’interfaccia della linea di comando
Nota: se usi SSH e Session Manager, una funzionalità di AWS Systems Manager, per connetterti alle tue istanze, devi eseguire questi passaggi sia per ec2-user che per ssm-user.
Per creare un profilo dall’istanza per il ruolo nel file di configurazione dell’interfaccia della linea di comando, completa i seguenti passaggi:
-
Connettiti all'istanza. Per ulteriori informazioni, consulta Connessione all'istanza di Linux o Connessione all’istanza di Windows.
-
Per determinare se la directory ha già una cartella denominata ~/.aws, esegui il seguente comando ls per elencare la directory dell'istanza:
ls -l ~/.aws
Se trovi la cartella ~/.aws, procedi al passaggio successivo. Se non trovi una cartella ~/.aws esegui il seguente comando mkdir per creare la cartella:
mkdir ~/.aws/
-
Nella cartella ~/.aws, usa un editor di testo per creare un file. Assegna config come nome del file.
-
Nel file, inserisci il testo seguente:
[profile enterprofilename] role_arn = arn:aws:iam::111111111111:role/ROLENAME credential_source = Ec2InstanceMetadata
Nota: sostituisci enterprofilename con il tuo valore. Sostituisci arn:aws:iam::111111111111:role/ROLENAME con l'ARN del ruolo che hai creato nell'account B.
-
Salva il file.
Verifica che il profilo dell'istanza possa assumere il ruolo
Per verificare che il ruolo della tua istanza possa assumere il ruolo nell'account B, connettiti all'istanza ed esegui il comando seguente:
$aws sts get-caller-identity --profile profilename
Nota: sostituisci profilename con il nome del ruolo che hai collegato all'istanza.
Il comando restituisce una risposta simile alla seguente:
"Account": "11111111111", "UserId": "AROAEXAMPLEID:sessionName", "Arn": "arn:aws:sts::111111111111:assumed-role/ROLENAME/sessionName"
Verifica che il valore di "Arn" corrisponda all'ARN del ruolo che hai creato nell'account B.
Verifica l'accesso al bucket Amazon S3
Per verificare che la tua istanza possa accedere al bucket S3, connettiti all'istanza ed esegui il seguente comando list:
aws s3 ls s3://DOC-EXAMPLE-BUCKET --profile profilename
Nota: sostituisci profilename con il nome del ruolo che hai collegato all'istanza.
Se l’istanza riesce ad accedere correttamente al bucket, riceverai una risposta simile alla seguente:
PRE Hello/ 2018-08-15 16:16:51 89 index.html
Informazioni correlate
Tutorial IAM: Delega dell'accesso tra account AWS tramite i ruoli IAM
Video correlati

