Registrazione di una posizione - 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à.

Registrazione di una posizione

Dopo aver creato un'istanza Amazon S3 Access Grants Regione AWS nel tuo account, registri una posizione S3 in quell'istanza. Una posizione S3 Access Grants associa la posizione S3 predefinita (s3://), un bucket o un prefisso a un ruolo (IAM). AWS Identity and Access Management 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 presenti nel percorso S3 del tuo account. Regione AWS 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-bucket sia 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:// Default-IAM-role

La posizione predefinita, s3://, include tutti i bucket nella Regione AWS.

s3://amzn-s3-demo-bucket1/ IAM-role-For-bucket

Questa posizione include tutti gli oggetti nel bucket specificato.

s3://amzn-s3-demo-bucket1/prefix-name IAM-role-For-prefix

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 istanza di S3 Regione AWS 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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount":"accountId", "aws:SourceArn":"arn:aws:s3:region:accountId:access-grants/default" } } }, //Optionally, for an IAM Identity Center use case, add: { "Sid": "Stmt1234567891012", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": "sts:SetContext", "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId", "aws:SourceArn":"arn:aws:s3:region:accountId:access-grants/default" }, "ForAllValues:ArnEquals": { "sts:RequestContextProviders":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }
  • Crea una policy IAM per collegare le autorizzazioni di Amazon S3 al ruolo IAM creato. Consulta il seguente file iam-policy.json di esempio e sostituisci user input placeholders con le tue informazioni.

    Nota
    • Se utilizzi la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) per crittografare i dati, l'esempio seguente include le AWS KMS autorizzazioni 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 Condition per una specifica istanza S3 Access Grants. Per utilizzare questo Condition, sostituire l'ARN dell'istanza S3 Access Grants nell'istruzione Condition con 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 nella tua istanza S3 Access Grants utilizzando la console Amazon S3, il AWS CLI(), AWS Command Line Interface l'API REST di Amazon S3 o il. AWS SDKs

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
  1. Accedi a 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 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.

    1. 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.

    2. 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:AssumeRole e sts: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.

    3. Per finire, scegli Avanti o Registra posizione.

  4. Risoluzione dei problemi

    Impossibile registrare la posizione
    • La posizione potrebbe essere già registrata.

      Potresti non avere l'autorizzazione s3:CreateAccessGrantsLocation per registrare le posizioni. Contatta l'amministratore dell'account.

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

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 user input placeholders con le tue informazioni.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Action": ["sts:AssumeRole", "sts:SetSourceIdentity"], "Effect": "Allow", "Principal": {"Service":"access-grants.s3.amazonaws.com"} } ] }
Esempio Creazione del ruolo

Per creare il ruolo, esegui il comando IAM seguente.

aws iam create-role --role-name accessGrantsTestRole \ --region us-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 user input placeholders con le tue informazioni.

Nota

Se utilizzi la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) per crittografare i dati, l'esempio seguente aggiunge le AWS KMS autorizzazioni 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: InstanceArn) nella policy IAM. Quando utilizzi la seguente policy di esempio, sostituisci user input placeholders con le tue informazioni.

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"] } } }, { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] }

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-id 111122223333 \ --location-scope s3:// \ --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-id 111122223333 \ --location-scope s3://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 le sedi utilizzando AWS SDKs.

Per utilizzare gli esempi seguenti, sostituisci user input placeholders con le tue informazioni.

Java

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 user input placeholders con le tue informazioni.

Esempio Registra una posizione predefinita

Richiesta:

public void createAccessGrantsLocation() { CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder() .accountId("111122223333") .locationScope("s3://") .iamRoleArn("arn:aws:iam::123456789012:role/accessGrantsTestRole") .build(); CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest); LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse); }

Risposta:

CreateAccessGrantsLocationResponse( CreatedAt=2023-06-07T04:35:11.027Z, 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

Richiesta:

public void createAccessGrantsLocation() { CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder() .accountId("111122223333") .locationScope("s3://DOC-BUCKET-EXAMPLE/") .iamRoleArn("arn:aws:iam::111122223333:role/accessGrantsTestRole") .build(); CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest); LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse); }

Risposta:

CreateAccessGrantsLocationResponse( CreatedAt=2023-06-07T04:35:10.027Z, AccessGrantsLocationId=18cfe6fb-eb5a-4ac5-aba9-8d79f04c2012, AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/18cfe6fb-eb5a-4ac5-aba9-8d79f04c2666, LocationScope= s3://test-bucket-access-grants-user123/, IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole )