Impostazione di Object Ownership su un bucket esistente - Amazon Simple Storage Service

Impostazione di Object Ownership su un bucket esistente

È possibile configurare S3 Object Ownership su un bucket S3 esistente. Per applicare Object Ownership quando si crea un bucket, consulta Impostazione di Object Ownership quando si crea un bucket.

S3 Object Ownership è un'impostazione a livello di bucket di Amazon S3 che può essere utilizzata per disabilitare le liste di controllo degli accessi (ACL) e assumere la proprietà di ogni oggetto nel bucket, semplificando la gestione degli accessi ai dati archiviati in Amazon S3. Per impostazione predefinita, Proprietà dell'oggetto S3 è impostata su Proprietario del bucket applicato e le ACL sono disabilitate per nuovi bucket. Con le ACL disabilitate, il proprietario del bucket possiede ogni oggetto nel bucket e gestisce l'accesso ai dati in maniera esclusiva utilizzando policy di gestione dell'accesso. È consigliabile mantenere le ACL disabilitate, tranne in circostanze insolite in cui è necessario controllare individualmente l'accesso per ciascun oggetto.

Object Ownership ha tre impostazioni che si possono usare per controllare la proprietà degli oggetti caricati nel bucket e per disabilitare o abilitare le ACL:

ACL disattivate
  • Proprietario del bucket applicato (impostazione predefinita): le ACL sono disabilitate e il proprietario del bucket possiede automaticamente e ha il controllo completo di ogni oggetto nel bucket. Le ACL non influenzano più le autorizzazioni ai dati nel bucket S3. Il bucket utilizza le policy per definire il controllo degli accessi.

ACL abilitate
  • Proprietario del bucket preferito - Il proprietario del bucket possiede e ha il pieno controllo sui nuovi oggetti che altri account scrivono sul bucket con l'ACL bucket-owner-full-control predefinita.

  • Scrittore di oggetti - Il Account AWS che carica un oggetto è proprietario dell'oggetto, ne ha il pieno controllo e può concedere l'accesso ad altri utenti tramite ACL.

Prerequisiti: prima di applicare l'impostazione Proprietario del bucket applicato per disabilitare le ACL, è necessario migrare le autorizzazioni ACL bucket alle policy del bucket e ripristinare le ACL bucket sull'ACL privata di default. Si consiglia inoltre di migrare le autorizzazioni ACL di oggetti alle policy di bucket e di modificare le policy di bucket che richiedono ACL diverse dalle ACL di controllo completo del proprietario del bucket. Per ulteriori informazioni, consulta Prerequisiti per la disabilitazione delle ACL.

Permessi: Per utilizzare questa operazione, è necessario disporre dell'autorizzazione s3:PutBucketOwnershipControls. Per ulteriori informazioni sulle autorizzazioni di Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.

Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nell'elenco Bucket scegliere il nome del bucket al quale applicare un'impostazione S3 Object Ownership.

  3. Scegli la scheda Autorizzazioni.

  4. Alla voce Proprietà Oggetto scegli Modifica.

  5. In Proprietà degli oggetti, per disattivare o attivare le ACL e controllare la proprietà degli oggetti caricati nel bucket, scegli una delle seguenti impostazioni:

    ACL disattivate
    • Proprietario del bucket applicato – Le ACL sono disabilitate e il proprietario del bucket possiede automaticamente e ha il pieno controllo su ogni oggetto nel bucket. Le ACL non influenzano più le autorizzazioni ai dati nel bucket S3. Il bucket utilizza le policy per definire il controllo degli accessi.

      Per richiedere che tutti i nuovi bucket vengano creati con le ACL disabilitate utilizzando IAM o le policy AWS Organizations, consulta Disabilitazione delle ACL per tutti i nuovi bucket (proprietario del bucket applicato).

    ACL abilitate
    • Proprietario del bucket preferito - Il proprietario del bucket possiede e ha il pieno controllo sui nuovi oggetti che altri account scrivono sul bucket con l'ACL bucket-owner-full-control predefinita.

      Se si applica l'impostazione preferita dal proprietario del bucket, per richiedere che tutti i caricamenti di Amazon S3 includano l'ACL bucket-owner-full-control canned, è possibile aggiungere un criterio del bucket che consenta solo il caricamento di oggetti che utilizzano questa ACL.

    • Scrittore di oggetti - Il Account AWS che carica un oggetto è proprietario dell'oggetto, ne ha il pieno controllo e può concedere l'accesso ad altri utenti tramite ACL.

  6. Scegli Salva.

Per applicare un'impostazione di proprietà degli oggetti a un bucket esistente, usare il comando put-bucket-ownership-controls con il parametro --ownership-controls. I valori validi per la proprietà sono BucketOwnerEnforced, BucketOwnerPreferred, o ObjectWriter.

In questo esempio viene applicata l'impostazione Proprietario del bucket applicato per un bucket esistente utilizzando la AWS CLI:

aws s3api put-bucket-ownership-controls --bucket amzn-s3-demo-bucket --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"

Per ulteriori informazioni su put-bucket-ownership-controls, consulta put-bucket-ownership-controls nella Guida per l'utente di AWS Command Line Interface.

In questo esempio viene eseguita l'impostazione BucketOwnerEnforced per Object Ownership su un bucket esistente utilizzando la AWS SDK for Java:

// Build the ObjectOwnership for BucketOwnerEnforced OwnershipControlsRule rule = OwnershipControlsRule.builder() .objectOwnership(ObjectOwnership.BucketOwnerEnforced) .build(); OwnershipControls ownershipControls = OwnershipControls.builder() .rules(rule) .build() // Build the PutBucketOwnershipControlsRequest PutBucketOwnershipControlsRequest putBucketOwnershipControlsRequest = PutBucketOwnershipControlsRequest.builder() .bucket(BUCKET_NAME) .ownershipControls(ownershipControls) .build(); // Send the request to Amazon S3 s3client.putBucketOwnershipControls(putBucketOwnershipControlsRequest);

Per utilizzare AWS CloudFormation per applicare un'impostazione di Object Ownership per un bucket esistente, consulta AWS::S3::Bucket OwnershipControls nella Guida per l'utente di AWS CloudFormation.

Per utilizzare l'API REST per applicare un'impostazione di Object Ownership a un bucket S3 esistente, utilizzare PutBucketOwnershipControls. Per ulteriori informazioni, consulta PutBucketOwnershipControls nel Riferimento API di Amazon Simple Storage Service.

Fasi successive: dopo aver eseguito le impostazioni Proprietario del bucket applicato o Proprietario del bucket preferito per Proprietà dell'oggetto, è possibile compiere i seguenti passaggi:

  • Proprietario del bucket applicato – Richiedi che tutti i nuovi bucket vengano creati con ACL disabilitate utilizzando le policy IAM o di Organizations.

  • Proprietario del bucket preferito – Aggiungi una policy di bucket S3 per richiedere l'ACL predefinita bucket-owner-full-control per tutti gli oggetti caricati nel tuo bucket.