Objektlåsning

I den här kom igång guiden så kommer vi gå igenom det ni behöver göra för att för att komma igång med objektlåsning.

Förutsättningar

För att komma igång med CLI:et så behöver ni installera antingen AWS CLI eller liknande. Vi har en guide för att komma igång med objektlagring här https://support.binero.com/knowledge-base/binero-objektlagring/

Kom igång

För att använda objektlås så behöver vi först konfigurera en bucket med stöd för det, detta gör vi med följande kommando:

$ aws --endpoint=https://object-eu-se-1a.binero.cloud s3api create-bucket --bucket binero-test-lock --create-bucket-configuration LocationConstraint=europe-se-1:gp.recurring --object-lock-enabled-for-bucket

Efter det så kan vi aktivera objektlås på den och välja typ av bibehållande

$ aws --endpoint=https://object-eu-se-1a.binero.cloud s3api put-object-lock-configuration --bucket binero-test-lock --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 1 }}}'

Här sätter vi Mode till COMPLIANCE detta innebär att det skyddade objektet inte kan skrivas över eller raderas av någon användare, det går inte att ändra i efterhand och man kan inte göra perioden kortare. Vi sätter perioden till 1 dag vilket innebär att objektet bara kan raderas/skrivas över efter 1 dag från att det skapas.

Om vi nu flyttar en fil till den nya bucket:en vi skapat

$ aws s3 --endpoint=https://object-eu-se-1a.binero.cloud cp test.txt s3://binero-test-lock/test.txt
upload: ./test.txt to s3://binero-test-lock/test.txt

Så kan vi lista alla versioner av det objektet då versionshantering aktiveras när man skapar en bucket med objektlås.

$ aws s3api --endpoint=https://object-eu-se-1a.binero.cloud list-object-versions --bucket binero-test-lock

{
    "Versions": [
        {
            "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
            "Size": 0,
            "StorageClass": "STANDARD",
            "Key": "test.txt",
            "VersionId": "LYw1h2UTZX3SX5eh736V72T2.Ewca5l",
            "IsLatest": true,
            "LastModified": "2021-03-15T10:33:20.407000+00:00",
            "Owner": {
                "DisplayName": "5000000",
                 "ID": "e159548115134f84b850038459bc600c$e159548115134f84b850038459bc600c"
            }
        }
    ]
}

Raderar man filen genom att köra tex.

$ aws s3api --endpoint=https://object-eu-se-1a.binero.cloud delete-object --bucket binero-test-lock --key "test.txt"
{
    "DeleteMarker": true,
    "VersionId": "Nqf2LuW16O8U9bQcqaxnEGIMfXvUjgX"
}

Så blir den markerad som raderad eftersom versionshantering är aktiverat, försöker man däremot att radera objektet

$ aws --endpoint=https://object-eu-se-1a.binero.cloud s3api delete-object --bucket binero-test-lock --key test.txt --version-id LYw1h2UTZX3SX5eh736V72T2.Ewca5l
An error occurred (AccessDenied) when calling the DeleteObject operation: Unknown

så får man ett felmeddelande då det inte går att radera filen innan tiden vi satt gått ut.

Senast uppdaterad 2021-03-16

Relaterade artiklar

Behöver du hjälp?
Hittar du inte vad du söker? Ingen fara - kontakta oss så hjälper vi dig!
Kontakta support