Creazione di concessioni - 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à.

Creazione di concessioni

Una volta che hai registrato almeno una posizione nella tua istanza S3 Access Grants, puoi creare una concessione di accesso. Una concessione di accesso fornisce all'assegnatario l'autorizzazione ad accedere a una posizione registrata.

Il beneficiario può essere un utente o un ruolo AWS Identity and Access Management (IAM) oppure un utente o un gruppo di directory. Un utente di directory è un utente della directory aziendale o di una origine di identità esterna che hai aggiunto all'istanza AWS IAM Identity Center che è associata all'istanza S3 Access Grants. Per creare una concessione per un utente o un gruppo specifico dal Centro identità IAM, trova il GUID utilizzato dal Centro identità IAM per identificare quell'utente nel Centro identità IAM, ad esempio a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.

Puoi concedere l'accesso a un bucket, a un prefisso o a un oggetto. Un prefisso in Amazon S3 è una stringa di caratteri all'inizio del nome della chiave di un oggetto che viene utilizzata per organizzare gli oggetti all'interno di un bucket. Può trattarsi di qualsiasi stringa di caratteri consentiti, ad esempio i nomi delle chiavi degli oggetti in un bucket che iniziano con il prefisso engineering/.

Sottoprefisso

Quando concedi l'accesso a una posizione registrata, puoi utilizzare il campo Subprefix per restringere l'ambito a un prefisso specifico all'interno di un bucket o a un oggetto specifico in un bucket.

Non puoi creare una concessione di accesso per la posizione s3:// predefinita, che consentirebbe all'assegnatario di accedere a tutti i bucket di una regione. Se scegli la posizione s3:// predefinita come posizione della concessione, devi restringere l'ambito della concessione utilizzando il campo Subprefix per specificare una delle seguenti opzioni:

  • Un bucket: s3://bucket/*

  • Un prefisso all'interno di un bucket: s3://bucket/prefix*

  • Un prefisso all'interno di un prefisso: s3://bucket/prefixA/prefixB*

  • Un oggetto: s3://bucket/object-key-name.

Se crei una concessione di accesso in cui la posizione registrata è un bucket, puoi inserire uno dei seguenti valori nel campo Subprefix:

  • Un prefisso all'interno di un bucket: prefix*

  • Un prefisso all'interno di un prefisso: prefixA/prefixB*

  • Un oggetto: /object-key-name.

L'ambito della concessione mostrato nella console Amazon S3 o GrantScope quello restituito nella risposta API o AWS Command Line Interface (AWS CLI) è il risultato della concatenazione del percorso di posizione con. Subprefix Assicurati che questo percorso concatenato sia mappato correttamente al bucket, al prefisso o all'oggetto S3 a cui desideri concedere l'accesso.

Se stai creando una concessione di accesso per un solo oggetto, specifica nella chiamata API o nel comando CLI che s3PrefixType è Object.

Nota

Non puoi creare una concessione a un bucket se il bucket non esiste ancora. Tuttavia, puoi creare una concessione a un prefisso che non esiste ancora.

Puoi creare una concessione di accesso utilizzando la console Amazon S3 AWS CLI, l'API REST di Amazon S3 e gli SDK. AWS

Per creare una concessione di accesso
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Access Grants.

  3. Nella pagina S3 Access Grants, scegli la regione che contiene l'istanza S3 Access Grants con cui vuoi lavorare.

    Se utilizzi un'istanza S3 Access Grants per la prima volta, assicurati di aver completato il Passaggio 2: registra una posizione e di aver eseguito il Passaggio 3 della procedura guidata Configurazione dell'istanza Access Grants. Se hai già un'istanza S3 Access Grants, scegli Visualizza dettagli, quindi dalla scheda Concessioni, scegli Crea concessione.

    1. Nella sezione Ambito della concessione, seleziona o inserisci una posizione registrata.

      Se hai selezionato la posizione s3:// predefinita, utilizza la casella Sottoprefisso per restringere l'ambito della concessione di accesso. Per ulteriori informazioni, consulta Sottoprefisso. Se concedi l'accesso solo a un oggetto, seleziona L'ambito della concessione è un oggetto.

    2. In Autorizzazioni e accesso, seleziona il livello di autorizzazione, ovvero Lettura, Scrittura o entrambi.

      Quindi seleziona Tipo di assegnatario. Se hai aggiunto la tua directory aziendale al Centro identità IAM e hai associato questa istanza del Centro identità IAM all'istanza S3 Access Grants, puoi scegliere Identità della directory dal Centro identità IAM. Se scegli questa opzione, ottieni l'ID dell'utente o del gruppo dal Centro identità IAM e inseriscilo in questa sezione.

      Se Tipo di assegnatario è un utente o un ruolo IAM, scegli Principale IAM. In Tipo di principale IAM, scegli Utente o Ruolo. Quindi, in Utente principale IAM, seleziona dall'elenco o inserisci l'ID dell'identità.

    3. Per creare la concessione S3 Access Grants, seleziona Avanti o Crea concessione.

  4. Se l'opzione Avanti o Crea concessione è disabilitata:

    Impossibile creare una concessione
    • Potrebbe essere necessario registrare prima una posizione nell'istanza S3 Access Grants.

    • Potresti non disporre dell'autorizzazione s3:CreateAccessGrant per creare una concessione di accesso. Contatta l'amministratore dell'account.

Per installare AWS CLI, vedere Installazione di AWS CLI nella Guida per l'AWS Command Line Interface utente.

Gli esempi seguenti mostrano come creare una richiesta di concessione di accesso per un principale IAM e come creare una richiesta di concessione di accesso per un utente o un gruppo della directory aziendale.

Per utilizzare i seguenti comandi di esempio, sostituisci user input placeholders con le tue informazioni.

Nota

Se stai creando una concessione di accesso che conceda l'accesso a un solo oggetto, includi il parametro --s3-prefix-type Object richiesto.

Esempio Crea una richiesta di concessione di accesso per un principale IAM
aws s3control create-access-grant \ --account-id 111122223333 \ --access-grants-location-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 \ --access-grants-location-configuration S3SubPrefix=prefixB* \ --permission READ \ --grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::123456789012:user/data-consumer-3
Esempio Crea una risposta alla concessione di accesso
{"CreatedAt": "2023-05-31T18:41:34.663000+00:00", "AccessGrantId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "AccessGrantArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:user/data-consumer-3" }, "AccessGrantsLocationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "AccessGrantsLocationConfiguration": { "S3SubPrefix": "prefixB*" }, "GrantScope": "s3://DOC-BUCKET-EXAMPLE/prefix*", "Permission": "READ" }
Creazione di una richiesta di autorizzazione di accesso per un utente o un gruppo di utenti della directory

Per creare una richiesta di concessione di accesso per un utente o un gruppo della directory, è necessario innanzitutto ottenere il GUID per l'utente o il gruppo della directory eseguendo uno dei seguenti comandi.

Esempio Ottieni un GUID per un utente o un gruppo di utenti della directory

Puoi trovare il GUID di un utente IAM Identity Center tramite la console IAM Identity Center o utilizzando gli AWS SDK AWS CLI o. Il comando seguente elenca gli utenti nell'istanza del Centro identità IAM specificata, con i relativi nomi e identificatori.

aws identitystore list-users --identity-store-id d-1a2b3c4d1234

Questo comando elenca i gruppi nell'istanza Centro identità IAM specificata.

aws identitystore list-groups --identity-store-id d-1a2b3c4d1234
Esempio Creazione di una concessione di accesso per un utente o un gruppo di directory

Questo comando è simile alla creazione di una concessione per utenti o ruoli IAM, tranne per il fatto che il tipo di assegnatario è DIRECTORY_USER o DIRECTORY_GROUP e l'identificatore dell'assegnatario è il GUID per l'utente o il gruppo di directory.

aws s3control create-access-grant \ --account-id 123456789012 \ --access-grants-location-id default \ --access-grants-location-configuration S3SubPrefix="DOC-EXAMPLE-BUCKET/rafael/*" \ --permission READWRITE \ --grantee GranteeType=DIRECTORY_USER,GranteeIdentifier=83d43802-00b1-7054-db02-f1d683aacba5 \

Per informazioni sul supporto REST API di Amazon S3 per la gestione delle concessioni di accesso, consulta le sezioni seguenti nella Documentazione di riferimento delle API di Amazon Simple Storage Service:

Questa sezione fornisce esempi di come creare una concessione di accesso utilizzando gli AWS SDK.

Java

Per utilizzare il seguente esempio, sostituisci user input placeholders con le tue informazioni.

Nota

Se crei una concessione di accesso che conceda l'accesso a un solo oggetto, includi il parametro .s3PrefixType(S3PrefixType.Object) richiesto.

Esempio Crea una risposta alla concessione di accesso
public void createAccessGrant() { CreateAccessGrantRequest createRequest = CreateAccessGrantRequest.builder() .accountId("111122223333") .accessGrantsLocationId("a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa") .permission("READ") .accessGrantsLocationConfiguration(AccessGrantsLocationConfiguration.builder().s3SubPrefix("prefixB*").build()) .grantee(Grantee.builder().granteeType("IAM").granteeIdentifier("arn:aws:iam::111122223333:user/data-consumer-3").build()) .build(); CreateAccessGrantResponse createResponse = s3Control.createAccessGrant(createRequest); LOGGER.info("CreateAccessGrantResponse: " + createResponse); }
Esempio Crea una risposta alla concessione di accesso
CreateAccessGrantResponse( CreatedAt=2023-06-07T05:20:26.330Z, AccessGrantId=a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, AccessGrantArn=arn:aws:s3:us-east-2:444455556666:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333, Grantee=Grantee( GranteeType=IAM, GranteeIdentifier=arn:aws:iam::111122223333:user/data-consumer-3 ), AccessGrantsLocationId=a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa, AccessGrantsLocationConfiguration=AccessGrantsLocationConfiguration( S3SubPrefix=prefixB* ), GrantScope=s3://DOC-BUCKET-EXAMPLE/prefixB, Permission=READ )