Olemme kehittäneet oppaan Binero Cloud -asiakkaillemme varmuuskopioiden suojaamiseksi turvallisella pilvitallennustilalla. Tämä opas koskee kaikkia pilvipalvelun käyttäjiä, jotka haluavat varmistaa, että heidän varmuuskopiot eivät voi kadota vahingossa tai joutua vääriin käsiin. Oppaassa kuvataan ratkaisu, jossa käytetään Binero Cloudin objektitallennustilaa, joka on API-yhteensopiva AWS S3:n kanssa, turvallisen ja lukitun varmuuskopiointiympäristön luomiseksi.
Vertaa nykyistä kokoonpanoasi prosessiimme – ehkä voitte tehdä vielä jotain lisää varmuuskopioiden suojaamiseksi. Seuraa alla olevia ohjeita nähdäksesi, miten voit ottaa saman ratkaisun käyttöön ja parantaa tietojesi turvallisuutta.
Tausta
Asiakkaamme etsivät ratkaisua varmuuskopioiden turvalliseen säilyttämiseen. Vaatimuksena oli, että varmuuskopiot on suojattava niin, että niitä ei voi poistaa vahingossa tai että järjestelmään pääsevät henkilöt eivät voi poistaa niitä.
Turvallinen pilvitallennus objektitallennuksella Binero Cloudissa
Osana pyrkimystämme varmistaa asiakkaillemme aina turvallinen pilvitallennus, Binero Cloud tarjoaa AWS S3:n kanssa API-yhteensopivan objektitallennuksen. Tämä mahdollistaa objektien lukitsemisen. Toiminto edellyttää, että tiedostojen tallennuspaikka on konfiguroitu tätä varten.
Alla olevien vaiheiden avulla pystyimme varmistamaan, että pilvipalvelussa olevat tiedot olivat tallennettu turvallisesti – ja varmuuskopioissa oli ylimääräinen turva.
Esimerkki
Tässä on esimerkki siitä, miten poistetut kohteet jatkavat olemassaoloaan näkymättöminä käyttöliittymässä, eikä niitä voi poistaa ennen kuin määritetty määräaika on kulunut umpeen. Binero Cloudin kanssa vuorovaikutuksessa olevat komennot merkitään palauttamaan dataa JSON-muodossa jq-työkalun avulla.
Valmistelut
Luo todennustiedot
Todentamistiedot luodaan EC2-muodossa käytettäväksi aws-asiakasohjelmassa ja ne määritetään ympäristömuuttujiksi vuorovaikutusta varten objektivarastoon.
$ read -r AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY \
<<<$(jq -r '"\(.access) \(.secret)"' \
<(openstack ec2 credentials create -f json))
Lue API-osoite
Objektivaraston API-osoite haetaan Binero Cloudin palveluluettelosta. URL-osoitteen viimeinen osa poistetaan, koska se viittaa Swift-API:hin, joka ei ole ajankohtainen.
$ AWS_ENDPOINT_URL=$(openstack catalog list -f json \
| jq -r '.[] |select(.Type=="object-store") |.Endpoints[] |select(.interface=="public").url' \
| cut -d/ -f1-3)
Vie ympäristömuuttujat
Kaikki muuttujat ovat käytettävissä aws-asiakasohjelmalle, joka on oltava asennettuna. Myös bucket-nimi tallennetaan muuttujaan. Huomaa, että aws:ää käytetään vain asiakasohjelmana vuorovaikutuksessa S3:n kanssa Binero Cloudissa (AWS_ENDPOINT_URL – jossa kaikki tiedot tallennetaan).
$ export AWS_ENDPOINT_URL AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
$ export BACKUP_BUCKET=bup
Varmista valmistelut
Tulevaa manuaalista vuorovaikutusta tai automaatiota varten kolme AWS-spesifistä arvoa voidaan tallentaa tiedostojärjestelmään. Varmista, että tiedostojen käyttöoikeudet eivät ole avoimia. Tiedostojärjestelmän kokoonpanoa ei huomioida, jos aktiivinen ympäristö on määritetty oikein.
- Uppgifter i API:et
$ openstack ec2 credentials show $AWS_ACCESS_KEY_ID -c access -c secret
+--------+----------------------------------+
| Field | Value |
+--------+----------------------------------+
| access | d7855ef4cce44ec692c966e6cc10262d |
| secret | fd3004c7e25240b2b07a931b76b757e5 |
+--------+----------------------------------+ - Ympäristöön liittyvät tiedot:
$ 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 - Tiedot asiakkaassa
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile None None
access_key ****************262d env
secret_key ****************57e5 env
region None None
Luo bucket
Bucket luodaan tavalliseen tapaan tallennuskäytännöllä ja LocationConstraint-rajoituksella. Valitsemme esimerkissämme europe-se-1:n, jotta replikointi aktivoituu, jos sitä tukeva käytäntö on valittu.
$ aws s3api create-bucket \
--bucket $BACKUP_BUCKET \
--create-bucket-configuration LocationConstraint=europe-se-1 \
--object-lock-enabled-for-bucket
Konfigurointi lukitusmekanismi
Tallennustila voidaan määrittää kahteen eri vaihtoehtoon: COMPLIANCE tai GOVERNANCE. COMPLIANCE tarjoaa korkeimman turvallisuustason, sillä edes järjestelmänvalvojat eivät voi poistaa kohteita asetetun määräajan kuluessa, joka tässä tapauksessa on yksi vuorokausi.
$ aws s3api put-object-lock-configuration --bucket $BACKUP_BUCKET \
--object-lock-configuration '{"ObjectLockEnabled": "Enabled", "Rule": {"DefaultRetention": {"Mode": "COMPLIANCE", "Days": 1}}}'
Vahvista säiliö
Objektien lukitseminen perustuu objektien versiohallintaan.
Olemassaolo
$ aws s3api list-buckets | jq '.Buckets[] | select(.Name == env.BACKUP_BUCKET)'
{
"Name": "bup",
"CreationDate": "2024-04-10T10:28:18.146000+00:00"
}
Versiohallinta
$ jq .Status <(aws s3api get-bucket-versioning --bucket $BACKUP_BUCKET)
"Enabled"
Lataa tiedosto
Tiedosto tux.svg tallennetaan bucketiin.
$ aws s3 cp tux.svg s3://$BACKUP_BUCKET
upload: ./tux.svg to s3://bup/tux.svg
Vahvista objektin olemassaolo
Varmista, että objekti palautetaan ainoana objektina varastossa.
$ aws s3 ls $BACKUP_BUCKET
2024-04-10 12:31:11 49983 tux.svg
Sen jälkeen tarkastamme API:n tallentaman metadatan.
$ 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
}
Poista kohde
Kun objekti poistetaan, luodaan DeleteMarker. Objekti näyttää olevan poistettu, mutta on itse asiassa piilotettu. Huomaa VersionId, joka viittaa varmuuskopioon.
$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg
{
"DeleteMarker": true,
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
}
Luetteloida kohteet säiliössä, joko alla tai muussa rajapinnassa, niin kohdetta ei ole enää olemassa – kohde tux.svg on ilmeisesti poistettu. Mitään ei palauteta – ei myöskään API:sta.
$ aws s3 ls $BACKUP_BUCKET
$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
"RequestCharged": null
}
Varmuuskopio on ehjä
Jos objektien versiot sen sijaan on lueteltu, voimme nähdä, että objekti on edelleen olemassa. Objekti poistettaessa luotiin siis 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
}
Palauttaa poistetut kohteet
DeleteMarkerin hieno ominaisuus on, että jos se poistetaan, tiedosto palautuu!
$ 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 }
Jos tekijä yrittäisi poistaa varmuuskopion, vaikka hän tietäisi versioiden hallinnasta, yritys epäonnistuisi. Aikarajan umpeuduttua versio voidaan poistaa, mutta ei koskaan ennen sitä!
$ 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
Johtopäätös: varmuuskopioiden turvallinen pilvitallennus
Esimerkki osoittaa, kuinka varmuuskopiot voidaan tallentaa turvallisesti Binero Cloudin objektitallennustilaan ja varmistaa, että varmuuskopiot pysyvät ehjinä, vaikka niihin pääsisi käsiksi sivulliset. Turvallinen pilvitallennus – maailmanluokkaa!