Vi har utviklet en veiledning for våre Binero Cloud-kunder for å beskytte sikkerhetskopiene deres med sikker skylagring. Denne veiledningen gjelder for alle skybrukere 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 å skape et sikkert og låst sikkerhetskopieringsmiljø.
Sammenlign din nåværende konfigurasjon 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 var på jakt etter en løsning for sikker lagring av sikkerhetskopiene sine. 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 skylagring med objektlagring i Binero Cloud
Som en del av vår ambisjon om å alltid sikre sikker skylagring 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øtta der filene lagres er konfigurert for dette.
Ved å følge trinnene nedenfor kunne vi sikre at dataene i skyen ble lagret på en sikker måte – 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 tidsbegrensning har gått ut. Kommandoer som samhandler med Binero Cloud er merket for å returnere data i JSON-format ved hjelp av jq-verktøyet.
Forberedelser
Generer autentiseringsinformasjon
Autentiseringsopplysninger genereres i EC2-format for bruk med AWS-klienten og tilordnes miljøvariabler for samhandling med objektlageret.
$ read -r AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY \
<<<$(jq -r '"\(.access) \(.secret)"' \
<(openstack ec2 credentials create -f json))
Les opp API-adresse
API-adressen for objektlagringen hentes fra Binero Clouds tjenestekatalog. Den siste delen av URL-en fjernes, da 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. Navnet på bøtta lagres også i en variabel. Merk at AWS kun brukes som klient for å kommunisere 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
Kontroller forberedelsene
For fremtidig manuell interaksjon eller automatisering kan de tre AWS-spesifikke verdiene lagres på filsystemet. Sørg for at filrettighetene ikke er åpne. Filsystemkonfigurasjonen ignoreres hvis det aktive miljøet er konfigurert riktig.
- Uppgifter i API:et
$ openstack ec2 credentials show $AWS_ACCESS_KEY_ID -c access -c secret
+--------+----------------------------------+
| Field | Value |
+--------+----------------------------------+
| access | d7855ef4cce44ec692c966e6cc10262d |
| secret | fd3004c7e25240b2b07a931b76b757e5 |
+--------+----------------------------------+ - 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 - 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 bucket
En bucket opprettes som vanlig, med en lagringspolicy og LocationConstraint. I vårt eksempel velger vi europe-se-1 for å aktivere replikering hvis en policy som støtter dette er valgt.
$ aws s3api create-bucket \
--bucket $BACKUP_BUCKET \
--create-bucket-configuration LocationConstraint=europe-se-1 \
--object-lock-enabled-for-bucket
Konfigurer låsemekanisme
Lagringsmodusen er konfigurert til en av to varianter: COMPLIANCE eller GOVERNANCE. COMPLIANCE gir det høyeste sikkerhetsnivået, da selv administratorer ikke kan slette objekter innenfor den angitte tidsfristen, 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}}}'
Bekreft bucket
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 er lagret i bucket.
$ aws s3 cp tux.svg s3://$BACKUP_BUCKET
upload: ./tux.svg to s3://bup/tux.svg
Bekreft eksistensen av objektet
Sørg for at objektet returneres som det eneste objektet i butikken.
$ aws s3 ls $BACKUP_BUCKET
2024-04-10 12:31:11 49983 tux.svg
Deretter inspiserer vi metadataene som er lagret av API-et.
$ 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. Legg merke til VersionId som refererer til sikkerhetskopien.
$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg
{
"DeleteMarker": true,
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
}
Oppgi objektene i bøtta, enten som nedenfor eller ved hjelp av et annet grensesnitt, og objektet er ikke lenger der – objektet tux.svg ser ut til å ha blitt slettet. Ingenting returneres – ikke engang av API-et.
$ aws s3 ls $BACKUP_BUCKET
$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
"RequestCharged": null
}
Sikkerhetskopien er intakt
Men hvis versjonene av objektene er oppført, kan vi se at objektet fortsatt eksisterer. Det som skjedde da objektet ble slettet, var at det ble opprettet en DeleteMarker.
$ 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, blir filen gjenopprettet!
$ 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 gjerningsperson – selv med kunnskap om versjonshåndtering – skulle forsøke å slette sikkerhetskopien, ville forsøket mislykkes. Når tidsfristen er utløpt, kan versjonen slettes – men aldri før!
$ 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
Konklusjon: sikker skylagring av sikkerhetskopier
Dette eksemplet viser hvordan du kan lagre sikkerhetskopiene dine sikkert i Binero Clouds objektlagring og sikre at de forblir intakte selv om uautoriserte personer får tilgang til dem. Sikker skylagring – i verdensklasse!