Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount - Amazon Simple Storage Service

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

Esempio 2: il proprietario del bucket concede autorizzazioni per il bucket multiaccount

Importante

La concessione delle autorizzazioni ai IAM ruoli è una pratica migliore rispetto alla concessione delle autorizzazioni a singoli utenti. Per informazioni su come effettuare questa operazione, consulta Comprensione delle autorizzazioni tra account e utilizzo dei ruoli IAM.

Un account A, ad Account AWS esempio, può concedere a un altro Account AWS, l'account B, l'autorizzazione ad accedere alle sue risorse come bucket e oggetti. L'Account B può quindi delegare queste autorizzazioni agli utenti nel proprio account. In questo scenario di esempio, il proprietario del bucket concede a un altro account le autorizzazioni multiaccount per eseguire specifiche operazioni nel bucket.

Nota

L'account A può inoltre concedere le autorizzazioni a un utente dell'Account B mediante una policy di bucket. Tuttavia, l'utente avrà comunque bisogno dell'autorizzazione dell'account principale, l'account B, a cui appartiene l'utente, anche se l'account B non dispone delle autorizzazioni dell'account A. Finché l'utente dispone dell'autorizzazione sia del proprietario della risorsa che dell'account principale, l'utente sarà in grado di accedere alla risorsa.

Di seguito è riportato un riepilogo delle fasi della procedura guidata:

E Account AWS concedere un'altra Account AWS autorizzazione per accedere alle sue risorse.
  1. L'amministratore dell'Account A collega una policy di bucket che concede all'Account B autorizzazioni multiaccount per l'esecuzione di specifiche operazioni nel bucket.

    L'utente amministratore dell'Account B erediterà automaticamente le autorizzazioni.

  2. L'utente amministratore dell'account B collega una policy utente all'utente per delegare le autorizzazioni ricevute dall'Account A.

  3. L'utente dell'Account B fa quindi una verifica delle autorizzazioni accedendo a un oggetto nel bucket di proprietà dell'Account A.

Per questo utente, sono necessari due account. La tabella seguente mostra come viene fatto riferimento a questi account e ai relativi utenti amministratori. In conformità con le IAM linee guida (vediInformazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni), in questa procedura dettagliata non utilizziamo le credenziali dell'utente root. Viene invece creato un utente amministratore in ciascun account e le credenziali vengono utilizzate per la creazione di risorse e per concedere autorizzazioni a tali risorse.

Account AWS ID Account denominato Utente amministratore nell'account

1111-1111-1111

Account A

AccountAadmin

2222-2222-2222

Account B

AccountBadmin

Tutte le attività di creazione degli utenti e assegnazione delle autorizzazioni vengono effettuate nella AWS Management Console. Per verificare le autorizzazioni, la procedura dettagliata utilizza gli strumenti della riga di comando, AWS Command Line Interface (CLI) e AWS Tools for Windows PowerShell quindi non è necessario scrivere alcun codice.

Preparazione della spiegazione passo per passo

  1. Assicurati di averne due Account AWS e che ogni account abbia un utente amministratore, come mostrato nella tabella nella sezione precedente.

    1. Registrati per un Account AWS, se necessario.

    2. Utilizzando le credenziali dell'Account A, accedi alla IAMconsole per creare l'utente amministratore:

      1. Crea l'utente AccountAadmin e annota le credenziali di sicurezza. Per istruzioni, consulta Creating an IAM user in Your Account AWS in the IAMUser Guide.

      2. Concedi i privilegi di amministratore AccountAadminallegando una politica utente che dia accesso completo. Per istruzioni, consulta Lavorare con le politiche nella Guida per l'IAMutente.

    3. Mentre sei nella IAM console, prendi nota dell'accesso IAM dell'utente URL nella dashboard. Tutti gli utenti dell'account devono utilizzarlo URL quando accedono a. AWS Management Console

      Per ulteriori informazioni, consulta Come gli utenti accedono al tuo account nella Guida per IAM l'utente.

    4. Ripeti il passaggio precedente utilizzando le credenziali dell'Account B e crea l'utente amministratore. AccountBadmin

  2. Imposta il AWS Command Line Interface (AWS CLI) o il. AWS Tools for Windows PowerShell Assicuratevi di salvare le credenziali dell'utente amministratore come segue:

    • Se utilizzate il AWS CLI, create due profili AccountAadmin eAccountBadmin, nel file di configurazione.

    • Se utilizzi il AWS Tools for Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come eAccountAadmin. AccountBadmin

    Per istruzioni, consulta Configurazione degli strumenti per le procedure dettagliate.

  3. Salvare le credenziali dell'utente amministratore, chiamate anche profili. È possibile utilizzare il nome del profilo anziché specificare le credenziali per ciascun comando immesso. Per ulteriori informazioni, consulta Configurazione degli strumenti per le procedure dettagliate.

    1. Aggiungi i profili nel file delle AWS CLI credenziali per ciascuno degli utenti amministratori AccountAadmin e AccountBadmin nei due account.

      [AccountAadmin] aws_access_key_id = access-key-ID aws_secret_access_key = secret-access-key region = us-east-1 [AccountBadmin] aws_access_key_id = access-key-ID aws_secret_access_key = secret-access-key region = us-east-1
    2. Se utilizzi il AWS Tools for Windows PowerShell, esegui il comando seguente.

      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin

Fase 1: esecuzione delle attività per l'Account A

Passaggio 1.1: accedi a AWS Management Console

Utilizzando l'accesso IAM utente URL per l'account A, accedi prima all'account AWS Management Console come AccountAadminutente. L'utente creerà un bucket e allegherà ad esso una policy.

Fase 1.2: creazione di un bucket

  1. Nella console di Amazon S3 creare un bucket. Questo esercizio presuppone che il bucket sia stato creato negli Stati Uniti orientali (Virginia settentrionale) Regione AWS e abbia un nome. amzn-s3-demo-bucket

    Per istruzioni, consulta Creazione di un bucket.

  2. Caricare un oggetto campione nel bucket.

    Per istruzioni, vai su Fase 2: Carica un oggetto nel tuo bucket.

Fase 1.3: collegare una policy del bucket per concedere autorizzazioni tra account all'Account B

La policy bucket concede le s3:ListBucket autorizzazioni s3:GetLifecycleConfiguration e all'account B. Si presume che tu abbia ancora effettuato l'accesso alla console utilizzando le credenziali utente. AccountAadmin

  1. Collegare la seguente policy di bucket a amzn-s3-demo-bucket. La policy concede all'Account B autorizzazioni per le operazioni s3:GetLifecycleConfiguration e s3:ListBucket.

    Per istruzioni, consulta Aggiunta di una policy di bucket utilizzando la console di Amazon S3.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. Verifica che l'Account B (e quindi il relativo utente amministratore) sia in grado di eseguire le operazioni.

    • Verificare utilizzando il AWS CLI

      aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
    • Verificare utilizzando il AWS Tools for Windows PowerShell

      get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin

Fase 2: esecuzione delle attività per l'Account B

A questo punto l'amministratore dell'Account B crea un utente, Dave, al quale delega le autorizzazioni ricevute dall'Account A.

Passaggio 2.1: accedi a AWS Management Console

Utilizzando l'accesso IAM utente URL per l'account B, accedi prima all'account AWS Management Console come AccountBadminutente.

Fase 2.2: creazione dell'utente Dave nell'Account B

Nella IAMConsole, crea un utente,Dave.

Per istruzioni, consulta Creazione di IAM utenti (console) nella Guida IAM per l'utente.

Fase 2.3: delega delle autorizzazioni all'utente Dave

Creare una policy inline per l'utente Dave mediante la policy che segue. Sarà necessario aggiornare la policy specificando il nome del bucket.

Si presume che tu abbia effettuato l'accesso alla console utilizzando le credenziali AccountBadminutente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }

Per istruzioni, consulta Gestione delle IAM politiche nella Guida per l'IAMutente.

Fase 2.4: testare le autorizzazioni

Ora l'utente Dave dell'Account B può elencare il contenuto di amzn-s3-demo-bucket di proprietà dell'Account A. È possibile verificare le autorizzazioni mediante una delle procedure descritte di seguito.

Verifica le autorizzazioni utilizzando il AWS CLI
  1. Aggiungi il UserDave profilo al file di AWS CLI configurazione. Per ulteriori informazioni sul file di configurazione, consulta Configurazione degli strumenti per le procedure dettagliate.

    [profile UserDave] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Al prompt dei comandi, inserisci il seguente AWS CLI comando per verificare che Dave possa ora ottenere un elenco di oggetti dall'account di amzn-s3-demo-bucket proprietà dell'Account A. Nota che il comando specifica il profilo. UserDave

    aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave

    Dave non ha altre autorizzazioni. Quindi, se prova qualsiasi altra operazione, ad esempio la seguente get-bucket-lifecycle configurazione, Amazon S3 restituisce l'autorizzazione negata.

    aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
Verifica le autorizzazioni utilizzando AWS Tools for Windows PowerShell
  1. Memorizza le credenziali di Dave come. AccountBDave

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
  2. Provare a utilizzare il comando List Bucket.

    get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

    Dave non dispone di altre autorizzazioni. Quindi, se prova qualsiasi altra operazione, ad esempio la seguente, get-s3bucketlifecycleconfiguration Amazon S3 restituisce l'autorizzazione negata.

    get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

Fase 3: (facoltativo) provare un rifiuto esplicito

È possibile ottenere le autorizzazioni utilizzando una lista di controllo degli accessi (ACL), una policy bucket o una policy utente. Ma se esiste una negazione esplicita impostata da una policy bucket o da una policy utente, la negazione esplicita ha la precedenza su qualsiasi altra autorizzazione. Per il test, aggiorna la policy del bucket e nega esplicitamente l'autorizzazione all'Account B. s3:ListBucket La politica concede anche l'autorizzazione. s3:ListBucket Tuttavia, la negazione esplicita ha la precedenza e l'Account B o gli utenti dell'Account B non saranno in grado di elencare oggetti in esso. amzn-s3-demo-bucket

  1. Utilizzando le credenziali dell'utente AccountAadmin nell'Account A, sostituisci la policy bucket con la seguente.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Deny permission", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. Ora, se provi a creare una lista dei desideri utilizzando AccountBadmin le credenziali, l'accesso viene negato.

    • Usando AWS CLI, esegui il seguente comando:

      aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
    • Utilizzando il AWS Tools for Windows PowerShell, esegui il comando seguente:

      get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave

Fase 4: pulizia

  1. Dopo aver terminato il test, puoi effettuare le seguenti operazioni per ripulire:

    1. Accedi a AWS Management Console (AWS Management Console) utilizzando le credenziali dell'Account A ed esegui le seguenti operazioni:

      • Nella console di Amazon S3 rimuovere la policy del bucket collegata a amzn-s3-demo-bucket. Nella sezione Properties (Proprietà) del bucket, eliminare la policy nella sezione Permissions (Autorizzazioni).

      • Se il bucket è stato creato per questo esercizio, nella console di Amazon S3 eliminare gli oggetti e quindi il bucket.

      • Nella IAMconsole, rimuovi l'AccountAadminutente.

  2. Accedi alla IAMconsole utilizzando le credenziali dell'account B. Eliminare l'utenteAccountBadmin. Per step-by-step istruzioni, consulta Eliminazione di un IAM utente nella Guida per l'IAMutente.