Global outage event
If you’re experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Come posso fornire l'accesso multi-account agli oggetti presenti nei bucket Amazon S3?
Desidero concedere a un altro account AWS l'accesso a un oggetto che si trova in un bucket Amazon Simple Storage Service (Amazon S3).
Breve descrizione
In qualità di amministratore dell'account, puoi concedere agli utenti di un altro account l'accesso multi-account agli oggetti di tua proprietà nel tuo account.
Puoi concedere autorizzazioni per risorse S3 specifiche che non richiedono l'accesso amministrativo completo.
Utilizza uno dei seguenti metodi per concedere l'accesso multi-account agli oggetti:
- Policy di AWS Identity and Access Management (AWS IAM) e policy del bucket basate sulle risorse per l'accesso solo a livello di programmazione agli oggetti del bucket S3.
- Policy IAM e liste di controllo degli accessi (ACL) basate su risorse per l'accesso solo a livello di programmazione agli oggetti del bucket S3.
Nota: quando attivi l'impostazione Proprietario del bucket applicato, Amazon S3 disattiva tutte le ACL dei bucket e degli oggetti. Pertanto, non puoi utilizzare le ACL per concedere l'accesso multi-account. Per impostazione predefinita, l'impostazione Proprietario del bucket applicato è attivata per tutti i bucket appena creati. Per gestire l'accesso multi-account, è inoltre consigliabile utilizzare le policy IAM e le policy del bucket anziché le ACL. Per ulteriori informazioni, consulta Controlling ownership of objects and deactivating ACLs for your bucket. - Ruoli IAM multi-account per l'accesso a livello di programmazione e da console agli oggetti del bucket S3.
Se il richiedente è un principale con ruolo IAM, l'account proprietario del principale deve utilizzare una policy IAM per concedere le autorizzazioni relative al bucket S3. In base al caso d'uso specifico, il proprietario del bucket deve utilizzare anche la policy o l'ACL del bucket per concedere le autorizzazioni. Dopo aver garantito l'accesso, l'accesso multi-account a livello di programmazione ai bucket equivale all'accesso agli stessi bucket di account.
Per l'accesso multi-account con punti di accesso Amazon S3 o Servizio AWS di gestione delle chiavi (AWS KMS), è necessaria una configurazione aggiuntiva. Per ulteriori informazioni, consulta Perché gli utenti multi-account ricevono errori di accesso negato quando tentano di accedere ai miei oggetti S3 che ho crittografato con una chiave gestita dal cliente di AWS KMS?
Per i set di dati di grandi dimensioni a cui è necessario accedere come oggetti multi-account, è consigliabile utilizzare i punti di accesso S3. Per ulteriori informazioni, consulta Simplify and scale access management to shared datasets with cross-account Amazon S3 Access Points.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Nelle procedure seguenti, l'Account A è il tuo account e l'Account B è l'account a cui desideri concedere l'accesso agli oggetti.
Policy IAM e policy del bucket basate sulle risorse
Per gestire l'accesso multi-account e verificare le autorizzazioni dell'oggetto S3, utilizza policy del bucket basate sulle risorse.
Applica una policy di bucket a livello di bucket che definisca gli elementi principale, risorsa e operazione.Quando applichi una policy di bucket a livello di bucket, puoi definire un accesso a diversi oggetti all'interno del bucket. Puoi anche rivedere la policy del bucket per visualizzare gli utenti in grado di accedere agli oggetti in un bucket S3.
Per gestire l'accesso ai bucket S3 tramite le policy del bucket, completa i seguenti passaggi:
-
Crea un bucket S3 nell'Account A.
-
Crea un utente o un ruolo IAM nell'Account B.
-
Assegna all'utente o al ruolo IAM nell'Account B le autorizzazioni GetObject e PutObject. Inoltre, concedi all'utente o al ruolo IAM l'autorizzazione a chiamare PutObjectAcl che concede l'autorizzazione dell'oggetto al proprietario del bucket:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::AccountABucketName/*" } ] }Nota: nella policy precedente, sostituisci gli esempi di valore con i tuoi valori utente.
Puoi inoltre limitare l'accesso a una cartella specifica del bucket nell'Account A. Per effettuare questa operazione, specifica il nome della cartella nell'elemento Risorsa, ad esempio "arn:aws:s3:::AccountABucketName/FolderName/*". Per ulteriori informazioni, consulta Come posso concedere a un utente l'accesso a una cartella specifica nel mio bucket Amazon S3? In alternativa, puoi creare una policy basata sull'identità IAM eseguendo il comando AWS CLI create-policy. -
Configura la policy del bucket per l'Account A in modo da concedere le autorizzazioni GetObject e putObject all'utente o al ruolo IAM che hai creato nell'Account B:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:user/AccountBUserName" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::AccountABucketName/*" ] } ] }Puoi anche eseguire il comando AWS CLI put-bucket-policy per creare una policy del bucket S3.
Per limitare l'accesso a una cartella specifica del bucket, definisci il nome della cartella nell'elemento Risorsa, ad esempio "arn:aws:s3:::AccountABucketName/FolderName/*". Quando utilizzi l'autorizzazione s3:PutObject con una chiave di condizione, il proprietario del bucket ha il pieno controllo sugli oggetti caricati da altri account. La chiamata API PutObject applica l'ACL con intestazioni specifiche.
Policy IAM e ACL basate su risorse
Puoi utilizzare le ACL degli oggetti anche per gestire le autorizzazioni per scenari specifici.
Le ACL di Amazon S3 consentono agli utenti di definire solo i seguenti set di autorizzazioni: READ, WRITE, READ_ACP, WRITE_ACP e FULL_CONTROL. Puoi utilizzare solo un account o uno dei gruppi predefiniti di Amazon S3 come beneficiario per l'ACL di Amazon S3. Quando si specifica un indirizzo e-mail o un ID utente canonico per un account, l'ACL si applica a tutte le identità dell'account del beneficiario. Ad esempio, non puoi utilizzare un’ACL per limitare l'accesso a singoli utenti o ruoli IAM. Inoltre, non puoi applicare le ACL a oggetti diversi che condividono gli stessi prefissi.
**Nota: ** l'ACL non supporta la condizione per l'operazione S3 autorizzata dall'ACL. Pertanto, il proprietario del bucket potrebbe non avere il pieno controllo sugli oggetti caricati dal beneficiario dell'ACL.
Per gestire l'accesso al bucket S3 tramite le ACL del bucket e dell'oggetto, completa i seguenti passaggi:
-
Crea un utente o un ruolo IAM nell'Account B.
-
Concedi al ruolo o all'utente le autorizzazioni per eseguire le operazioni Amazon S3 richieste. Gli utenti che effettuano chiamate a PutObject e GetObject devono avere le autorizzazioni elencate nella sezione Policy IAM e policy del bucket basate sulle risorse.
-
Configurare l'ACL del bucket per includere almeno l'autorizzazione WRITE per l'Account B. L'autorizzazione WRITE consente agli utenti o ai ruoli IAM dell'Account B di caricare oggetti in un bucket di proprietà dell'Account A:
...<AccessControlPolicy> <Owner> <ID> AccountACanonicalUserID </ID> <DisplayName> AccountADisplayName </DisplayName> </Owner> <AccessControlList> ... <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID> AccountBCanonicalUserID </ID> <DisplayName> AccountBDisplayName </DisplayName> </Grantee> <Permission> WRITE </Permission> </Grant> ... </AccessControlList> </AccessControlPolicy>Nota: per individuare il valore CanonicalUserID, consulta Trovare l'ID utente canonico di un account AWS.
-
Configura gli ACL degli oggetti per includere almeno l'autorizzazione READ per l'Account B. L'autorizzazione READ consente ai ruoli o agli utenti IAM nell'Account B di scaricare oggetti da un bucket di proprietà dell'Account A:
...<AccessControlPolicy> <Owner> <ID> AccountACanonicalUserID </ID> <DisplayName> AccountADisplayName </DisplayName> </Owner> <AccessControlList> ... <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID> AccountBCanonicalUserID </ID> <DisplayName> AccountBDisplayName </DisplayName> </Grantee> <Permission> READ </Permission> </Grant> ... </AccessControlList> </AccessControlPolicy>
Le autorizzazioni dell'ACL variano in base alla risorsa, al bucket o all'oggetto S3 a cui viene applicata l’ACL. Per ulteriori informazioni, consulta Panoramica delle liste di controllo degli accessi (ACL). Quando crei il tuo bucket o carichi un oggetto in un bucket esistente, configura le ACL del bucket e dell'oggetto.
Ruoli IAM multi-account
Non tutti i servizi AWS supportano le policy basate sulle risorse. Utilizza piuttosto i ruoli IAM multi-account per centralizzare la gestione delle autorizzazioni quando fornisci l'accesso multi-account a più servizi. Questo metodo consente l'accesso multi-account agli oggetti posseduti o caricati da un altro account o servizio AWS. Se non utilizzi ruoli IAM multi-account, devi modificare l'ACL dell'oggetto. Per ulteriori informazioni, consulta How Amazon S3 authorizes a request for an object operation.
Per gestire l'accesso ai bucket S3 tramite i ruoli IAM multi-account, attieniti alla seguente procedura:
-
Crea un ruolo IAM nell'Account A.
-
Concedi al ruolo le autorizzazioni per eseguire le operazioni S3 richieste. Nella policy di attendibilità del ruolo, concedi a un ruolo o a un utente dell'Account B le autorizzazioni per assumere il ruolo nell'Account A:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:user/AccountBUserName" }, "Action": "sts:AssumeRole" } ] }Nota: i ruoli IAM devono avere una policy di attendibilità che definisca quali principali possono assumere i ruoli e in quali condizioni. I ruoli IAM possono avere più policy di autorizzazioni che definiscono le autorizzazioni che un principale che assume il ruolo può eseguire e le risorse che utilizza.
Puoi creare un ruolo con la policy di attendibilità anche eseguendo il comando AWS CLI create-role.
La policy di accesso seguente consente a un utente che ha assunto il ruolo di utilizzare la console Amazon S3 per scaricare e caricare oggetti a livello di programmazione. Se hai bisogno solo dell'accesso programmatico, puoi rimuovere le prime due istruzioni della policy:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": "arn:aws:s3:::AccountABucketName" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::AccountABucketName/*" } ] }Per ulteriori informazioni, consulta Come posso concedere a un utente l'accesso a una cartella specifica nel mio bucket Amazon S3? In alternativa, puoi creare una policy basata sull'identità IAM eseguendo il comando AWS CLI create-policy.
-
Concedi a un ruolo o un utente IAM nell'Account B l'autorizzazione per assumere il ruolo IAM che hai creato nell'Account A. Devi aggiungere la seguente policy come policy di autorizzazione all'utente o al ruolo IAM:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::AccountA:role/AccountARole" } }In alternativa, puoi creare una policy basata sull'identità IAM eseguendo il comando AWS CLI create-policy.
-
Da un ruolo nell'Account B, assumi il ruolo nell'Account A in modo che le identità IAM dell'Account B possano eseguire le operazioni S3 richieste.
Nota: quando assumi un ruolo IAM nell'Account A, Amazon S3 determina l'operazione in base alla policy di accesso. Il ruolo IAM funziona come una chiamata API effettuata da un'identità IAM locale nell'Account A. Non è necessaria alcuna policy del bucket o ACL per l'accesso multi-account. Per ulteriori informazioni, consulta Policy actions for Amazon S3.
Informazioni correlate
Actions, resources, and condition keys for Amazon S3
Examples of Amazon S3 bucket policies
- Argomenti
- Storage
- Lingua
- Italiano
Video correlati

