Olemme kehittäneet oppaan Binero Cloud -asiakkaillemme, jonka avulla he voivat suojata varmuuskopionsa turvallisella cloud-tallennustilalla. Tämä opas koskee kaikkia cloudin käyttäjiä, jotka haluavat varmistaa, etteivät heidän varmuuskopionsa voi poistua vahingossa tai valtuuttamattomien henkilöiden toimesta. Oppaassa kuvaamme ratkaisun, joka käyttää Binero Cloudin objektitallennustilaa, joka on API-yhteensopiva AWS S3:n kanssa, luodakseen turvallisen ja lukitun varmuuskopioympäristön.
Vertaa nykyistä asetustasi prosessiimme – saatat pystyä tekemään vielä enemmän suojataksesi varmuuskopiosi. Seuraa alla olevia vaiheita nähdäksesi, kuinka voit toteuttaa saman ratkaisun ja lisätä tietojesi turvallisuutta.
Taustaa
Asiakkaamme etsivät ratkaisua varmuuskopioidensa turvalliseen tallentamiseen. Ehto oli, että varmuuskopiot oli suojattava siten, ettei niitä voitu poistaa vahingossa tai valtuuttamattomien henkilöiden toimesta, jotka saisivat järjestelmään pääsyn.
Turvallinen cloud-tallennustila objektitallennustilalla Binero Cloudissa
Osana tavoitettamme varmistaa aina asiakkaidemme turvallinen cloud-tallennustila tarjoaa Binero Cloud objektitallennustilan, joka on API-yhteensopiva AWS S3:n kanssa. Tämä mahdollistaa objektien lukitsemisen. Toiminto edellyttää, että tynnyri, johon tiedostot tallennetaan, on konfiguroitu tätä varten.
Seuraamalla alla olevia vaiheita pystyimme varmistamaan, että pilvessä olevat tiedot tallennettiin turvallisesti – lisäturvalla varmuuskopioissa.
Esimerkki
Tässä on esimerkki siitä, miten poistettuja objekteja säilyy, vaikka ne eivät ole näkyvissä rajapinnassa, eikä niitä voi poistaa ennen asetetun aikarajan umpeutumista. Binero Cloudin kanssa vuorovaikutuksessa olevat komennot on merkitty palauttamaan tiedot JSON-muodossa käyttämällä jq-työkalua.
Valmistelut
Autentikointitunnistetietojen luominen
Autentikointitunnistetiedot luodaan EC2-muotoisina AWS-asiakasohjelman käyttöä varten ja määritetään ympäristömuuttujiin vuorovaikutusta varten objektitallennuksen kanssa.
$ read -r AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
<<<$(jq -r '"\\(.access)\\ \\(.secret)"'
<(openstack ec2 credentials create -f json))
Lue API-osoite
Objektitallennuksen API-osoite haetaan Binero Cloudin palveluluettelosta. URL-osoitteen viimeinen osa poistetaan, koska se osoittaa Swift API:hin, joka ei ole relevantti.
$ AWS_ENDPOINT_URL=$(openstack catalog list -f json
| jq -r '.[] |select(.Type=="object-store") |.Endpoints[] |select(.interface=="public").url'
| cut -d/ -f1-3)
Exportoi ympäristömuuttujat
Kaikki muuttujat tehdään saataville AWS asiakasohjelmalle, joka tulee olla asennettuna. Tynnyrin nimi tallennetaan myös muuttujaan. Huomaa, että AWS:ää käytetään vain asiakkaana vuorovaikutukseen S3:n kanssa Binero Cloudissa (AWS_ENDPOINT_URL - missä kaikki data tallennetaan).
$ export AWS_ENDPOINT_URL AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
$ export BACKUP_BUCKET=bup
Tarkista valmistelut
Tulevaa manuaalista vuorovaikutusta tai automatisointia varten kolme AWS-spesifistä arvoa voidaan tallentaa tiedostojärjestelmään. Varmista, ettei tiedostojen käyttöoikeudet ole avoimet. Tiedostojärjestelmän konfiguraatiota ei oteta huomioon, jos aktiivinen ympäristö on konfiguroitu oikein.
-
Tietoa API:sta
$ openstack ec2 credentials show $AWS_ACCESS_KEY_ID -c access -c secret
+--------+----------------------------------+
| Field | Value |
+--------+----------------------------------+
| access | d7855ef4cce44ec692c966e6cc10262d |
| secret | fd3004c7e25240b2b07a931b76b757e5 |
+--------+----------------------------------+ -
Tietoa ympäristöstä:
$ 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 -
Tietoa asiakkaalta
$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile None None
access_key ****************262d env
secret_key ****************57e5 env
region None None
Luo tynnyri
Tynnyri luodaan kuten tavallisesti, ja sille määritetään tallennuskäytäntö ja LocationConstraint. Esimerkissämme valitsemme europe-se-1 mahdollistamaan replikaation, jos käytössä on sitä tukevat käytännöt.
$ aws s3api create-bucket
--bucket $BACKUP_BUCKET
--create-bucket-configuration LocationConstraint=europe-se-1
--object-lock-enabled-for-bucket
Konfiguroi lukitusmekanismi
Tallennustila on konfiguroitu kahdesta vaihtoehdosta toiseen: COMPLIANCE tai GOVERNANCE. COMPLIANCE tarjoaa korkeamman turvallisuustason, koska edes ylläpitäjät eivät voi poistaa objekteja asetettuun aikarajaan mennessä tässä tapauksessa alle 24 tunnin sisällä.
$ aws s3api put-object-lock-configuration --bucket $BACKUP_BUCKET
--object-lock-configuration '{"ObjectLockEnabled": "Enabled", "Rule": {"DefaultRetention": {"Mode": "COMPLIANCE", "Days": 1}}}'
Tarkista tynnyri
Objektien lukitusmahdollisuus perustuu objektien versiohallintaan.
Existenssi
$ 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 tynnyriin.
$ aws s3 cp tux.svg s3://$BACKUP_BUCKET
upload: ./tux.svg to s3://bup/tux.svg
Tarkista objektin olemassaolo
Varmista, että objekti palautetaan ainoana objektina tallennuspaikassa.
$ aws s3 ls $BACKUP_BUCKET
2024-04-10 12:31:11 49983 tux.svg
Tarkastelemme sitten API:n tallentamia metatietoja.
$ 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 kohteita
Kun objekti poistetaan, luodaan DeleteMarker. Objekti näyttää poistuneen, mutta on todellisuudessa piilotettu. Huomaa VersionId, joka viittaa varmuuskopioon.
$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg
{
"DeleteMarker": true,
"VersionId": "mc-Yai46SHaLrf4xqeJGgT1.3ry6bUZ"
}
Listaa tynnyrin objektit, joko alla kuten tai muulla käyttöliittymällä, ja objekti ei ole enää näkyvissä – objekti tux.svg näyttää siltä kuin se olisi poistettu. Ei mitään palauteta – ei edes API:n kautta.
$ aws s3 ls $BACKUP_BUCKET
$ aws s3api list-objects --bucket $BACKUP_BUCKET
{
"RequestCharged": null
}
Varmuuskopio on ehjä
Kuitenkin, jos objekteiden versiot listataan, nähdään, että objekti yhä on olemassa. Mitä tapahtui poistettaessa objektia, oli että DeleteMarker luotiin.
$ 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
}
Palauta poistetut kohteet
Ticketerästä on fiksua, että jos DeleteMarker 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ä – vaikka versiohallinnan tiedolla – yrittäisi poistaa varmuuskopion, yritys epäonnistuisi. Aikarajan umpeuduttua versio voidaan poistaa – mutta ei koskaan aiemmin!
$ aws s3api delete-object --bucket $BACKUP_BUCKET --key tux.svg --version-id "\\-IrCCqAYQt5ySttlBnI6VEw2jpw6f2\\." Virhe tapahtui (AccessDenied) kutsuttaessa
DeleteObject-operaatiota: objektilukitus estää
Yhteenveto: turvallinen cloud-tallennus varmuuskopioille
Tämä esimerkki näyttää, kuinka voit turvallisesti tallentaa varmuuskopiosi Binero Cloudin objektitallennustilaan ja varmistaa, että ne pysyvät ehjinä, vaikka valtuuttamattomat henkilöt saisivat niihin pääsyn. Turvallinen cloud-tallennustila – maailmanluokkaa!


