1. Startsida
  2. /
  3. Aktuellt
  4. /
  5. Guide: Skydd av molnbackup

Guide: skydd av molnbackup

Vi har utvecklat en guide för att våra Binero Cloud-kunder ska skydda säkerhetskopior med säker molnlagring. Denna guide gäller alla cloud-användare som vill säkerställa att deras säkerhetskopior inte kan raderas av misstag eller av obehöriga. I guiden beskriver vi en lösning som använder Binero Clouds objektlagring, som är API-kompatibelt med AWS S3, för att skapa en säker och låst backup-miljö.

Jämför din nuvarande setup med vår process – det kanske finns någonting mer ni kan göra för skydd av säkerhetskopior. Följ stegen nedan för att se hur du kan implementera samma lösning och höja säkerheten för dina data.

Bakgrund

Våra kunder eftersökte en lösning för att lagra sina säkerhetskopior på ett säkert sätt. Kravet var att säkerhetskopiorna ska vara skyddade så att de inte kan raderas, varken av misstag eller av obehöriga personer som får åtkomst till systemet.

Säker molnlagring med objektlagring i Binero Cloud

Som ett led i vår ambition att alltid säkerställa säker molnlagring åt våra kunder erbjuder Binero Cloud objektlagring som är API-kompatibelt med AWS S3. Detta gör det möjligt att låsa objekt. Funktionen kräver att den bucket där filerna lagras är konfigurerad för detta.

Genom stegen nedan kunde vi säkerställa att datan i molnet var lagrad säkert – med extra säkerhet i backups.

Exempel

Här visas ett exempel på hur raderade objekt fortsätter att existera utan att synas i gränssnittet, och inte kan raderas innan en konfigurerad tidsfrist har passerat. Kommandon som interagerar med Binero Cloud flaggas för att returnera data i JSON-format med hjälp av verktyget jq.

Förberedelser

Genrera autentiseringsuppgifter

Autentiseringsuppgifter genereras i EC2-format för användning med aws-klienten och tilldelas miljövariabler för interaktion med objektlagret.

$ read -r AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY \
  <<<$(jq -r '"\(.access) \(.secret)"' \
    <(openstack ec2 credentials create -f json))

 

Läs ut API-adress

API-adressen för objektlagret hämtas från Binero Clouds tjänstekatalog. Den sista delen av URL:en tas bort då den pekar till Swift-API:et som inte är aktuellt.

$ AWS_ENDPOINT_URL=$(openstack catalog list -f json \
| jq -r '.[] |select(.Type=="object-store") |.Endpoints[] |select(.interface=="public").url' \
| cut -d/ -f1-3)

Exportera miljövariabler

Alla variabler görs tillgängliga för aws-klienten som måste vara installerad. Även bucket-namnet lagras i en variabel. Notera att aws endast används som en klient för att interagera med S3 i Binero Cloud ((AWS_ENDPOINT_URL -där all data lagras).

$ export AWS_ENDPOINT_URL AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
$ export BACKUP_BUCKET=bup

Verifiera förberedelser

För framtida manuell interaktion eller automation kan de tre AWS-specifika värdena lagras på filsystemet. Säkerställ att filrättigheterna inte är öppna. Filsystemskonfiguration ignoreras om den aktiva miljön är korrekt konfigurerad.

  1. Uppgifter i API:et
    $ openstack ec2 credentials show $AWS_ACCESS_KEY_ID -c access
    -c secret
    +--------+----------------------------------+
    | Field | Value |
    +--------+----------------------------------+
    | access | d7855ef4cce44ec692c966e6cc10262d |
    | secret | fd3004c7e25240b2b07a931b76b757e5 |
    +--------+----------------------------------+
  2. Uppgifter i miljön:
    $ env | grep AWS
    AWS_SECRET_ACCESS_KEY=
    AWS_ACCESS_KEY_ID=
    AWS_ENDPOINT_URL=https://object-eu-se-1a.binero.cloud

    $ env |grep BACKUP
    BACKUP_BUCKET=bup
  3. Uppgifter i klienten
    $ aws configure list
    Name Value Type Location
    ---- ----- ---- --------
    profile None None
    access_key ****************262d env
    secret_key ****************57e5 env
    region None None

Skapa bucket

En bucket skapas som vanligt, med en lagringspolicy och LocationConstraint. Vi väljer europe-se-1 i vårt exempel för att aktivera replikering om en policy som stöder det har valts.

$ aws s3api create-bucket \
--bucket $BACKUP_BUCKET \
--create-bucket-configuration LocationConstraint=europe-se-1 \
--object-lock-enabled-for-bucket

Konfigurera låsmekanism

Lagringsläget konfigureras till en av två varianter COMPLIANCE eller GOVERNANCE. COMPLIANCE medför högsta säkerhet, då inte ens administratörer kan radera objekten inom den inställda tidsfristen, i detta fall under ett dygn.

$ aws s3api put-object-lock-configuration --bucket $BACKUP_BUCKET \
  --object-lock-configuration '{"ObjectLockEnabled": "Enabled", "Rule": {"DefaultRetention": {"Mode": "COMPLIANCE", "Days": 1}}}'

Verifiera bucket

Förmågan att låsa objekt baseras på versionshantering av objekt.

Existens

$ aws s3api list-buckets | jq '.Buckets[] | select(.Name == env.BACKUP_BUCKET)'
{
    "Name": "bup",
    "CreationDate": "2024-04-10T10:28:18.146000+00:00"
}

Versionshantering

$ jq .Status <(aws s3api get-bucket-versioning --bucket $BACKUP_BUCKET)
"Enabled"

Ladda upp fil

Filen tux.svg lagras i bucketen.

$ aws s3 cp tux.svg s3://$BACKUP_BUCKET
upload: ./tux.svg to s3://bup/tux.svg

Verifiera existens av objekt

Säkerställ att objektet returneras som det enda objektet i lagret.

$ aws s3 ls $BACKUP_BUCKET
2024-04-10 12:31:11 49983 tux.svg

Därefter inspekterar vi metadatat som API:et lagrat.

$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
"Contents": [
{
"Key": "tux.svg",
"LastModified": "2024-04-10T10:31:11.177000+00:00",
"ETag": "\"8a6487c7872a9b825c8f2d4533067c6d\"",
"Size": 49983,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "5002424",
"ID": ""
}
}
],
"RequestCharged": null
}

Radera objekt

När objektet raderas skapas en DeleteMarker. Objektet verkar vara raderat men är egentligen dolt. Observera VersionId som refererar till säkerhetskopian.

$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg
{
"DeleteMarker": true,
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
}

Listas objekten i bucketen, endera som nedan, eller annat gränsnitt, så finns inte objektet kvar - objektet tux.svg är till synes raderad. Ingenting returneras - inte heller av API:et.

$ aws s3 ls $BACKUP_BUCKET 
$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
"RequestCharged": null
}

Säkerhetskopia är intakt

Om versionerna av objekten däremot listas, så kan vi se att objektet fortfarande existerar. Det som alltså hände när objektet raderades, var att en DeleteMarker skapades.

$ aws s3api list-object-versions --bucket $BACKUP_BUCKET
{
"Versions": [
{
"ETag": "\"8a6487c7872a9b825c8f2d4533067c6d\"",
"Size": 49983,
"StorageClass": "STANDARD",
"Key": "tux.svg",
"VersionId": "-IrCCqAYQt5ySttlBnI6VEw2jpw6f2.",
"IsLatest": false,
"LastModified": "2024-04-10T10:31:11.177000+00:00",
"Owner": {
"DisplayName": "5002424",
"ID": ""
}
}
],
"DeleteMarkers": [
{
"Owner": {
"DisplayName": "5002424",
"ID": ""
}
"Key": "tux.svg",
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ",
"IsLatest": true,
"LastModified": "2024-04-11T08:25:42.985000+00:00"
}
],
"RequestCharged": null
}

Återställa raderat objekt

Det finurliga med en DeleteMarker är att om den raderas så återställs filen!

$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg \
--version-id "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
{
"DeleteMarker": true,
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
}
$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
    "Contents": [
        {
            "Key": "tux.svg",
            "LastModified": "2024-04-10T10:31:11.177000+00:00",
            "ETag": "\"8a6487c7872a9b825c8f2d4533067c6d\"",
            "Size": 49983,
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "5002424",
                "ID": ""
            }
        }
    ],
    "RequestCharged": null
}

Om en förövare - även med kunskapen om versionshanteringen, skulle försöka att radera säkerhetskopian, så misslyckas försöket. När tidsfristen passerat, kan versionen raderas - men aldrig innan!

$ aws s3api delete-object --bucket $BACKUP_BUCKET \
  --key tux.svg \
  --version-id "\-IrCCqAYQt5ySttlBnI6VEw2jpw6f2\."

An error occurred (AccessDenied) when calling the 
DeleteObject operation: forbidden by object lock

Slutsats: säker molnlagring av backups

Exemplet visar hur det går att säkert lagra sina säkerhetskopior tryggt i Binero Clouds objektlagring och säkerställa att säkerhetskopiorna hålls intakta även om obehöriga får åtkomst till dem. Säker molnlagring – i världsklass!

Vill du veta mer?

Vi drivs av att hjälpa våra kunder till högre innovationskraft och kostnadseffektiv IT. Prata med en av våra experter så berättar vi gärna mer.

Relaterade artiklar