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 di cui dispongono delle autorizzazioni. Gli assegnatari possono essere principali AWS Identity and Access Management (IAM), identità delle directory aziendali o applicazioni autorizzate.
Un’applicazione o un Servizio AWS può utilizzare l’operazione API S3 Access Grants GetDataAccess per chiedere a S3 Access Grants l’accesso ai dati S3 per conto di un assegnatario. GetDataAccess verifica innanzitutto che a questa identità sia stato concesso 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 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 all’assegnatario. 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://, che include l'intero prefisso amzn-s3-demo-bucket1/bob/*bob/ nel bucket . Una concessione ha l'ambito amzn-s3-demo-bucket1S3://, che include l'intero prefisso amzn-s3-demo-bucket1/bob/reports/*bob/reports/ nel bucket . amzn-s3-demo-bucket1
| Ambito della concessione | Ambito richiesto | Privilegio | Ambito restituito | Effetto |
|---|---|---|---|---|
S3:// |
|
Default
|
|
Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso |
S3:// |
|
Minimal
|
|
Senza un carattere jolly * dopo il nome del prefisso |
S3:// |
|
Minimal
|
|
Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso |
S3:// |
|
Default
|
|
Il richiedente ha accesso a tutti gli oggetti i cui nomi della chiave iniziano con il prefisso |
S3:// |
|
Minimal
|
|
Il richiedente ha accesso solo all'oggetto con il nome della chiave |
Identità delle directory
GetDataAccess considera tutte le identità coinvolte in una richiesta quando corrispondono alle concessioni adeguate. Per le identità delle directory aziendali, GetDataAccess restituisce 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 di AWS Identity and Access Management. GetDataAccess genera credenziali limitando l’ambito alla concessione più restrittiva, come illustrato nella tabella seguente:
| Ambito di concessione per l’identità IAM | Ambito di concessione per l’identità delle directory | Ambito richiesto | Ambito restituito | Privilegio | Effetto |
|---|---|---|---|---|---|
S3:// |
|
S3://
|
S3://
|
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à delle directory. Sia il ruolo IAM sia l’identità delle directory forniscono l’accesso all’ambito richiesto, vale a dire |
S3:// |
|
S3://
|
S3://
|
Minimal |
Poiché il privilegio è impostato su |
S3:// |
|
S3://
|
S3://
|
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à delle directory, ma è limitato ai prefissi bob/images/ come parte della concessione per il ruolo IAM. Sia il ruolo IAM sia l’identità delle directory forniscono l’accesso all’ambito richiesto, vale a dire |
S3:// |
|
S3://
|
S3://
|
Minimal |
Poiché il privilegio è impostato su |
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
È possibile richiedere credenziali temporanee utilizzando AWS Command Line Interface (AWS CLI), la REST API di Amazon S3 e gli SDK AWS. Consulta questi esempi.
Per ulteriori informazioni, consulta GetDataAccess nella Guida di riferimento delle API di Amazon Simple Storage Service.
Per installare AWS CLI, consulta Installazione dell'AWS CLI nella Guida per l'utente di AWS Command Line Interface.
Per utilizzare il seguente comando di esempio, sostituisci con le tue informazioni.user input
placeholders
Esempio Richiesta di credenziali temporanee
Richiesta:
aws s3control get-data-access \ --account-id111122223333\ --targets3://\amzn-s3-demo-bucket/prefixA*--permissionREAD\ --privilege Default \ --regionus-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://*", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::amzn-s3-demo-bucket/prefixA*111122223333:role/role-name" } }
Per informazioni sul supporto REST API di Amazon S3 per la richiesta di credenziali temporanee da S3 Access Grants, consulta GetDataAccess nella Documentazione di riferimento delle API di Amazon Simple Storage Service.
Questa sezione fornisce un esempio di come gli assegnatari richiedono credenziali temporanee a S3 Access Grants utilizzando gli AWS SDK.