Usa l'API REST S3 per configurare StorageGRID S3 Object Lock
Se l'impostazione globale S3 Object Lock è abilitata per il tuo sistema StorageGRID, puoi creare bucket con S3 Object Lock attivo. Puoi specificare il periodo di conservazione predefinito per ogni bucket o le impostazioni di conservazione per ogni versione dell'oggetto.
Come abilitare S3 Object Lock per un bucket
Se l'impostazione globale S3 Object Lock è abilitata per il tuo sistema StorageGRID, puoi scegliere di abilitare S3 Object Lock quando crei ogni bucket.
Il blocco degli oggetti S3 è un'impostazione permanente che puoi abilitare solo quando crei un bucket. Non puoi aggiungere o disabilitare il blocco degli oggetti S3 dopo che un bucket è stato creato.
Per abilitare il blocco degli oggetti S3 per un bucket, usa uno di questi metodi:
-
Crea il bucket utilizzando il Tenant Manager. Vedi "Crea bucket S3".
-
Crea il bucket utilizzando una richiesta CreateBucket con l' `x-amz-bucket-object-lock-enabled`intestazione della richiesta. Vedi "Operazioni sui bucket".
S3 Object Lock richiede il versioning del bucket, che viene abilitato automaticamente quando il bucket viene creato. Non puoi sospendere il versioning per il bucket. Vedi "Versioning degli oggetti".
Impostazioni di conservazione predefinite per un bucket
Quando il blocco degli oggetti S3 è abilitato per un bucket, puoi facoltativamente abilitare la conservazione predefinita per il bucket e specificare una modalità di conservazione predefinita e un periodo di conservazione predefinito.
Modalità di conservazione predefinita
-
In modalità COMPLIANCE:
-
L'oggetto non può essere eliminato fino al raggiungimento della sua retain-until-date.
-
La data di conservazione dell'oggetto può essere aumentata, ma non può essere diminuita.
-
La data di conservazione dell'oggetto non può essere rimossa fino al raggiungimento di tale data.
-
-
In modalità GOVERNANCE:
-
Gli utenti con l' `s3:BypassGovernanceRetention`autorizzazione possono usare l' `x-amz-bypass-governance-retention: true`intestazione della richiesta per bypassare le impostazioni di conservazione.
-
Questi utenti possono eliminare una versione di un oggetto prima che venga raggiunta la data di conservazione prevista.
-
Questi utenti possono aumentare, diminuire o rimuovere la retain-until-date di un oggetto.
-
Periodo di conservazione predefinito
Ciascun bucket può avere un periodo di conservazione predefinito specificato in anni o giorni.
Come impostare la conservazione predefinita per un bucket
Per impostare il periodo di conservazione predefinito per un bucket, usa uno di questi metodi:
-
Gestisci le impostazioni del bucket dal Tenant Manager. Vedi "Crea un bucket S3" e "Aggiorna la conservazione predefinita del blocco oggetto S3".
-
Invia una richiesta PutObjectLockConfiguration per il bucket per specificare la modalità predefinita e il numero predefinito di giorni o anni.
PutObjectLockConfiguration
La richiesta PutObjectLockConfiguration ti permette di impostare e modificare la modalità di conservazione predefinita e il periodo di conservazione predefinito per un bucket che ha S3 Object Lock abilitato. Puoi anche rimuovere le impostazioni di conservazione predefinite configurate in precedenza.
Quando nuove versioni degli oggetti vengono inserite nel bucket, viene applicata la modalità di conservazione predefinita se x-amz-object-lock-mode e x-amz-object-lock-retain-until-date non sono specificati. Il periodo di conservazione predefinito viene utilizzato per calcolare la retain-until-date se x-amz-object-lock-retain-until-date non è specificato.
Se il periodo di conservazione predefinito viene modificato dopo l'acquisizione di una versione di un oggetto, la retain-until-date della versione dell'oggetto rimane invariata e non viene ricalcolata utilizzando il nuovo periodo di conservazione predefinito.
Devi avere l'autorizzazione s3:PutBucketObjectLockConfiguration oppure essere account root per completare questa operazione.
L' `Content-MD5`intestazione della richiesta deve essere specificata nella richiesta PUT.
Esempio di richiesta
Questo esempio abilita S3 Object Lock per un bucket e imposta la modalità di conservazione predefinita su COMPLIANCE e il periodo di conservazione predefinito su 6 anni.
PUT /bucket?object-lock HTTP/1.1
Accept-Encoding: identity
Content-Length: 308
Host: host
Content-MD5: request header
User-Agent: s3sign/1.0.0 requests/2.24.0 python/3.8.2
X-Amz-Date: date
X-Amz-Content-SHA256: authorization-string
Authorization: authorization-string
<ObjectLockConfiguration>
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Years>6</Years>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Come determinare il periodo di conservazione predefinito per un bucket
Per determinare se S3 Object Lock è abilitato per un bucket e per visualizzare la modalità di conservazione predefinita e il periodo di conservazione, usa uno di questi metodi:
-
Visualizza il bucket in Tenant Manager. Vedi "Visualizza i bucket S3".
-
Invia una richiesta GetObjectLockConfiguration.
GetObjectLockConfiguration
La richiesta GetObjectLockConfiguration ti permette di verificare se S3 Object Lock è abilitato per un bucket e, se lo è, vedere se sono configurati una modalità di conservazione predefinita e un periodo di conservazione per il bucket.
Quando nuove versioni di oggetti vengono inserite nel bucket, viene applicata la modalità di conservazione predefinita se x-amz-object-lock-mode non è specificata. Il periodo di conservazione predefinito viene utilizzato per calcolare la data di conservazione fino a quando x-amz-object-lock-retain-until-date non è specificata.
Devi avere l'autorizzazione s3:GetBucketObjectLockConfiguration oppure essere account root per completare questa operazione.
Esempio di richiesta
GET /bucket?object-lock HTTP/1.1 Host: host Accept-Encoding: identity User-Agent: aws-cli/1.18.106 Python/3.8.2 Linux/4.4.0-18362-Microsoft botocore/1.17.29 x-amz-date: date x-amz-content-sha256: authorization-string Authorization: authorization-string
Esempio di risposta
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIXk=
x-amz-request-id: B34E94CACB2CEF6D
Date: Fri, 04 Sep 2020 22:47:09 GMT
Transfer-Encoding: chunked
Server: AmazonS3
<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Years>6</Years>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Come specificare le impostazioni di conservazione per un oggetto
Un bucket con S3 Object Lock abilitato può contenere una combinazione di oggetti con e senza impostazioni di conservazione S3 Object Lock.
Le impostazioni di conservazione a livello di oggetto vengono specificate tramite l'API REST di S3. Le impostazioni di conservazione per un oggetto sovrascrivono qualsiasi impostazione di conservazione predefinita per il bucket.
Puoi specificare le seguenti impostazioni per ogni oggetto:
-
Modalità di conservazione: CONFORMITY o GOVERNANCE.
-
Retain-until-date: una data che specifica per quanto tempo la versione dell'oggetto deve essere conservata da StorageGRID.
-
In modalità COMPLIANCE, se la retain-until-date è futura, l'oggetto può essere recuperato, ma non può essere modificato o eliminato. La retain-until-date può essere aumentata, ma questa data non può essere diminuita o rimossa.
-
In modalità GOVERNANCE, gli utenti con autorizzazioni speciali possono ignorare l'impostazione della data di conservazione. Possono eliminare una versione di un oggetto prima che il periodo di conservazione sia trascorso. Possono anche aumentare, diminuire o persino rimuovere la data di conservazione.
-
-
Blocco legale: L'applicazione di un blocco legale a una versione di un oggetto blocca immediatamente quell'oggetto. Ad esempio, potresti dover applicare un blocco legale a un oggetto correlato a un'indagine o a una controversia legale. Un blocco legale non ha una data di scadenza, ma rimane in vigore finché non viene esplicitamente rimosso.
L'impostazione di blocco legale per un oggetto è indipendente dalla modalità di conservazione e dalla data di conservazione fino alla quale l'oggetto verrà conservato. Se una versione di un oggetto è soggetta a blocco legale, nessuno può eliminare quella versione.
Per specificare le impostazioni di S3 Object Lock quando aggiungi una versione di oggetto a un bucket, invia una richiesta "PutObject", "CopyObject" o "CreateMultipartUpload".
Puoi usare quanto segue:
-
x-amz-object-lock-mode, che può essere COMPLIANCE o GOVERNANCE (sensibile alle maiuscole/minuscole).Se specifichi x-amz-object-lock-mode, devi specificare anchex-amz-object-lock-retain-until-date. -
x-amz-object-lock-retain-until-date-
Il valore retain-until-date deve essere nel formato
2020-08-10T21:46:00Z. Sono ammessi i secondi frazionari, ma vengono conservate solo 3 cifre decimali (precisione in millisecondi). Altri formati ISO 8601 non sono ammessi. -
La data di conservazione deve essere nel futuro.
-
-
x-amz-object-lock-legal-holdSe il legal hold è ON (case-sensitive), l'oggetto viene sottoposto a legal hold. Se il legal hold è OFF, non viene applicato alcun legal hold. Qualsiasi altro valore genera un errore 400 Bad Request (InvalidArgument).
Se utilizzi una qualsiasi di queste intestazioni di richiesta, tieni presente queste restrizioni:
-
L' `Content-MD5`intestazione della richiesta è obbligatoria se è presente una qualsiasi `x-amz-object-lock-*`intestazione della richiesta nella richiesta PutObject. `Content-MD5`Non è obbligatoria per CopyObject o CreateMultipartUpload.
-
Se il bucket non ha S3 Object Lock abilitato e una `x-amz-object-lock-*`intestazione di richiesta è presente, viene restituito un errore 400 Bad Request (InvalidRequest).
-
La richiesta PutObject supporta l'uso di
x-amz-storage-class: REDUCED_REDUNDANCYper eguagliare il comportamento di AWS. Tuttavia, quando un oggetto viene inserito in un bucket con S3 Object Lock abilitato, StorageGRID eseguirà sempre un ingest dual-commit. -
Una successiva risposta GET o HeadObject di versione includerà le intestazioni
x-amz-object-lock-mode,x-amz-object-lock-retain-until-dateex-amz-object-lock-legal-hold, se configurate e se chi invia la richiesta ha le correttes3:Get*autorizzazioni.
Puoi usare la `s3:object-lock-remaining-retention-days`chiave di condizione dei criteri per limitare i periodi di conservazione minimi e massimi consentiti per i tuoi oggetti.
Come aggiornare le impostazioni di conservazione per un oggetto
Se devi aggiornare le impostazioni di blocco legale o di periodo di conservazione per una versione esistente di un oggetto, puoi eseguire le seguenti operazioni sulle sottorisorse dell'oggetto:
-
PutObjectLegalHoldSe il nuovo valore di legal hold è ON, l'oggetto viene sottoposto a legal hold. Se il valore di legal hold è OFF, il legal hold viene rimosso.
-
PutObjectRetention-
Il valore della modalità può essere COMPLIANCE o GOVERNANCE (case sensitive).
-
Il valore retain-until-date deve essere nel formato
2020-08-10T21:46:00Z. Sono ammessi i secondi frazionari, ma vengono conservate solo 3 cifre decimali (precisione in millisecondi). Altri formati ISO 8601 non sono ammessi. -
Se a una versione di un oggetto è già associata una data di conservazione (retain-until-date), puoi solo aumentarla. Il nuovo valore deve essere nel futuro.
-
Come usare la modalità GOVERNANCE
Gli utenti che hanno l'autorizzazione s3:BypassGovernanceRetention possono ignorare le impostazioni di conservazione attive di un oggetto che utilizza la modalità GOVERNANCE. Qualsiasi operazione DELETE o PutObjectRetention deve includere l'intestazione della richiesta x-amz-bypass-governance-retention:true. Questi utenti possono eseguire queste operazioni aggiuntive:
-
Esegui le operazioni DeleteObject o DeleteObjects per eliminare una versione di un oggetto prima che il suo periodo di conservazione sia trascorso.
Gli oggetti soggetti a blocco legale non possono essere eliminati. Il blocco legale deve essere disattivato.
-
Esegui operazioni PutObjectRetention che cambiano la modalità di una versione di oggetto da GOVERNANCE a COMPLIANCE prima che sia trascorso il periodo di conservazione dell'oggetto.
Il passaggio dalla modalità COMPLIANCE alla modalità GOVERNANCE non è mai consentito.
-
Esegui operazioni PutObjectRetention per aumentare, diminuire o rimuovere il periodo di conservazione di una versione dell'oggetto.