Tworzenie szyfrowanego wolumenu
Istnieje możliwość utworzenia szyfrowanego wolumenu w usłudze Atman Cloud. Taki wolumen jest szyfrowany za pomocą specyfikacji LUKS (Linux Unified Key Setup) oraz jest zabezpieczony 256 bitowym kluczem szyfrującym, który jest generowany automatycznie w momencie tworzenia. Aby móc szyfrować wolumeny, musimy posiadać dodatkowe uprawnienia. W tym celu należy skontaktować się z Atman Service Desk servicedesk@atman.pl.
Tworzenie szyfrowanego wolumenu z panelu Horizon
Tworzenie zaszyfrowanego wolumenu z panelu Horizon
Tworzenie wolumenu za pomocą panelu Horizon odbywa się z zakładki Volumes -> Volumes -> Create Volume.
Po naciśnięciu opcji tworzenia wolumenu, musimy wybrać typ (Type) LUKS z odpowiednią liczbą IOPS, tak jak pokazane na obrazku poniżej. Resztę parametrów wybieramy zgodnie z naszymi preferencjami. Należy pamiętać, iż obowiązują nas obostrzenia quoty projektowej.
Tworzenie zaszyfrowanego wolumenu z CLI
Tworzenie zaszyfrowanego wolumenu
openstack volume create --size <rozmiar_w_GB> --type LUKS 'zaszyfrowany_wolumen'
Podmontowywanie wolumenu do instancji
openstack server add volume <uuid_instancji> 'zaszyfrowany_wolumen'
Tworzenie zaszyfrowanego, systemowego (bootowalnego) wolumenu z wolumenu niezaszyfrowanego
Tworzenie obrazu z niezaszyfrowanego wolumenu
W zakładce Volumes -> Volumes, z wcześniej przygotowanego wolumenu wybieramy opcję Upload to Image
Utworzenie wolumenu szyfrowanego z wcześniej przygotowanego obrazu
W zakładce Compute -> Images, z wcześniej przygotowanego obrazu wybieramy opcję Create Volume. W tym momencie musimy wybrać typ szyfrowany (np. LUKS_2000iops) w polu Type
Utworzenie instancji ze startowym, zaszyfrowanym wolumenem
W zakładce Volumes -> Volumes wybieramy tak przygotowany wolumen, a następnie w opcjach tego wolumenu wybieramy opcję Launch as Instance
Następnie należy odczekać, aż instancja zostanie wykreowana i będzie w stanie Active/Running.
Uwagi i znane problemy związane z szyfrowaniem
Pomimo tego, iż zespół Atman Cloud dba o to, by usługa szyfrowania spełniała wszystkie wymagania klientów, znane są poniższe problemy i ograniczenia:
Tworzenie instancji z zaszyfrowanego wolumenu (punkt opisany powyżej), może zakończyć się tym, iż instancja przejdzie w stan ERROR i nie będzie można z niej korzystać. Aby temu zapobiec należy ponownie wykreować wolumen zaszyfrowany z obrazu i ponowić kreowanie instancji. Konwersja wolumenu niezaszyfrowanego do zaszyfrowanego wolumenu(punkt opisany poniżej, przez tzw. opcję retype) nie działa prawidłowo. Jest to spowodowane bug’iem w funkcjonalności: https://bugs.launchpad.net/nova/+bug/1925818 Z powodu ograniczenia w kooperacji pomiędzy usługą Barbican a Novą (a konkretniej LUKSem), nie ma możliwości podmiany klucza szyfrującego. Taki wolumen należy odszyfrować, sprawdzić czy działa i następnie zaszyfrować ponownie, a potem dołączyć do instancji. Konwersja wolumenu do zaszyfrowanego wolumenu z panelu Horizon(Uwaga: chwilowo funkcja niedostępna)
Niekiedy może pojawić się potrzeba przekonwertowania wolumenu, który do tej pory był niezaszyfrowany, na wolumen zaszyfrowany. Aby wykonać taką konwersję, muszą być spełnione poniższe warunki:
wolumen musi być w statusie Available
użytkownik musi posiadać rolę kreator, która umożliwia kreowanie zaszyfrowanych wolumenów
użytkownik posiada dostęp do zaszyfrowanego typu wolumenu (volume type: encrypted True)
tzw. root wolumen może być zaszyfrowany jedynie przez administratorów Atman Cloud - w wypadku takiej prośby należy się z tym zwrócić poprzez ServiceDesk
Wybór odpowiedniego wolumenu do konwersji
Wybieramy odpowiedni wolumen w zakładce Volumes -> Volumes . Następnie w kolumnie Actions, wybieramy Change Volume Type
Konwersja wolumenu
W nowo otwartym oknie (przykład powyżej) wybieramy odpowiedni typ (Type), adekwatny dla typu zaszyfrowanego. Następnie wybieramy odpowiednie Migration Policy „On Demand” i potwierdzamy przyciskiem Change Volume Type.
Gdy proces zmiany typu zostanie zakończony (operacja jest czasochłonna, może trwać nawet kilka godzin, jeżeli wolumen jest większy niż 1TB), możemy podmontować wolumen do instancji.
Pobranie oraz odczyt klucza szyfrującego wolumenu (CLI)
Istnieje możliwość uzyskania klucza i przekonwertowanie go do hasła (passphrase), które jest używane przez LUKS do szyfrowania naszego wolumenu. Zapisanie takiego hasła, w bezpiecznym miejscu, jest standardową procedurą bezpieczeństwa. Rekomendowane jest pobranie tego klucza i przechowywanie go w bezpiecznym, niezależnym od Atman Cloud środowisku, na wypadek tzw. Disaster Recovery. Poniższa procedura jest możliwa jedynie za pomocą CLI i wymaga posiadania openstack/barbican CLI napisanego za pomocą python w wersji trzeciej (jest to wersja odpowiadająca OpenStack w wersji Ussuri)
Odczytanie interesującego nas secret href
barbican secret list
lub
openstack secret list
Zapisanie klucza do pliku
barbican secret get --payload_content_type application/octet-stream <secret_href_z_poprzedniej_sekcji> --file my_secret_key.key
lub
openstack secret get --payload_content_type application/octet-stream http://controller.tc.eco.atman.pl:9311/v1/secrets/8aa87946-6bb0-4a71-a88f-8e1f5aeb7fc7 --file my_secret_key.key
Przekonwertowanie klucza na hasło (passphrase)
hexdump -e '16/1 "%02x"' my_secret_key.key




