Asiakaspuolen salaustyökalut Allakselle
Allasta ei ole sertifioitu korkeatasoiseksi turvallisuusalustaksi, joten sitä ei pidä käyttää luottamuksellisen datan tallentamiseen luettavassa muodossa. Kuitenkin, jos luottamuksellinen data salataan asianmukaisesti ennen sen siirtämistä objektivarastoon, sitä voidaan tallentaa Allakseen.
Luottamuksellisen datan osalta suosittelemme yleensä SD Connect -palvelua, joka tarjoaa verkkokäyttöliittymiä ja komentorivitoimintoja, jotka salaavat datan automaattisesti sen tallennuksen yhteydessä Allakseen.
Jos jostain syystä et halua käyttää SD Connectia, alla on joitain vaihtoehtoisia lähestymistapoja luottamuksellisen datasi tallentamiseen Allakseen. Kun käytät Allasta näiden salausvälineiden kanssa, muista, että:
-
Voit tallentaa salattua luottamuksellista dataa Allakseen, mutta sen purkaminen on sallittua vain riittävän turvallisissa ympäristöissä. Esimerkiksi CSC:n HPC-ympäristö (eli Puhti, Mahti, LUMI) ei ole tarpeeksi turvallinen luottamukselliselle datalle.
-
Käytä tarpeeksi vahvoja salasanastoja salaukseen ja säilytä ne turvassa.
-
Jos unohdat salasanan, data on menetetty. CSC ei voi antaa sinulle uutta salasanaa datasi lukemiseen, koska salasana on määritetty sinun eikä CSC:n toimesta.
1. Yksittäisen tiedoston tai hakemiston salaaminen a-put
:lla
Jos asennat allas-cli-utils koneeseen, jota käytät, voit käyttää a-put
:ia vaihtoehdolla --encrypt salataksesi tiedoston tai hakemiston, jonka haluat ladata Allakseen. Voit käyttää joko symmetristä (eli salasanan) salausta gpg avulla tai epäsymmetristä avainpohjaista salausta crypt4gh avulla. Gpg on saatavilla useimmissa linux-järjestelmissä, kun taas crypt4gh ei ole niin laajalti 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 lisämetatiedosto-objektin, joka sisältää tietoa ladatuista tiedostoista. Kun --encrypt vaihtoehtoa käytetään, varsinainen datasisältö salataan, mutta metatieto-objekteja (_ameta tiedostot) ei salata. Jos tiedostonimiä ei tule tallentaa luettavassa muodossa, metatieto-objektien luonti tulisi kytkeä pois päältä käyttämällä a-put
:ia vaihtoehdolla --no-ameta.
Symmetrinen gpg-salaus
Symmetrinen gpg-salaus voidaan suorittaa komennolla:
Kun vaihtoehto --encrypt gpg on käytössä, data salataan gpg
-komennolla käyttämällä AES256 salausalgoritmia, jota yleensä pidetään riittävän hyvänä luottamukselliselle datalle. Kun suoritat komennon, se kysyy salaus salasanaa ja salasana varmistusta. Tässä lähestymistavassa vain tiedoston tai hakemiston sisältö salataan. Objektin nimi ja metatiedot jäävät ihmisen luettavaan muotoon.
Kun haet dataa a-get
:lla, sinulta kysytään salaus salasanaa, jotta objekti voidaan purkaa latauksen jälkeen.
Epäsymmetrinen crypt4gh-salaus
Jos haluat käyttää epäsymmetristä crypt4gh
-salausta, sinulla on oltava julkinen avaintiedosto salausta varten ja salainen avaintiedosto purkamista varten.
Puhtissa sinun täytyy ensin tehdä crypt4gh
käytettäväksi komennolla:
crypt4gh
:ta ja julkista avainta ja sitten lataa salatun datan Allakseen. Huomaa, että salaus ei tarvitse salaisuutta avainta. Voit toimittaa julkisen avaimen toiselle palvelimelle (ja toiselle käyttäjälle) niin, että data voidaan turvallisesti ladata Allakseen ulkoisesta turvallisesta sijainnista. Salainen avain tarvitaan vain ympäristössä, johon data ladataan alas Allaksesta:
Yllä oleva komento lataa salatun objektin Allaksesta, kysyy salaisen avaimen salasanaa ja purkaa sitten datan luettavaan muotoon.
2. Salausarkiston luominen rclone:lla
rclone
:lla on asiakaspuolen salausominaisuus, joka mahdollistaa salatun data-arkiston luomisen Allakseen. Tässä lähestymistavassa sinun on ensin määritettävä salattu rclone
-yhteys Allakseen, ja kun tätä yhteyttä käytetään, kaikki siirrettävä data salataan automaattisesti. rclone
:n automaattinen salaus perustuu Salsa20 suoravirta-salaimeen. Salsa20 ei ole yhtä laajalti käytetty kuin AES256, mutta se on yksi niistä salausvälineistä, joita Euroopan eSTREAM projekti on suositellut.
Tässä esimerkissä oletetaan, että käytät palvelinta, jossa sinulla on rclone ja allas-cli-utils asennettu. Ensimmäinen tehtäväsi on määrittää normaali, salaamaton Swift-yhteys Allakseen. Tämä voidaan tehdä allas-cli-utils pakettiin sisältyvällä allas-conf
skriptillä:
Kun olet määrittänyt normaalin Swift-yhdyskäytävän Allakseen, voit määrittää salatun säiliön Allas-alueellesi. Alkaaksesi määritysprosessin, suorita komento rclone config
.
allas-conf
skripti on jo luonut rclone
-määritystiedoston, jossa rclone remote
on nimetty allas.
Ensimmäisenä vaiheena valitse vaihtoehto: n luodaksesi uuden remote:n. Määritysprosessi pyytää nimeämään uuden rclone remote:n. Tässä tapauksessa uusi remote nimetään allas-crypt:ksi.
[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 kysyy, määritätkö tallennustyypin. Valitse vaihtoehto 10 Encrypt/Decrypt a remote.
Storage> 10
Seuraavassa vaiheessa sinun pitää määrittää Allaksen säiliö, jota käytetään salattua dataa varten. Kun määrität säiliön, huomaa, että sinun on määritettävä sekä säiliö että sivusto (eli rclone-yhteyden nimi), jossa säiliö sijaitsee. Allaksen tapauksessa etäyhteyden nimi on allas:. Varsinainen säiliön nimi tulee olla ainutlaatuinen kaikkien Allas-käyttäjien kesken. Tässä tapauksessa käytämme määritelmää allas:2001659-crypt, joka määrittelee, että salattu data tallennetaan Allakseen säiliöön 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 objektien ja hakemistojen nimet. Tässä tapauksessa salaa nimet, joten valitset 1 molemmissa tapauksissa.
Tämän jälkeen sinun täytyy määritellä kaksi salasanaa: pääsalisana ja niin sanottu suola_salasana. Tätä salasanojen paria käytetään salaukseen. Voit määrittää nämä salasanat itse tai antaa määritysprosessin luoda ne. Joka tapauksessa säilytä käytetyt salasanat turvallisesti. Muut käyttäjät ja palvelimet saattavat tarvita niitä myös. Nyt asetus on valmis ja rclone remote
:lle on määritelty uusi etäyhteys nimeltä _allas-crypt. Voit nyt sulkea määritysprosessin.
Nykyiset etäyhteydet:
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 arkisto on valmis käytettäväksi. Sanotaan, että sinulla on hakemisto nimeltä job_6, joka sisältää joitain 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 säiliöön.
Data on nyt kopioitu Allakseen 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
kääntää datan salatusta säiliöstä (allas:2001659-crypt) automaattisesti luettavaan muotoon. Jos kuitenkin tutkit suoraan salatun säiliön sisältöä, huomaat, että objektin nimet sekä 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:
Lataa ja purkaa salatun hello.xrsl-tiedoston Allaksesta paikalliselle levylle.Allas-yhteyksien määritykset tallennetaan oletuksena rclone-määritystiedostoon $HOME/.config/rclone/rclone.conf
-hakemistoon.
Tässä tapauksessa allas-crypt määrittävä osa määritystiedostossa 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
Turvallisuuden parantamiseksi rclone
-määritystiedosto voidaan salata. Tämä voidaan tehdä suorittamalla rclone conf
-komento uudelleen. Tässä tapauksessa valitse s siirtyäksesi Set configuration password -kohtaan ja sitten a lisätäksesi salasanan. Salasanan asettamisella on kaksi vaikutusta:
rclone
-määritystiedosto muunnetaan salattuun muotoon.- Jokaisella
rclone
-komennolla, sinun on annettava määritystiedoston salasana, jottarclone
voi lukea asetukset.
Toinen ominaisuus voi olla melko ärsyttävää, erityisesti jos käytät pääasiassa normaalia, salaamatonta Allas-yhteyttä. Tästä syystä voi olla järkevämpää luoda erillinen rclone-määritystiedosto salattua Allas-käyttöä varten ja sitten, kun salausta tarvitaan, määritellä salatun määritystiedoston käyttö rclone-vaihtoehdolla --config.
Esimerkiksi:
Tee kopio olemassa olevasta rclone
-määritystiedostosta (ennen kuin määrität yllä kuvatun salatun yhteyden).
rclone config
-komento lisätäksesi salatulle Allas-säiliölle määritystiedot ja sitten salataksesi määritystiedoston. Voit tehdä molemmat vaiheet yhdessä rclone config
-sessiossa.
Määritystiedoston salausavain voi ja sen tulee olla henkilökohtainen.
Nyt voit käyttää suojattua määritystiedostoasi 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 tuodaan suoraan, restic
tallentaa datan hash-kokoelmina. Tämä ominaisuus mahdollistaa datasetien tehokkaan tallennuksen, jotka sisältävät pieniä muutoksia. Näin datasetin eri versiot voidaan tallentaa niin, että uuden datasetin version myötä vain muutokset edelliseen versioon verrattuna on tallennettava. Tämä lähestymistapa mahdollistaa myös aiempien versioiden hakemisen, ei vain uusimman version.
Hashauksen lisäksi restic
salaa datan käyttääen AES256-salainta. Allas-spesifi varmuuskopiointityökalu, allas-backup
(saatavilla Puhtissa ja Mahtissa) perustuu restic
:iin, mutta käyttää kiinteää, ennalta määriteltyä salasanointia, jota ei tule käyttää, jos korkeaa turvallisuustasoa vaaditaan. Tällaisissa tapauksissa voit käyttää restic
:ia suoraan.
Käyttääksesi Allasta restic
:in tallennuspaikkana, avaa ensin yhteys Allakseen. Kun aloitat restic
:in käytön ensimmäistä kertaa, sinun täytyy määrittää restic
-arkisto.
Arkiston määrittely sisältää protokollan (swift
tässä tapauksessa), sijainnin, joka on säiliön nimi Allaksen tapauksessa, ja ennakkomäärityksen tallennetuille dataobjekteille. 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.
Alustamisprosessi kysyy salasanointia arkistoon.
Nyt voit varmuuskopioida tiedoston tai hakemiston Restic-arkistoon Allaksessa. Alla olevassa esimerkissä hakemisto my_data on varmuuskopioitu.
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
Muokattuasi yhtä tiedostoa my_data hakemistossa 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 snapshots
voimme nähdä, että meillä on kaksi versiota my_data:sta varmuuskopioarkistossa:
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-id:llä 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 hash-objekteina, jotka ovat käytettävissä muille Allas-työkaluille. Esimerkiksi data, joka tallennettiin restic
:lla säiliöön
123_restic yllä olevassa esimerkissä näyttää tältä, kun se listataan rclone
:lla:
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