Richiedi l'accesso ai dati di Amazon S3 tramite S3 Access Grants - 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à.

Richiedi l'accesso ai dati di Amazon S3 tramite S3 Access Grants

Dopo aver utilizzato Amazon S3 Access Grants per creare una concessione di accesso che consenta ai responsabili AWS Identity and Access Management (IAM), alle identità delle directory aziendali o alle applicazioni autorizzate di accedere ai dati S3, i beneficiari possono richiedere le credenziali per accedere a questi dati.

Quando un'applicazione o Servizio AWS utilizza l'operazione GetDataAccess API per chiedere a S3 Access Grants l'accesso ai tuoi dati S3 per conto di un beneficiario, S3 Access Grants verifica innanzitutto che tu abbia concesso a questa identità l'accesso ai dati. Quindi, S3 Access Grants utilizza l'operazione AssumeRoleAPI per ottenere un token di credenziali temporaneo e lo invia al richiedente. Questo token di credenziali temporaneo è un token AWS Security Token Service (AWS STS).

La richiesta GetDataAccess deve includere il parametro target, che specifica l'ambito dei dati S3 a cui si applicano le credenziali temporanee. Questo ambito target può essere lo stesso dell'ambito della concessione o di un sottoinsieme di tale ambito, ma l'ambito target deve rientrare nell'ambito della concessione accordata al richiedente. La richiesta deve inoltre specificare il parametro permission per indicare il livello di autorizzazione per le credenziali temporanee, READ, WRITE o READWRITE.

Il richiedente può specificare il livello di privilegio del token temporaneo nella richiesta di credenziali. Utilizzando il parametro privilege, il richiedente può ridurre o ingrandire l'ambito di accesso delle credenziali temporanee entro i limiti dell'ambito della concessione. Il valore predefinito del parametro privilege è Default, il che significa che l'ambito di destinazione della credenziale restituita è l'ambito della concessione originale. L'altro valore possibile per privilege è Minimal. Se l'ambito target viene ridotto rispetto all'ambito della concessione originale, la credenziale temporanea viene ridimensionata per corrispondere all'ambito target, purché l'ambito target rientri nell'ambito della concessione.

La tabella seguente descrive in dettaglio l'effetto del parametro privilege su due concessioni. Una concessione ha l'ambito S3://DOC-EXAMPLE-BUCKET1/bob/*, che include l'intero prefisso bob/ nel bucket DOC-EXAMPLE-BUCKET1. Una concessione ha l'ambito S3://DOC-EXAMPLE-BUCKET1/bob/reports/*, che include l'intero prefisso bob/reports/ nel bucket DOC-EXAMPLE-BUCKET1.

Ambito della concessione Ambito richiesto Privilegio Ambito restituito Effetto
S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/* Default DOC-EXAMPLE-BUCKET1/bob/*

Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso bob/ nel bucket DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/ Minimal DOC-EXAMPLE-BUCKET1/bob/

Senza un carattere jolly * dopo il nome del prefisso bob/, il richiedente ha accesso solo all'oggetto denominato bob/ nel bucket DOC-EXAMPLE-BUCKET1. Non è comune avere un oggetto del genere. Il richiedente non ha accesso a nessun altro oggetto, compresi quelli con nomi chiave che iniziano con il prefisso bob/.

S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/images/* Minimal DOC-EXAMPLE-BUCKET1/bob/images/*

Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso bob/images/* nel bucket DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Default DOC-EXAMPLE-BUCKET1/bob/reports/*

Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso bob/reports nel bucket DOC-EXAMPLE-BUCKET1, che è l'ambito della concessione corrispondente.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Minimal DOC-EXAMPLE-BUCKET1/bob/reports/file.txt

Il richiedente ha accesso solo all'oggetto con il nome della chiave bob/reports/file.txt nel bucket DOC-EXAMPLE-BUCKET1. Il richiedente non ha accesso a nessun altro oggetto.

Il parametro durationSeconds imposta la durata della credenziale temporanea, in secondi. Il valore predefinito è 3600 secondi (1 ora), ma il richiedente (l'assegnatario) può specificare un intervallo da 900 secondi (15 minuti) a 43200 secondi (12 ore). Se l'assegnatario richiede un valore superiore a questo valore massimo, la richiesta ha esito negativo.

Nota

Nella richiesta di un token temporaneo, se la posizione è un oggetto, imposta il valore del parametro targetType nella richiesta a Object. Questo parametro è obbligatorio solo se la posizione è un oggetto e il livello di privilegio è Minimal. Se la posizione è un bucket o un prefisso, non devi specificare questo parametro.

Per ulteriori informazioni, consulta il riferimento GetDataAccessall'API di Amazon Simple Storage Service.

Puoi richiedere credenziali temporanee utilizzando AWS Command Line Interface (AWS CLI), l'API REST di Amazon S3 e AWS gli SDK.

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

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

Esempio Richiesta di credenziali temporanee

Richiesta:

aws s3control get-data-access \ --account-id 111122223333 \ --target s3://DOC-EXAMPLE-BUCKET/prefixA* \ --permission READ \ --privilege Default \ --region us-east-2

Risposta:

{ "Credentials": { "AccessKeyId": "Example-key-id", "SecretAccessKey": "Example-access-key", "SessionToken": "Example-session-token", "Expiration": "2023-06-14T18:56:45+00:00"}, "MatchedGrantTarget": "s3://DOC-EXAMPLE-BUCKET/prefixA**" }

Per informazioni sul supporto dell'API REST di Amazon S3 per la richiesta di credenziali temporanee da S3 Access Grants, consulta il riferimento all'API di Amazon GetDataAccessSimple Storage Service.

Questa sezione fornisce un esempio di come i beneficiari richiedono credenziali temporanee a S3 Access Grants utilizzando gli SDK. AWS

Java

Il seguente esempio di codice restituisce le credenziali temporanee utilizzate dall'assegnatario per accedere ai tuoi dati S3. Per utilizzare questo esempio di codice, sostituisci user input placeholders con le tue informazioni.

Esempio Ottenimento di credenziali temporanee

Richiesta:

public void getDataAccess() { GetDataAccessRequest getDataAccessRequest = GetDataAccessRequest.builder() .accountId("111122223333") .permission(Permission.READ) .privilege(Privilege.MINIMAL) .target("s3://DOC-EXAMPLE-BUCKET/prefixA*") .build(); GetDataAccessResponse getDataAccessResponse = s3Control.getDataAccess(getDataAccessRequest); LOGGER.info("GetDataAccessResponse: " + getDataAccessResponse); }

Risposta:

GetDataAccessResponse( Credentials=Credentials( AccessKeyId="Example-access-key-id", SecretAccessKey="Example-secret-access-key", SessionToken="Example-session-token", Expiration=2023-06-07T06:55:24Z ))