Vi har utviklet en veiledning for våre Binero Cloud-kunder for å beskytte deres sikkerhetskopier med sikker cloud-lagring. Denne veiledningen gjelder for alle cloud-brukere som ønsker å sikre at sikkerhetskopiene deres ikke kan slettes ved et uhell eller av uautoriserte personer. I veiledningen beskriver vi en løsning som bruker Binero Clouds objektlagring, som er API-kompatibel med AWS S3, for å lage et sikkert og låst sikkerhetskopimiljø.

Sammenlign din nåværende oppsett med vår prosess – det kan være noe mer du kan gjøre for å beskytte sikkerhetskopiene dine. Følg trinnene nedenfor for å se hvordan du kan implementere den samme løsningen og øke sikkerheten til dataene dine.

Bakgrunn

Våre kunder lette etter en løsning for å lagre sikkerhetskopiene sine sikkert. Kravet var at sikkerhetskopiene måtte beskyttes slik at de ikke kunne slettes, verken ved et uhell eller av uautoriserte personer som fikk tilgang til systemet.

Sikker cloud-lagring med objektlagring i Binero Cloud

Som en del av vårt mål om alltid å sikre sikker cloud-lagring for våre kunder, tilbyr Binero Cloud objektlagring som er API-kompatibel med AWS S3. Dette gjør det mulig å låse objekter. Funksjonen krever at bøtten der filene lagres er konfigurert for dette.

Ved å følge trinnene nedenfor, kunne vi sikre at dataene i clouden ble lagret sikkert – med ekstra sikkerhet i sikkerhetskopiene.

Eksempel

Her er et eksempel på hvordan slettede objekter fortsetter å eksistere uten å være synlige i grensesnittet, og ikke kan slettes før en konfigurert tidsgrense har passert. Kommandoer som samhandler med Binero Cloud er merket for å returnere data i JSON-format ved bruk av jq-verktøyet.

Forberedelser

Generere autentiseringsopplysninger

Autentiseringsopplysninger genereres i EC2-format for bruk med AWS-klienten og tilordnes miljøvariabler for interaksjon med objektlageret.

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

Les ut API-adresse

API-adressen for objektlagring hentes fra Binero Clouds tjenestekatalog. Den siste delen av URL-en fjernes siden den peker til Swift API, som ikke er relevant.

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

Eksporter miljøvariabler

Alle variabler gjøres tilgjengelige for AWS-klienten, som må være installert. Bøttenavnet lagres også i en variabel. Merk at AWS kun brukes som klient for å samhandle med S3 i Binero Cloud (AWS_ENDPOINT_URL – der alle data lagres).

$ export AWS_ENDPOINT_URL AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
$ export BACKUP_BUCKET=bup

Verifiser forberedelser

For fremtidig manuell interaksjon eller automatisering kan de tre AWS-spesifikke verdiene lagres på filsystemet. Pass på at filrettighetene ikke er åpne. Filkonfigurasjon ignoreres hvis aktivt miljø er korrekt konfigurert.

  1. Informasjon i API

    $ openstack ec2 credentials show $AWS_ACCESS_KEY_ID -c access -c secret
    +--------+----------------------------------+
    | Field | Value |
    +--------+----------------------------------+
    | access | d7855ef4cce44ec692c966e6cc10262d |
    | secret | fd3004c7e25240b2b07a931b76b757e5 |
    +--------+----------------------------------+
  2. Informasjon i miljøet:

    $ 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. Informasjon i klienten

    $ aws configure list
    Name Value Type Location
    ---- ----- ---- --------
    profile None None
    access_key ****************262d env
    secret_key ****************57e5 env
    region None None

Opprett bøtte

En bøtte opprettes som vanlig, med en lagringspolicy og LocationConstraint. Vi velger europe-se-1 i vårt eksempel for å aktivere replikering hvis en policy som støtter det er valgt.

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

Konfigurer låsemekanisme

Lagringsmodus er konfigurert til en av to varianter: COMPLIANCE eller GOVERNANCE. COMPLIANCE gir det høyeste sikkerhetsnivået, siden selv administratorer ikke kan slette objekter innenfor den satte tidsrammen, i dette tilfellet mindre enn 24 timer.

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

Verifiser bøtte

Muligheten til å låse objekter er basert på versjonshåndtering av objekter.

Eksistens

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

Versjonshåndtering

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

Last opp fil

Filen tux.svg lagres i bøtten.

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

Verifiser eksistens av objekt

Sørg for at objektet returneres som det eneste objektet i lagringen.

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

Vi undersøker deretter metadata lagret av API-en.

$ 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": "*******",
"ID": ""
}
}
],
"RequestCharged": null
}

Slett elementer

Når objektet slettes, opprettes en DeleteMarker. Objektet ser ut til å være slettet, men er faktisk skjult. Merk VersionId som refererer til sikkerhetskopien.

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

List objektene i bøtten, enten som nedenfor eller ved bruk av en annen grensesnitt, og objektet er ikke lenger der – objektet tux.svg ser ut til å ha blitt slettet. Ingenting returneres – ikke engang fra API-en.

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

Sikkerhetskopien er intakt

Men hvis versjonene av objektene listes, kan vi se at objektet fortsatt eksisterer. Det som skjedde da objektet ble slettet, var at en DeleteMarker ble opprettet.

$ 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": "*******",
"ID": ""
}
}
],
"DeleteMarkers": [
{
"Owner": {
"DisplayName": "*******",
"ID": ""
}
"Key": "tux.svg",
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ",
"IsLatest": true,
"LastModified": "2024-04-11T08:25:42.985000+00:00"
}
],
"RequestCharged": null
}

Gjenopprett slettede elementer

Det smarte med en DeleteMarker er at hvis den slettes, gjenopprettes 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": "*******",
 "ID": ""
  }
  }
 ],
 "RequestCharged": null
}

Hvis en angriper – selv med kunnskap om versjonshåndtering – skulle prøve å slette sikkerhetskopien, ville forsøket mislykkes. Når tidsgrensen har passert, kan versjonen slettes – men aldri før!

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

En feil oppstod (AccessDenied) under kallet til 
DeleteObject-operasjonen: forbudt av objektlås

Konklusjon: sikker cloud-lagring av sikkerhetskopier

Dette eksempelet viser hvordan du trygt kan lagre sikkerhetskopiene dine i Binero Clouds objektlagring og sikre at de forblir intakte selv om uautoriserte personer får tilgang til dem. Sikker cloud-lagring – i verdensklasse!