Asiakaspuolen salauksen työkalut Allasta varten
Allas ei ole sertifioitu korkean tietoturvatason tallennusalusta, joten sitä ei tule käyttää sensitiivisen datan säilyttämiseen luettavassa muodossa. Sensitiivistä dataa voidaan kuitenkin tallentaa Altaaseen, jos se salataan asianmukaisesti ennen siirtoa oliotallennukseen.
Sensitiiviselle datalle suosittelemme yleensä SD Connect -palvelua, joka tarjoaa selain- ja komentorivikäyttöliittymät, jotka salaavat datan automaattisesti, kun se tallennetaan Altaaseen.
Jos et jostain syystä halua käyttää SD Connectia, alta löydät joitakin vaihtoehtoisia tapoja tallentaa sensitiivinen datasi Altaaseen. Kun käytät Allasta näiden salaustyökalujen kanssa, muista että:
-
Voit tallentaa salattua sensitiivistä dataa Altaaseen, mutta sen purkaminen on sallittua vain ympäristöissä, joiden tietoturvataso on riittävän korkea. Esimerkiksi CSC:n HPC-ympäristö (eli Puhti, Mahti, LUMI) ei ole ei riittävän turvallinen sensitiiviselle datalle.
-
Käytä riittävän vahvoja salaussalasanoja ja säilytä ne turvallisesti.
-
Jos unohdat salaussalasanan, data menetetään. CSC ei voi antaa sinulle uutta salasanaa datasi lukemiseen, koska salasanan olet asettanut sinä, ei CSC.
1. Yksittäisen tiedoston tai hakemiston salaaminen a-put-komennolla
Jos asennat allas-cli-utils -paketin käyttämääsi koneeseen, voit käyttää a-put-komentoa valinnalla --encrypt salataksesi tiedoston tai hakemiston, jonka haluat ladata Altaaseen. Voit käyttää joko symmetristä (eli salasanaan perustuvaa) salausta gpg-työkalulla tai epäsymmetristä avainpohjaista salausta crypt4gh-työkalulla. Gpg on saatavilla useimmissa Linux-järjestelmissä, kun taas crypt4gh ei ole yhtä laajasti käytössä, joten saatat joutua asentamaan sen paikalliseen järjestelmääsi, jos haluat käyttää epäsymmetristä salausta.
Huomaa, että oletuksena a-put luo ylimääräisen metadataolion, joka sisältää tietoa ladatuista tiedostoista. Kun valintaa --encrypt käytetään, varsinainen datasisältö salataan, mutta metadataolioita (_ameta-tiedostoja) ei salata. Tapauksissa, joissa tiedostonimiä ei tule tallentaa luettavassa muodossa, metadataolioiden luonti kannattaa poistaa käytöstä käyttämällä a-put-komentoa valinnalla --no-ameta.
Symmetrinen gpg-salaus
Symmetrinen gpg-salaus voidaan tehdä komennolla:
Kun valinta --encrypt gpg on käytössä, data salataangpg-komennolla käyttäen AES256-salausalgoritmia, jota pidetään yleisesti riittävän hyvänä sensitiiviselle datalle. Kun käynnistät komennon, se pyytää salaussalasanaa ja salasanan vahvistusta. Tässä lähestymistavassa vain tiedoston tai hakemiston sisältö salataan. Olion nimi ja metadata säilyvät ihmisen luettavassa muodossa.
Kun noudat datan a-get-komennolla, sinulta pyydetään salaussalasanaa, jotta olio voidaan purkaa latauksen jälkeen.
Epäsymmetrinen crypt4gh-salaus
Jos haluat käyttää epäsymmetristä crypt4gh-salausta, tarvitset julkisen avaimen tiedoston salausta varten ja salaisen avaimen tiedoston salauksen purkua varten.
Puhdissa sinun täytyy ensin ottaa crypt4gh käyttöön komennolla:
crypt4gh-työkalulla ja julkisella avaimella ja lataa sitten salatun datan Altaaseen. Huomaa, että et tarvitse salaista avainta salaamiseen. Voit toimittaa julkisen avaimen toiselle palvelimelle (ja toiselle käyttäjälle), jotta data voidaan ladata turvallisesti Altaaseen ulkoisesta turvallisesta sijainnista. Salaista avainta tarvitaan vain siinä ympäristössä, johon data ladataan Altaasta:
Yllä oleva komento lataa salatun olion Altaasta, pyytää salaisen avaimen salasanan ja purkaa sitten datan luettaviksi tiedostoiksi.
2. Salatun repositorion luominen rclonella
rclone:ssa on asiakaspuolen salausominaisuus, jonka avulla voit luoda salatun datarepositorion Altaaseen. Tässä lähestymistavassa sinun täytyy kerran määritellä salattu rclone-yhteys Altaaseen, ja kun tätä yhteyttä käytetään, kaikki siirrettävä data salataan automaattisesti. rclone:n automaattinen salaus perustuu Salsa20-virtasalaukseen. Salsa20 ei ole yhtä laajasti käytetty kuin AES256, mutta se on yksi niistä salaustyökaluista, joita eurooppalainen eSTREAM -projekti suositteli.
Tässä esimerkissä oletamme, että käytät palvelinta, johon on asennettu rclone ja allas-cli-utils. Ensin sinun täytyy määrittää tavallinen, salaamaton swift-yhteys Altaaseen. Tämä voidaan tehdä allas-conf-skriptillä, joka sisältyy allas-cli-utils-pakettiin:
Kun olet määrittänyt tavallisen swift-yhteyden Altaaseen, voit määrittää salatun ämpärin Allas-alueellesi. Aloita määritysprosessi suorittamalla komento rclone config.
allas-conf-skripti on jo luonut rclone-asetustiedoston, jossa rclone remote on nimetty allas.
Ensimmäisessä vaiheessa valitse vaihtoehto n luodaksesi new remote -määrityksen. Määritysprosessi kysyy nimeä uudelle rclone-remote:lle. Tässä tapauksessa uusi remote nimetään allas-crypt.
[kkayttaj@puhti-login11 ~]$ rclone config Current remotes: Name Type ==== ==== allas swift e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> n name> allas-crypt
Seuraavaksi määritysprosessi pyytää määrittämään tallennustyypin. Valitse vaihtoehto 10 Encrypt/Decrypt a remote.
Storage> 10
Seuraavassa vaiheessa sinun täytyy määritellä Allas-ämpäri, jota käytetään salatulle datalle. Ämpäriä määriteltäessä huomaa, että sinun täytyy määritellä sekä ämpäri että sijainti (eli rclone remote -yhteyden nimi), jossa ämpäri sijaitsee. Allaksen tapauksessa remoten nimi on allas:. Varsinaisen ämpärin nimen tulee olla yksilöllinen kaikkien Allas-käyttäjien kesken. Tässä tapauksessa käytämme määrittelyä allas:2001659-crypt, joka määrittää, että salattu data tallennetaan Altaaseen ämpäriin 2001659-crypt.
Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> allas:2001659-crypt
Seuraavaksi määritysprosessi kysyy, salataanko olioiden ja hakemistojen nimet. Tässä tapauksessa salaamme nimet, joten valitse 1 molemmissa tapauksissa.
Sen jälkeen sinun täytyy määritellä kaksi salasanaa: pääsalasana ja niin sanottu salt password. Tätä salasanaparia käytetään salaukseen. Voit määritellä nämä salasanat itse tai antaa määritysprosessin luoda ne. Joka tapauksessa säilytä käyttämäsi salasanat turvallisesti. Myös muut käyttäjät ja palvelimet saattavat tarvita niitä. Nyt määritys on valmis, ja uusi rclone-remote nimeltä allas-crypt on määritelty. Voit nyt poistua määritysprosessista.
Current remotes:
Name Type ==== ==== allas swift allas-crypt crypt e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q>q
Nyt repositorio on valmis käytettäväksi. Oletetaan, että sinulla on hakemisto nimeltä job_6, joka sisältää joitakin tiedostoja ja hakemistoja:
[kkayttaj@puhti-login11 ~]$ ls job_6 hello.xrsl results results.1601291937.71 runhello.sh
Voit nyt ladata tämän hakemiston sisällön salattuun ämpäriin.
Data on nyt kopioitu Altaaseen, ja voit tarkistaa ladatut tiedostot komennolla:rclone ls allas-crypt:job_6
77 runhello.sh
11 results.1601291937.71/std.out
86 results.1601291937.71/std.err
117 hello.xrsl
11 results/std.out
86 results/std.err
allas-crypt remote muuntaa datan salatusta ämpäristä (allas:2001659-crypt) automaattisesti luettavaan muotoon. Jos kuitenkin tarkastelet salatun ämpärin sisältöä suoraan, näet, että sekä olioiden nimet että tallennettu data ovat salatussa muodossa:
[kkayttaj@puhti-login11 ~]$ rclone ls allas:2001659-crypt
125 4lpbj55pc5v8t119q0tp2o6k58/36sb832och3tde30k9nlks3dpo
59 4lpbj55pc5v8t119q0tp2o6k58/90alcaodph3386197agf252t5b97f144n88e99m9ire5tcpqu380/flqitnrsrc8iloggbc4ouagukg
134 4lpbj55pc5v8t119q0tp2o6k58/90alcaodph3386197agf252t5b97f144n88e99m9ire5tcpqu380/gvie6dv3s50v32qptl30960me4
405 4lpbj55pc5v8t119q0tp2o6k58/a6rlk2hr489roehagfu6iest38
165 4lpbj55pc5v8t119q0tp2o6k58/kmqnruv14agevg6okod0io2fl0
59 4lpbj55pc5v8t119q0tp2o6k58/o515vd0l1bp270v7gdc7m3tpbo/flqitnrsrc8iloggbc4ouagukg
134 4lpbj55pc5v8t119q0tp2o6k58/o515vd0l1bp270v7gdc7m3tpbo/gvie6dv3s50v32qptl30960me4
352 4lpbj55pc5v8t119q0tp2o6k58/p87n5ins7g0hvfh06r6o6a91n0
Vastaavasti komento:
lataisi ja purkaisi salauksen tiedostosta hello.xrsl Altaasta paikalliselle levylle.Allas-yhteyksien asetukset tallennetaan oletuksena rclonen asetustiedostoon polussa $HOME/.config/rclone/rclone.conf
Tässä tapauksessa asetustiedoston allas-crypt-määrittelyosa voisi näyttää tältä:
[allas-crypt]
type = crypt
remote = allas:2001659-crypt
filename_encryption = standard
directory_name_encryption = true
password = A_JhQdTOEIx0ajyWb1gCvD2z0gBrEVzy41s
password2 = UgmByNqlnb8vCZrFgpaBtUaQrgJkx30
Tietoturvan parantamiseksi rclone-asetustiedosto voidaan salata. Tämä voidaan tehdä suorittamalla rclone conf -komento uudelleen.
Valitse tässä tapauksessa s siirtyäksesi kohtaan Set configuration password ja sitten a lisätäksesi salasanan. Salasanan asettamisella on kaksi vaikutusta:
rclone-asetustiedosto muunnetaan salattuun muotoon- Joka kerta kun suoritat
rclone-komennon, sinun täytyy antaa asetustiedoston salasana, jottarclonevoi lukea asetukset.
Toinen ominaisuus voi olla melko häiritsevä, erityisesti jos käytät enimmäkseen tavallista, salaamatonta Allas-yhteyttä. Tämän vuoksi voi olla järkevämpää luoda erillinen rclonen asetustiedosto salattua Allas-käyttöä varten ja määritellä sitten tarvittaessa salatun asetustiedoston käyttö rclonen valinnalla --config.
Esimerkiksi:
Tee kopio olemassa olevasta rclone-asetustiedostosta (ennen kuin määrittelet yllä kuvatun salatun yhteyden).
rclone config -komento lisätäksesi tiedot salatusta Allas-ämpäristä ja salataksesi asetustiedoston. Voit tehdä molemmat vaiheet yhdessä rclone config -istunnossa.
Asetustiedoston salausavaimen voi ja kannattaa olla henkilökohtainen.
Nyt voit käyttää suojattua asetustiedostoasi rclone-komennon kanssa. Esimerkiksi:
Restic - varmuuskopiointityökalu, joka sisältää salauksen
Restic on varmuuskopiointiohjelma, joka voi käyttää Allasta varmuuskopioidun datan tallennustilana. Sen sijaan, että data tuotaisiin suoraan, restic tallentaa datan hajautuskokoelmana. Tämä ominaisuus mahdollistaa sellaisten aineistojen tehokkaan tallennuksen, joissa on pieniä muutoksia. Näin aineiston eri versioita voidaan tallentaa siten, että uuden aineistoversion tapauksessa tarvitsee tallentaa vain muutokset edelliseen versioon verrattuna. Tämä lähestymistapa mahdollistaa myös sen, että voidaan palauttaa paitsi uusin versio myös aiemmat versiot varmuuskopioidusta datasta.
Hajautuksen lisäksi restic salaa datan käyttäen AES256-salausta. Allas-kohtainen varmuuskopiointityökalu allas-backup (saatavilla Puhdissa ja Mahdissa) perustuu restic:iin, mutta se käyttää kiinteää ennalta määriteltyä salaussalasanaa, joten sitä ei tule käyttää, jos vaaditaan korkeaa tietoturvatasoa. Näissä tapauksissa voit käyttää restic-työkalua suoraan.
Jotta voit käyttää Allasta restic-työkalun tallennuspaikkana, avaa ensin yhteys Altaaseen. Kun alat käyttää restic-työkalua ensimmäistä kertaa, sinun täytyy perustaa restic-repositorio.
Repositorion määrittely sisältää protokollan (swift tässä tapauksessa), sijainnin, joka Allaksen tapauksessa on ämpärin nimi, sekä etuliitteen tallennetuille dataolioille. Esimerkiksi:
restic init --repo swift:123_restic:/backup enter password for new repository: ************ enter password again: ************ created restic repository a70df2ced1 at swift:123_restic:/backup Please note that knowledge of your password is required to access the repository. Losing your password means that your data is irrecoverably lost.
Alustusprosessi pyytää repositoriolle salaussalasanan.
Nyt voit varmuuskopioida tiedoston tai hakemiston Restic-repositorioon Altaassa. Alla olevassa esimerkissä hakemisto my_data varmuuskopioidaan.
restic backup --repo swift:123_restic:/backup my_data/ enter password for repository: ************ repository a70df2ce opened successfully, password is correct created new cache in /users/kkayttaj/.cache/restic Files: 258 new, 0 changed, 0 unmodified Dirs: 0 new, 0 changed, 0 unmodified Added to the repo: 2.018 MiB processed 258 files, 2.027 MiB in 0:00 snapshot a706c054 saved
Kun yhtä tiedostoa hakemistossa my_data on muokattu, teemme toisen varmuuskopion:
restic backup --repo swift:123_restic:/backup my_data/ enter password for repository: ************ repository a70df2ce opened successfully, password is correct Files: 0 new, 1 changed, 257 unmodified Dirs: 0 new, 0 changed, 0 unmodified Added to the repo: 1.154 KiB processed 258 files, 2.027 MiB in 0:00 snapshot e3b46fe2 saved
Komennolla restic sanpshots voimme nähdä, että meillä on kaksi versiota my_data-hakemistosta varmuuskopiorepositoriossa:
restic snapshots --repo swift:123_restic:/backup enter password for repository: ************ repository a70df2ce opened successfully, password is correct ID Time Host Tags Paths ------------------------------------------------------------------------------------------- a706c054 2021-02-12 14:43:03 r07c52.bullx /run/nvme/job_4891841/data/my_data e3b46fe2 2021-02-12 14:47:18 r07c52.bullx /run/nvme/job_4891841/data/my_data ------------------------------------------------------------------------------------------- 2 snapshots
Jos haluaisimme palauttaa ensimmäisen version, voisimme ladata sen snapshot-tunnisteella ja komennolla restic restore.
restic restore --repo swift:123_restic:/backup a706c054 --target ./ enter password for repository: ************ repository a70df2ce opened successfully, password is correct found 3 old cache directories in /users/kkmattil/.cache/restic, run `restic cache --cleanup` to remove them restoringto ./
Varsinainen data tallennetaan salattuina hajautusolioina, joita muut Allas-työkalut eivät voi käyttää. Esimerkiksi data, jonka restic tallensi ämpäriin
123_restic yllä olevassa esimerkissä, näyttää alla olevalta, kun se listataan rclone-komennolla:
rclone ls allas:123_restic
155 backup/config
1349 backup/data/26/263a8a412486d0fe6278ec1992c3b2dc64352041ca4236de0ddab07a30e7f725
2133179 backup/data/46/4643d0d98ef90363629561828a3c113c2ca1acbdefcd3ef0f548724501c1e8f3
108646 backup/data/77/77f36c6b6f7b346010d76e6709c8e3e4a61a7bc25dce4ffee726fe2a9b208e48
895 backup/data/b7/b757b4f8b370a3f7199d717128f8bcb90139c589b761d2d6e683cbb3943c32e9
550 backup/index/3b824311bf222eb9131e83dc22b76ee1686a41deff8db73912a6ec4b58ec7c9c
32326 backup/index/9e7e8858bc9e8cdcd96f7020ad9f1246629e3a80b2008c1debec30ac21c2b717
458 backup/keys/9f47c0adcdaa29d1e89eab4763fbcf9269c834b6590b45fd9a0ac079e2ee483e
272 backup/snapshots/a706c054a77edba31337669ebd851c80f34dfbc3ca92255dee1ff0c0cad8cedf
348 backup/snapshots/e3b46fe293fae187a53296f8cde25f7aec9f896e4586d96ac4df78ba27cdd911