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 creato una concessione di accesso utilizzando S3 Access Grants, gli assegnatari possono richiedere le credenziali per accedere ai dati S3 a cui hanno avuto accesso. I beneficiari possono essere titolari AWS Identity and Access Management (IAM), identità dell'elenco aziendale o applicazioni autorizzate.

Un'applicazione o Servizio AWS possono utilizzare l'operazione GetDataAccess API S3 Access Grants per chiedere a S3 Access Grants l'accesso ai dati S3 per conto di un beneficiario. GetDataAccessverifica innanzitutto di aver concesso a questa identità l'accesso ai dati. Quindi, S3 Access Grants utilizza l'operazione AssumeRole per ottenere un token credenziale 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 target ambito può essere uguale all'ambito della sovvenzione o a un sottoinsieme di tale ambito, ma deve target rientrare nell'ambito della sovvenzione concessa al beneficiario. La richiesta deve inoltre specificare il parametro permission per indicare il livello di autorizzazione per le credenziali temporanee, READ, WRITE o READWRITE.

Privilegio

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://amzn-s3-demo-bucket1/bob/*, che include l'intero prefisso bob/ nel bucket amzn-s3-demo-bucket1. Una concessione ha l'ambito S3://amzn-s3-demo-bucket1/bob/reports/*, che include l'intero prefisso bob/reports/ nel bucket amzn-s3-demo-bucket1.

Ambito della concessione Ambito richiesto Privilegio Ambito restituito Effetto
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/* Default amzn-s3-demo-bucket1/bob/*

Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso bob/ nel bucket amzn-s3-demo-bucket1.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/ Minimal amzn-s3-demo-bucket1/bob/

Senza un carattere jolly * dopo il nome del prefisso bob/, il richiedente ha accesso solo all'oggetto denominato bob/ nel bucket amzn-s3-demo-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://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* Minimal amzn-s3-demo-bucket1/bob/images/*

Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso bob/images/* nel bucket amzn-s3-demo-bucket1.

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Default amzn-s3-demo-bucket1/bob/reports/*

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

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Minimal amzn-s3-demo-bucket1/bob/reports/file.txt

Il richiedente ha accesso solo all'oggetto con il nome della chiave bob/reports/file.txt nel bucket amzn-s3-demo-bucket1. Il richiedente non ha accesso a nessun altro oggetto.

Identità delle directory

GetDataAccessconsidera tutte le identità coinvolte in una richiesta quando corrisponde alle sovvenzioni adeguate. Per le identità degli elenchi aziendali, restituisce GetDataAccess anche le concessioni dell'identità IAM utilizzata per la sessione con riconoscimento dell'identità. Per ulteriori informazioni sulle sessioni con riconoscimento dell'identità, consulta Concessione delle autorizzazioni per l'utilizzo di sessioni di console con riconoscimento dell'identità nella Guida per l'utente.AWS Identity and Access Management GetDataAccessgenera credenziali limitando l'ambito alla concessione più restrittiva, come illustrato nella tabella seguente:

Ambito di concessione per l'identità IAM Concedi l'ambito per l'identità della directory Ambito richiesto Ambito restituito Privilegio Effetto
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Il richiedente ha accesso a tutti gli oggetti i cui nomi di chiave iniziano con il prefisso bob/ come parte della concessione per il ruolo IAM, ma è limitato ai prefissi bob/images/ come parte della concessione per l'identità della directory. Sia il ruolo IAM che l'identità della directory forniscono l'accesso all'ambito richiesto, vale a dire, ma l'identità della directory ha una concessione più bob/images/image1.jpeg restrittiva. Pertanto, l'ambito restituito è limitato alla concessione più restrittiva per l'identità della directory.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Poiché il Privilege è impostato suMinimal, anche se l'identità ha accesso a un ambito più ampio, viene restituito solo l'ambito richiesto. bob/images/image1.jpeg

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Il richiedente ha accesso a tutti gli oggetti i cui nomi di chiave iniziano con il prefisso bob/ come parte della concessione per l'identità della directory, ma è limitato ai prefissi bob/images/ come parte della concessione per il ruolo IAM. Sia il ruolo IAM che l'identità della directory forniscono l'accesso all'ambito richiesto, vale a dire, ma il ruolo IAM ha una concessione più bob/images/image1.jpeg restrittiva. Pertanto, l'ambito restituito è limitato alla concessione più restrittiva per il ruolo IAM.

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Poiché il Privilege è impostato suMinimal, anche se l'identità ha accesso a un ambito più ampio, viene restituito solo l'ambito richiesto. bob/images/image1.jpeg

Durata

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.

Esempi

Puoi richiedere credenziali temporanee utilizzando AWS Command Line Interface (AWS CLI), l'API REST di Amazon S3 e il. AWS SDKs Consulta questi esempi.

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

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://amzn-s3-demo-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://amzn-s3-demo-bucket/prefixA**", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:role/role-name" } }

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 il. AWS SDKs

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://amzn-s3-demo-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 ))