Abilitazione del blocco oggetto per S3
Utilizzando il meccanismo di blocco degli oggetti S3 , è possibile utilizzare concetti di blocco degli oggetti come periodo di conservazione, conservazione legale e configurazione del bucket per implementare la funzionalità WORM (Write - Once - Read_Many) come parte del workflow personalizzato che sovrascrive le autorizzazioni di eliminazione dei dati.
Prerequisiti
Un cluster IBM Storage Ceph in esecuzione.
Accesso a livello root al nodo Ceph Object Gateway .
Utente S3 con accesso di creazione del bucket versione.
Procedura
Crea un bucket con il blocco oggetto abilitato:
Sintassi
aws --endpoint=http://RGW_PORT:8080 s3api create-bucket --bucket BUCKET_NAME --object-lock-enabled-for-bucketEsempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api create-bucket --bucket worm-bucket --object-lock-enabled-for-bucketImposta un periodo di conservazione per il bucket:
Sintassi
aws --endpoint=http://RGW_PORT:8080 s3api put-object-lock-configuration --bucket BUCKET_NAME --object-lock-configuration { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "RETENTION_MODE", "Days": NUMBER_OF_DAYS }}}Esempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-lock-configuration --bucket worm-bucket --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 10 }}}'Nota:È possibile scegliere la modalità GOVERNANCE o COMPLIANCE per il RETENTION_MODE nel blocco oggetto S3 , per applicare diversi livelli di protezione a qualsiasi versione oggetto protetta dal blocco oggetto.
In modalit ... GOVERNANCE , gli utenti non possono sovrascrivere o eliminare una versione dell'oggetto o modificarne le impostazioni di blocco a meno che non dispongano di autorizzazioni speciali.
In modalità COMPLIANCE , una versione di oggetto protetto non può essere sovrascritta o eliminata da alcun utente, incluso l'utente root nel tuo account AWS . Quando un oggetto è bloccato in modalità COMPLIANCE , non è possibile modificare RETENTION_MODE e non è possibile ridurre il periodo di conservazione. La modalità COMPLIANCE consente di garantire che una versione dell'oggetto non possa essere sovrascritta o eliminata per la durata del periodo.
Inserire l'oggetto nel bucket con un tempo di conservazione impostato:
Sintassi
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body TEST_FILEEsempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body test.dd { "ETag": ""d560ea5652951637ba9c594d8e6ea8c1"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }Carica un nuovo oggetto utilizzando la stessa chiave:
Sintassi
aws --endpoint=http://RGW_PORT:8080 s3api put-object --bucket BUCKET_NAME --object-lock-mode RETENTION_MODE --object-lock-retain-until-date "DATE" --key compliance-upload --body PATHEsempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object --bucket worm-bucket --object-lock-mode COMPLIANCE --object-lock-retain-until-date "2022-05-31" --key compliance-upload --body /etc/fstab { "ETag": ""d560ea5652951637ba9c594d8e6ea8c1"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD" }
Opzioni di riga di comando
Impostare un blocco oggetto su una versione oggetto:
Esempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api put-object-legal-hold --bucket worm-bucket --key compliance-upload --legal-hold Status=ONNota: utilizzando l'operazione di blocco dell'oggetto, è possibile impostare un blocco legale su una versione dell'oggetto, impedendo la sovrascrittura o l'eliminazione di una versione dell'oggetto. Un blocco legale non ha un periodo di conservazione associato e, quindi, rimane in vigore fino a quando non viene rimosso.Elencare gli oggetti dal bucket per richiamare solo la versione più recente dell'oggetto:
Esempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucketElenca le versioni dell'oggetto dal bucket:
Esempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api list-objects --bucket worm-bucket { "Versions": [ { "ETag": ""d560ea5652951637ba9c594d8e6ea8c1"", "Size": 288, "StorageClass": "STANDARD", "Key": "hosts", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD", "IsLatest": true, "LastModified": "2022-06-17T08:51:17.392000+00:00", "Owner": { "DisplayName": "Test User in Tenant test", "ID": "test$test.user" } } } ] }Accedere agli oggetti utilizzando gli ID versione:
Esempio
[root@rgw-2 ~]# aws --endpoint=http://rgw.ceph.com:8080 s3api get-object --bucket worm-bucket --key compliance-upload --version-id 'IGOU.vdIs3SPduZglrB-RBaK.sfXpcd' download.1 { "AcceptRanges": "bytes", "LastModified": "2022-06-17T08:51:17+00:00", "ContentLength": 288, "ETag": ""d560ea5652951637ba9c594d8e6ea8c1"", "VersionId": "Nhhk5kRS6Yp6dZXVWpZZdRcpSpBKToD", "ContentType": "binary/octet-stream", "Metadata": {}, "ObjectLockMode": "COMPLIANCE", "ObjectLockRetainUntilDate": "2023-06-17T08:51:17+00:00" }