Registrazione di una posizione
Dopo aver creato un'istanza di Amazon S3 Access Grants in Regione AWS nel proprio account, si registra una posizione S3 in tale istanza. Una posizione S3 Access Grants mappa la posizione S3 predefinita (s3://), un bucket o un prefisso a un ruolo AWS Identity and Access Management (IAM). S3 Access Grants assume questo ruolo IAM per vendere credenziali temporanee al beneficiario che accede a quella particolare posizione. Prima di poter creare una concessione di accesso, è necessario registrare almeno una posizione nell'istanza S3 Access Grants.
Caso d'uso consigliato
Si consiglia di registrare la posizione predefinita (s3://) e di mapparla a un ruolo IAM. La posizione nel percorso S3 predefinito (s3://) copre l'accesso a tutti i bucket S3 in quella Regione AWS dell'account. Quando si crea una concessione di accesso, è possibile restringere l'ambito della concessione a un bucket, a un prefisso o a un oggetto all'interno della posizione predefinita.
Casi d'uso complessi per la gestione degli accessi
Casi di utilizzo della gestione degli accessi più complessi potrebbero richiedere la registrazione di più posizioni rispetto a quella predefinita. Alcuni esempi di questi casi d'uso sono:
-
Si supponga che il bucket
amzn-s3-demo-bucketsia una posizione registrata nella tua istanza S3 Access Grants con un ruolo IAM mappato su di essa, ma a questo ruolo IAM sia negato l'accesso a un particolare prefisso all'interno del bucket. In questo caso, è possibile registrare il prefisso a cui il ruolo IAM non ha accesso come posizione separata e mappare tale posizione a un altro ruolo IAM con l'accesso necessario. -
Si supponga di voler creare dei grant che limitino l'accesso solo agli utenti all'interno di un endpoint di un cloud privato virtuale (VPC). In questo caso, è possibile registrare una posizione per un bucket in cui il ruolo IAM limita l'accesso all'endpoint VPC. Successivamente, quando un beneficiario chiede le credenziali a S3 Access Grants, S3 Access Grants assume il ruolo IAM della sede per vendere le credenziali temporanee. Questa credenziale negherà l'accesso al bucket specifico a meno che il chiamante non si trovi all'interno dell'endpoint VPC. Questa autorizzazione di negazione viene applicata in aggiunta alle normali autorizzazioni READ, WRITE o READWRITE specificate nella concessione.
Quando si registra una posizione, è necessario specificare anche il ruolo IAM che S3 Access Grants assume per la vendita delle credenziali temporanee e per l'ambito delle autorizzazioni per una concessione specifica.
Se il caso d'uso richiede la registrazione di più posizioni nell'istanza di S3 Access Grants, è possibile registrare uno dei seguenti elementi:
| URI S3 | Ruolo IAM | Descrizione |
|---|---|---|
s3:// |
|
La posizione predefinita, |
s3:// |
|
Questa posizione include tutti gli oggetti nel bucket specificato. |
s3:// |
|
Questa posizione include tutti gli oggetti del bucket con un nome di chiave dell'oggetto che inizia con questo prefisso. |
Prima di registrare un bucket o un prefisso specifico, accertarsi di aver eseguito le seguenti operazioni:
-
Crea uno o più bucket contenenti i dati a cui desideri concedere l'accesso. Questi bucket devono trovarsi nella stessa Regione AWS dell'istanza S3 Access Grants. Per ulteriori informazioni, consulta Creazione di un bucket.
L'aggiunta di un prefisso è facoltativa. I prefissi sono stringhe all'inizio del nome della chiave di un oggetto. Si possono usare per organizzare gli oggetti nel bucket e per gestire gli accessi. Per aggiungere un prefisso a un bucket, consulta Creazione dei nomi delle chiavi degli oggetti.
-
Creare un ruolo IAM che abbia il permesso di accedere ai dati S3 in Regione AWS. Per ulteriori informazioni, consulta la sezione Creazione di ruoli IAM nella Guida all'utente AWS IAM Identity Center.
Nella policy di attendibilità del ruolo IAM, concedi al principale del servizio S3 Access Grants (
access-grants.s3.amazonaws.com) l'accesso al ruolo IAM creato. A tal fine, è possibile creare un file JSON contenente le seguenti istruzioni. Per aggiungere la policy di attendibilità all'account, consulta Creare un ruolo utilizzando policy di attendibilità personalizzati.TestRolePolicy.json
In alternativa, per un caso d’uso di Centro identità IAM, utilizza la seguente policy che include una seconda istruzione:
-
Crea una policy IAM per collegare le autorizzazioni di Amazon S3 al ruolo IAM creato. Consulta il seguente file
iam-policy.jsondi esempio e sostituiscicon le tue informazioni.user input placeholdersNota
-
Se si utilizza la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) per crittografare i dati, l'esempio seguente include le autorizzazioni AWS KMS necessarie per il ruolo IAM nella policy. Se non si utilizza questa funzione, è possibile rimuovere queste autorizzazioni dalla propria policy IAM.
-
È possibile limitare il ruolo IAM per accedere ai dati S3 solo se le credenziali sono fornite da S3 Access Grants. Questo esempio mostra come aggiungere un'istruzione
Conditionper una specifica istanza S3 Access Grants. Per utilizzare questoCondition, sostituire l'ARN dell'istanza S3 Access Grants nell'istruzioneConditioncon l'ARN dell'istanza S3 Access Grants, che ha il formato:arn:aws:s3:region:accountId:access-grants/default
iam-policy.json
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region:accountId:access-grants/default"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Regione AWS:accountId:access-grants/default"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Regione AWS:accountId:access-grants/default"] } } }, //Optionally add the following section if you use SSE-KMS encryption { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] } -
Puoi registrare una posizione nell'istanza di S3 Access Grants utilizzando la console Amazon S3, l'AWS Command Line Interface (AWS CLI), la REST API Amazon S3 o gli AWS SDK.
Nota
Dopo aver registrato la prima posizione nell'istanza S3 Access Grants, l'istanza non ha ancora alcun singolo accesso garantito. Per creare una concessione di accesso, consulta Creazione di concessioni.
Prima di poter concedere l'accesso ai dati S3 con S3 Access Grants, devi avere almeno una posizione registrata.
Per registrare una posizione nella tua istanza S3 Access Grants
Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/
. -
Nel pannello di navigazione a sinistra, scegli Access Grants.
-
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 1: crea un'istanza S3 Access Grants e di aver eseguito il Passaggio 2 della procedura guidata Configurazione dell'istanza Access Grants. Se disponi già di un'istanza S3 Access Grants, seleziona Visualizza dettagli, quindi dalla scheda Posizioni, seleziona Registra posizione.
-
Per Ambito della posizione, seleziona Sfoglia S3 o inserisci il percorso URI S3 della posizione che desideri registrare. Per i formati URI S3, consulta la tabella dei formati di posizione. Dopo aver inserito un URI, puoi scegliere Visualizza per andare alla posizione.
-
In Ruolo IAM, scegliere una delle seguenti opzioni:
-
Scegli tra i ruoli IAM esistenti
Scegli un ruolo IAM dall'elenco a discesa. Dopo aver scelto un ruolo, scegli Visualizza per avere la certezza che questo ruolo disponga delle autorizzazioni necessarie per gestire la posizione che stai registrando. In particolare, assicurati che questo ruolo conceda a S3 Access Grants le autorizzazioni
sts:AssumeRoleests:SetSourceIdentity. -
Inserisci l'ARN del ruolo IAM
Accedi alla Console IAM
. Copia il nome della risorsa Amazon (ARN) del ruolo IAM e incollalo in questa casella.
-
-
Per finire, scegli Avanti o Registra posizione.
-
-
Risoluzione dei problemi
Impossibile registrare la posizione
-
La posizione potrebbe essere già registrata.
Potresti non avere l'autorizzazione
s3:CreateAccessGrantsLocationper registrare le posizioni. Contatta l'amministratore dell'account.
-
Per installare AWS CLI, consulta Installazione dell'AWS CLI nella Guida per l'utente di AWS Command Line Interface.
Puoi registrare la posizione predefinita, s3://, o una posizione personalizzata nella tua istanza S3 Access Grants. Assicurati di creare prima un ruolo IAM con accesso del principale alla posizione, quindi assicurati di concedere a S3 Access Grants l'autorizzazione ad assumere questo ruolo.
Per utilizzare i seguenti comandi di esempio, sostituisci con le tue informazioni.user input
placeholders
Esempio Creazione di una policy di risorse
Crea una policy che consenta a S3 Access Grants di assumere il ruolo IAM. A questo proposito, puoi creare un file JSON contenente le istruzioni elencate di seguito. Per aggiungere la policy della risorsa al tuo account, consulta Creazione e collegamento della prima policy gestita dal cliente.
TestRolePolicy.json
Esempio Creazione del ruolo
Per creare il ruolo, esegui il comando IAM seguente.
aws iam create-role --role-nameaccessGrantsTestRole\ --regionus-east-2\ --assume-role-policy-document file://TestRolePolicy.json
L'esecuzione del comando create-role restituisce la policy:
{ "Role": { "Path": "/", "RoleName": "accessGrantsTestRole", "RoleId": "AROASRDGX4WM4GH55GIDA", "Arn": "arn:aws:iam::111122223333:role/accessGrantsTestRole", "CreateDate": "2023-05-31T18:11:06+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1685556427189", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" } } ] } } }
Creare una policy IAM per collegare le autorizzazioni di Amazon S3 al ruolo IAM. Consulta il seguente file iam-policy.json di esempio e sostituisci con le tue informazioni. user input placeholders
Nota
Se utilizzi la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) per crittografare i tuoi dati, l'esempio seguente aggiunge le autorizzazioni AWS KMS necessarie per il ruolo IAM nella policy. Se non utilizzi questa funzionalità, puoi rimuovere queste autorizzazioni dalla tua policy IAM.
Per avere la certezza che il ruolo IAM possa essere usato per accedere ai dati in S3 solo se le credenziali sono distribuite da S3 Access Grants, questo esempio mostra come aggiungere un'istruzione Condition che specifichi l'istanza S3 Access Grants (s3:AccessGrantsInstance:
) nella policy IAM. Quando utilizzi la seguente policy di esempio, sostituisci InstanceArn con le tue informazioni.user input placeholders
iam-policy.json
Esegui il comando seguente:
aws iam put-role-policy \ --role-name accessGrantsTestRole \ --policy-name accessGrantsTestRole \ --policy-document file://iam-policy.json
Esempio Registra la posizione predefinita
aws s3control create-access-grants-location \ --account-id111122223333\ --location-scopes3://\ --iam-role-arn arn:aws:iam::111122223333:role/accessGrantsTestRole
Risposta:
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "default", "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default", "LocationScope": "s3://" "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole" }
Esempio Registra una posizione personalizzata
aws s3control create-access-grants-location \ --account-id111122223333\ --location-scopes3://DOC-BUCKET-EXAMPLE/\ --iam-role-arn arn:aws:iam::123456789012:role/accessGrantsTestRole
Risposta:
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456", "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888", "LocationScope": "s3://DOC-BUCKET-EXAMPLE/", "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole" }
Per informazioni sul supporto REST API di Amazon S3 per la gestione di un'istanza S3 Access Grants, consulta le sezioni seguenti nella Documentazione di riferimento delle API di Amazon Simple Storage Service:
Questa sezione fornisce esempi di come registrare posizioni tramite gli AWS SDK.
Per utilizzare gli esempi seguenti, sostituisci con le tue informazioni.user input
placeholders