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

In questo esercizio un Account AWS è il proprietario di un bucket e include un utente IAM. Per impostazione predefinita, l'utente non ha autorizzazioni. 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:

  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 root dell'account, sarà necessario creare un utente amministratore (consultare Informazioni sull'uso di un utente amministratore per creare risorse e concedere autorizzazioni). Viene fatto riferimento all'Account AWS e all'utente amministratore come di seguito:

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 AWS Management Console. Per verificare le autorizzazioni, la spiegazione passo per passo utilizza gli strumenti a riga di comando, AWS Command Line Interface (CLI) e AWS Tools for Windows PowerShell. Non è pertanto necessario scrivere alcun codice.

Fase 0: preparazione della procedura guidata

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

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

      1. Andare a https://aws.amazon.com/s3 e fare clic su Registrati.

      2. Seguire le istruzioni su schermo.

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

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

      1. Creare l'utente AccountAadmin e prendere nota delle credenziali di sicurezza per l'utente.

        Per istruzioni, consultare Creazione di un utente IAM nell'account AWS nella Guida per l'utente di IAM.

      2. Concedere i privilegi di amministratore AccountAadmin collegando una policy utente per l'accesso completo.

        Per istruzioni, consulta Gestione di policy IAM nella Guida per l'utente di IAM.

      3. Prendere nota dell'URL di accesso dell'utente IAM per AccountAadmin, che dovrà essere utilizzato per accedere alla AWS Management Console. Per ulteriori informazioni su come individuarlo, consulta In che modo gli utenti effettuano l'accesso al tuo account nella Guida per l'utente IAM. Prendere nota dell'URL per ciascun account.

  2. Imposta AWS Command Line Interface (CLI) o AWS Tools for Windows PowerShell. Assicurarsi di salvare le credenziali dell'utente amministratore nel modo seguente:

    • Se utilizzi la AWS CLI, crea un profilo AccountAadmin nel file di configurazione.

    • Se utilizzi AWS Tools for Windows PowerShell, assicurati di archiviare le credenziali per la sessione come AccountAadmin.

    Per istruzioni, consultare Configurazione degli strumenti per le procedure guidate di esempio.

Fase 1: creare risorse (un bucket e un utente IAM) nell'Account A e concedere autorizzazioni

Utilizzando le credenziali dell'utente AccountAadmin nell'Account A e lo speciale URL di accesso dell'utente IAM, accedere alla AWS Management Console ed effettuare quanto segue:

  1. Creare le risorse (un bucket e un utente IAM)

    1. Nella console Amazon S3 creare un bucket. Prendi nota della Regione AWS in cui è stato creato. Per istruzioni, consultare Creazione di un bucket.

    2. Nella console IAM effettuare quanto segue:

      1. Crea un utente denominato Dave.

        Per le istruzioni, consulta Creazione di utenti IAM (AWS Management Console) nella Guida per l'utente di IAM.

      2. Prendere nota delle credenziali UserDave.

      3. Prendere nota dell'Amazon Resource Name (ARN) per l'utente Dave. Nella console IAM selezionare l'utente e nella scheda Summary (Riepilogo) viene visualizzato l'ARN dell'utente.

  2. Concedere le autorizzazioni.

    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 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 di bucket e policy utente.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID: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.

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

      Per istruzioni, consulta Gestione di policy inline nella Guida per l'utente di 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.

Test tramite la AWS CLI
  1. Aggiorna il file di configurazione della AWS CLI aggiungendo il profilo UserDaveAccountA. Per ulteriori informazioni, consulta Configurazione degli strumenti per le procedure guidate di esempio.

    [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. Se ad esempio il file si trova nella root dell'unità C: di un computer Windows, specificare 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
Test tramite la AWS Tools for Windows PowerShell
  1. Archiviare le credenziali di Dave come AccountADave. Servirsi quindi di queste credenziali per eseguire richieste PUT e GET su 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