Esempio 1: il proprietario del bucket concede agli utenti le autorizzazioni per il bucket - Amazon Simple Storage Service

Esempio 1: il proprietario del bucket concede agli utenti le autorizzazioni per il bucket

Importante

La concessione di autorizzazioni ai ruoli IAM è una pratica migliore rispetto alla concessione di autorizzazioni ai singoli utenti. Per ulteriori informazioni su come concedere autorizzazioni ai ruoli IAM, consulta Comprendere le autorizzazioni multi-account e utilizzare i ruoli IAM.

In questa guida, un Account AWS possiede un bucket e l'account include un utente IAM Per impostazione predefinita, l'utente non ha permessi. Per eseguire qualsiasi attività, l'account padre deve concedere le autorizzazioni all'utente. Il proprietario del bucket e l'account padre sono uguali. Per concedere le autorizzazioni utente sul bucket, quindi, l'Account AWS può utilizzare una policy del bucket, una policy utente o entrambe. Il proprietario dell'account concederà alcune autorizzazioni con una policy del bucket e altre con una policy utente.

La seguenti fasi riepilogano la procedura guidata:

Diagramma che mostra un account AWS che concede le autorizzazioni.
  1. L'amministratore dell'account crea una policy bucket per concedere un set di autorizzazioni all'utente.

  2. L'amministratore dell'account collega una policy utente all'utente per concedere ulteriori autorizzazioni.

  3. L'utente prova quindi le autorizzazioni concesse tramite la policy bucket e la policy utente.

Per questo esempio, è necessario un Account AWS. Anziché utilizzare le credenziali dell'utente root dell'account, sarà necessario creare un utente amministratore (consultare Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni). Ci riferiamo all'utente Account AWS e all'utente amministratore come mostrato nella tabella seguente.

ID account Account denominato Utente amministratore nell'account

1111-1111-1111

Account A

AccountAadmin

Nota

L'utente amministratore in questo esempio è AccountAadmin, che fa riferimento all'account A e non AccountAdmin.

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

Preparazione della spiegazione passo per passo

  1. Assicurati di disporre di un Account AWS e che sia disponibile un utente con privilegi di amministratore.

    1. Registrare un Account AWS, se necessario. Si fa riferimento a questo account come Account A.

      1. Accedi a https://aws.amazon.com/s3 e scegli Crea un account AWS.

      2. Seguire le istruzioni su schermo.

        AWS comunicherà via e-mail quando l'account è attivo e pronto all'uso.

    2. Nell'account A, crea un utente amministratore AccountAadmin. Utilizzando le credenziali dell'Account A, accedere alla console IAM ed effettuare quanto segue:

      1. Crea l'utente AccountAadmin e annota le credenziali di sicurezza dell'utente.

        Per istruzioni, consulta Creazione di un utente IAM in Account AWS nella Guida all'utente IAM.

      2. Concedere i privilegi di amministratore ad AccountAadmin allegando una policy utente che dia accesso completo.

        Per istruzioni, consulta Gestione delle policy IAM nella Guida all'utente IAM.

      3. Annota l'URL di accesso dell'utente IAM per AccountAadmin. che dovrà essere utilizzato per accedere alla Console di gestione AWS. Per ulteriori informazioni su dove trovare l'URL di accesso, consulta Accedi a Console di gestione AWS come utente IAM in Guida all'utente IAM. Annota l'URL di ciascun account.

  2. Imposta AWS CLI o AWS Tools for Windows PowerShell. Assicurati di salvare le credenziali dell'utente amministratore come segue:

    • Se si utilizza AWS CLI, crea un profilo, AccountAadmin, nel file di configurazione.

    • Se si utilizza AWS Tools for Windows PowerShell, assicurati di memorizzare le credenziali per la sessione come AccountAadmin.

    Per istruzioni, consulta Impostazione degli strumenti per le visite guidate.

Fase 1: Creare risorse nell'account A e concedere le autorizzazioni

Utilizzando le credenziali dell'utente AccountAadmin nell'account A e l'URL speciale di accesso dell'utente IAM, accedi a Console di gestione AWS e procedere come segue:

  1. Creare risorse di un bucket e di un utente IAM

    1. Nella console di Amazon S3 creare un bucket. Si noti Regione AWS in cui è stato creato il bucket. Per istruzioni, consulta Creazione di un bucket per uso generico.

    2. Nella Console IAM, procedi come segue:

      1. Crea un utente di nome Dave.

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

      2. Annota le credenziali UserDave.

      3. Annota il nome della risorsa Amazon (ARN) per l'utente Dave. Nella Console IAM, seleziona l'utente e la scheda Riepilogo fornisce l'ARN dell'utente.

  2. Concedi i permessi.

    Poiché il proprietario del bucket e l'account parent a cui appartiene l'utente corrispondono, l'Account AWS può concedere le autorizzazioni all'utente tramite una policy bucket, una policy utente o entrambe. come in questo esempio. Se l'oggetto è anche di proprietà dello stesso account, il proprietario del bucket può concedere le autorizzazioni per l'oggetto nella policy bucket (o una policy IAM).

    1. Nella console di Amazon S3, collegare la seguente policy bucket a awsexamplebucket1.

      La policy include due dichiarazioni.

      • La prima istruzione concede a Dave le autorizzazioni per le operazioni sul bucket s3:GetBucketLocation e s3:ListBucket.

      • La seconda istruzione concede l'autorizzazione s3:GetObject. Poiché l'Account A è anche proprietario dell'oggetto, l'amministratore dell'account può concedere l'autorizzazione s3:GetObject.

      Nell'istruzione Principal Dave è identificato dall'ARN utente. Per ulteriori informazioni sugli elementi delle policy, consultare Policy e autorizzazioni in Amazon S3.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }
    2. Creare una policy inline per l'utente Dave mediante la policy che segue. La policy concede a Dave l'autorizzazione s3:PutObject. È necessario aggiornare la policy specificando il nome del bucket.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }

      Per istruzioni, consulta Gestione delle policy IAM nella Guida all'utente IAM. Tenere presente che è necessario accedere alla console tramite le credenziali dell'Account A.

Fase 2: testare le autorizzazioni

Utilizzando le credenziali di Dave, verificare che le autorizzazioni funzionino correttamente. È possibile utilizzare una delle due procedure di seguito.

Testa le autorizzazioni usando il metodo AWS CLI
  1. Aggiorna il file di configurazione di AWS CLI aggiungendo il seguente profilo UserDaveAccountA. Per ulteriori informazioni, consulta Impostazione degli strumenti per le visite guidate.

    [profile UserDaveAccountA] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Verificare che Dave possa eseguire le operazioni autorizzate nella policy utente. Carica un oggetto di esempio tramite il seguente comando AWS CLI put-object.

    Il parametro --body nel comando identifica il file di origine da caricare. Ad esempio, se il file si trova nella radice dell'unità C: su un computer Windows, si specifica c:\HappyFace.jpg. Il parametro --key fornisce il nome della chiave dell'oggetto.

    aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA

    Esegui questo comando della AWS CLI per ottenere l'oggetto.

    aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
Testa le autorizzazioni usando il metodo AWS Tools for Windows PowerShell
  1. Memorizza le credenziali di Dave come AccountADave. Si utilizzano quindi queste credenziali per PUT e GET un oggetto.

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
  2. Carica un oggetto di esempio utilizzando il comando AWS Tools for Windows PowerShell Write-S3Object utilizzando le credenziali archiviate di Dave.

    Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave

    Scaricare l'oggetto caricato in precedenza.

    Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave