Łatwe szyfrowanie zasobów przy użyciu Cloud KMS Autokey

1. Wprowadzenie

Cloud KMS Autokey upraszcza tworzenie i używanie kluczy szyfrowania zarządzanych przez klienta (CMEK) dzięki automatyzacji udostępniania i przypisywania. Dzięki Autokey nie musisz planować i udostępniać pęków kluczy, kluczy i kont usługi, zanim będą potrzebne. Zamiast tego Autokey generuje klucze na żądanie podczas tworzenia zasobów, korzystając z uprawnień delegowanych zamiast administratorów Cloud KMS.

Korzystanie z kluczy wygenerowanych przez Autokey może pomóc w zachowaniu zgodności ze standardami branżowymi i zalecanymi metodami zapewniania bezpieczeństwa danych, w tym z poziomem ochrony HSM, rozdziałem obowiązków, rotacją kluczy, lokalizacją i specyfiką kluczy. Autokey tworzy klucze, które są zgodne zarówno z ogólnymi wytycznymi, jak i wytycznymi dotyczącymi konkretnego typu zasobu w przypadku usług Google Cloud zintegrowanych z Cloud KMS Autokey. Po utworzeniu klucze żądane za pomocą funkcji Autokey działają identycznie jak inne klucze Cloud HSM o tych samych ustawieniach.

Co utworzysz

W tym ćwiczeniu uruchomisz zabezpieczone zasoby za pomocą funkcji Cloud KMS Autokey, tworząc:

  • zasób folderu,
  • projekt, który będzie zawierać Twoje klucze;
  • agenta usługi, który będzie Twoim asystentem zarządzającym kluczami.
  • projekt, w którym będą przechowywane zabezpieczone zasoby;
  • zbiory danych BigQuery, dyski trwałe i zasobniki Cloud Storage zaszyfrowane za pomocą klucza Autokey w Cloud KMS

Czego potrzebujesz

2. Tworzenie folderu

Foldery są węzłami w hierarchii zasobów Cloud Platform. Folder może zawierać projekty, inne foldery lub ich kombinację. Zasoby organizacji mogą używać folderów do grupowania projektów w węźle zasobu organizacji w hierarchii. Aby utworzyć folder:

  1. Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
  2. Sprawdź, czy na liście organizacji u góry strony jest wybrana nazwa zasobu organizacji.
  3. Kliknij Utwórz folder.

9328ef3bd4840817.png

  1. Wybierz folder standardowy

20a094fe0c7a0924.png

  1. W polu Nazwa folderu wpisz nazwę nowego folderu. W tym module rozważ użycie folderu „Autokey-Folder”.
  2. W sekcji Miejsce docelowe kliknij Przeglądaj, a następnie wybierz zasób organizacji lub folder, w którym chcesz utworzyć nowy folder.
  3. Kliknij Utwórz.

3. Tworzenie projektu zasobów

Ważne jest, aby utworzyć projekt zasobów, który będzie zawierać zasoby, takie jak zbiory danych BigQuery, dyski trwałe i zasobniki Cloud Storage, które chcesz zaszyfrować za pomocą Cloud KMS Autokey. Jeśli spróbujesz utworzyć w projekcie kluczy zasoby chronione przez Autokey, funkcja Autokey odrzuci prośbę o nowy klucz. Aby utworzyć projekt zasobów:

  1. Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
  2. Kliknij Utwórz projekt.

93e4e224322c68a7.png

  1. Na liście Wybierz organizację u góry strony wybierz folder „Autokey-Folder”.
  2. W wyświetlonym oknie Nowy projekt wpisz nazwę projektu i wybierz odpowiednie konto rozliczeniowe. W tym module rozważ opcję „Autokey Encrypted Resources” (Zasoby szyfrowane za pomocą klucza automatycznego).
  3. W polu Lokalizacja wybierz folder „Autokey-Folder”. Ten zasób będzie hierarchicznym elementem nadrzędnym nowego projektu. Ustawienia powinny wyglądać podobnie do tych:

187ece37daf50835.png

  1. Skopiuj identyfikator projektu – w powyższym przykładzie jest to „causal-hour-43319-m4”, ale Twój identyfikator będzie inny – do wybranego edytora tekstu.
  2. Kliknij Utwórz
  3. W prawym górnym rogu ekranu kliknij ikonę Cloud Shell.

16c8476c4991f448.png

  1. Gdy Cloud Shell będzie aktywny, zapisz identyfikator projektu Autokey jako zmienną, uruchamiając to polecenie:
export RESOURCE_PROJECT=<paste your Resource Project ID>

Mój identyfikator projektu to „key-management-433319”, więc moje polecenie wygląda tak:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. Aby uruchomić polecenia z projektu klucza, wykonaj to polecenie:
gcloud config set project $RESOURCE_PROJECT

Gdy pojawi się prośba, autoryzuj Cloud Shell, klikając „Autoryzuj”.

a6c755d4921bc728.png

  1. Ponieważ ten projekt będzie zawierać zasoby, musimy włączyć interfejsy API usług, które Autokey będzie chronić. Uruchom to polecenie:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. Tworzenie projektu kluczowego

Zalecamy utworzenie projektu, który będzie zawierać zasoby Cloud KMS utworzone przez Autokey. Będziemy go nazywać „projektem kluczowym”. Projekt kluczy można utworzyć w tym samym folderze, w którym planujesz włączyć Autokey. Nie twórz innych zasobów w projekcie klucza. Jeśli spróbujesz utworzyć w projekcie kluczy zasoby chronione przez Autokey, funkcja Autokey odrzuci prośbę o nowy klucz. Aby utworzyć projekt kluczowy:

  1. Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
  2. Kliknij Utwórz projekt.

93e4e224322c68a7.png

  1. Na liście Wybierz organizację u góry strony wybierz folder „Autokey-Folder”.
  2. W wyświetlonym oknie Nowy projekt wpisz nazwę projektu i wybierz odpowiednie konto rozliczeniowe. W tym module rozważ „Zarządzanie kluczami”.
  3. W polu Lokalizacja wybierz folder „Autokey-Folder”. Ten zasób będzie hierarchicznym elementem nadrzędnym nowego projektu. Ustawienia powinny wyglądać podobnie do tych:

157894b5c9048c06.png

  1. Skopiuj identyfikator projektu – w powyższym przykładzie jest to „key-management-433319”, ale Twój identyfikator będzie inny – do wybranego edytora tekstu.
  2. Kliknij Utwórz.

5. Przygotuj projekt kluczy Autokey

Po utworzeniu każdego projektu skonfiguruj projekt klucza tak, aby korzystał z Autokey Cloud KMS.

  1. W prawym górnym rogu ekranu kliknij ikonę Cloud Shell.

16c8476c4991f448.png

  1. Gdy Cloud Shell będzie aktywny, zapisz identyfikator projektu Autokey jako zmienną, uruchamiając to polecenie:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

Mój identyfikator projektu to „key-management-433319”, więc moje polecenie wygląda tak:

export AUTOKEY_PROJECT=key-management-433319
  1. Aby uruchomić polecenia z projektu klucza, wykonaj to polecenie:
gcloud config set project $AUTOKEY_PROJECT

Gdy pojawi się prośba, autoryzuj Cloud Shell, klikając „Autoryzuj”.

a6c755d4921bc728.png

  1. Włącz interfejs Cloud KMS API, uruchamiając to polecenie:
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. Uruchom to polecenie, aby zapisać numer projektu jako zmienną o nazwie AUTOKEY_PROJECT_NUMBER:
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. Zapisz adres e-mail podmiotu jako zmienną, uruchamiając to polecenie:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. Przyznaj użytkownikom będącym administratorami Cloud KMS uprawnienia administratora Cloud KMS w projekcie klucza.
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6. Konfigurowanie agentów usługi Cloud KMS

Agent usługi Cloud KMS w projekcie klucza tworzy klucze i stosuje powiązania zasad IAM podczas tworzenia zasobów w imieniu administratora Cloud KMS. Aby tworzyć i przypisywać klucze, agent usługi Cloud KMS wymaga uprawnień administratora Cloud KMS.

  1. Aby znaleźć identyfikator organizacji, użyj tego polecenia:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. Skopiuj identyfikator organizacji – jest to liczba wyróżniona na czerwono.
  2. Zapisz identyfikator organizacji jako zmienną o nazwie ORG_ID:
export ORG_ID=<paste your Organization ID>
  1. Utwórz agenta usługi Cloud KMS, uruchamiając to polecenie:
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. Przypisz rolę administratora Cloud KMS do agenta usługi:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. Dodaj powiązanie zasad IAM, aby móc wyświetlać użycie klucza Cloud KMS. Sekcja Użycie klucza zawiera informacje o każdym kluczu, w tym liczbę chronionych zasobów, projektów i unikalnych usług Google Cloud, które go używają. Ten poziom szczegółowości jest dostępny dla każdej osoby, która ma rolę przeglądającego Cloud KMS w odniesieniu do klucza. Uruchom to polecenie:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Przyznaj kontu usługi Cloud KMS rolę agenta usługi Cloud KMS w organizacji (cloudkms.orgServiceAgent) w zasobie organizacji.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Przypisz rolę Wyświetlający zabezpieczone zasoby Cloud KMS w zasobie Organizacja każdemu, kto musi wyświetlać szczegóły użycia kluczy.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. Przyznawanie ról użytkowników Autokey

Zanim programiści będą mogli korzystać z Autokey, musisz przyznać im odpowiednią rolę. Możesz przyznać rolę na poziomie folderu lub projektu. Ta rola umożliwia deweloperom żądanie kluczy od agenta usługi Cloud KMS podczas tworzenia zasobów w tym folderze lub projekcie.

Pierwszym krokiem w przyznawaniu roli jest zapisanie identyfikatora folderu.

  1. Znajdź identyfikator folderu za pomocą tego polecenia:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. Skopiuj identyfikator folderu – jest to część wyróżniona na czerwono.
  2. Zapisz identyfikator folderu jako zmienną o nazwie FOLDER_ID.
export FOLDER_ID=<paste the folder ID>

Na potrzeby tego modułu kluczowym administratorem będzie użytkownik Autokey. W przypadku zastosowań produkcyjnych i organizacji z więcej niż jedną osobą administrator kluczy powinien być inną osobą niż deweloper korzystający z Autokey.

  1. Przyznaj rolę roles/cloudkms.autokeyUser na poziomie folderu:
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. Włączanie Cloud KMS Autokey w folderze zasobów

W tym kroku włączysz Cloud KMS Autokey w folderze zasobów i określisz projekt Cloud KMS, który będzie zawierać zasoby Autokey dla tego folderu. Włączenie Autokey w tym folderze spowoduje włączenie Autokey we wszystkich projektach zasobów w tym folderze.

  1. W konsoli Google Cloud otwórz stronę ustawień KMS.
  2. Kliknij Wybierz folder.

785f338e1860029c.png

  1. W selektorze kontekstu wybierz folder, w którym chcesz włączyć automatyczne klucze. Będzie to ten sam folder, który został utworzony wcześniej i zawiera projekt zasobu oraz projekt zarządzania kluczami. Powinien on wyglądać podobnie do tego:

f0ee5141dc6fa40e.png

  1. Kliknij Włącz.
  2. Kliknij Przeglądaj, aby wybrać projekt kluczy
  3. Wybierz projekt zarządzania kluczami, a następnie kliknij Prześlij.

5acd9e68eb972e15.png

Pojawi się komunikat z potwierdzeniem, że Cloud KMS Autokey jest włączona w folderze. Strona Ustawienia KMS powinna wyglądać tak:

8bddb3d688ba842d.png

9. Tworzenie chronionych zasobów za pomocą Cloud KMS Autokey

Dyski stałe Compute Engine

Autokey tworzy nowy klucz dla każdego dysku, obrazu i obrazu maszyny w tej samej lokalizacji co tworzony zasób.

Aby utworzyć dysk, wykonaj te czynności:

  1. W konsoli Google Cloud otwórz stronę Dyski.
  2. Kliknij Utwórz dysk i wpisz właściwości nowego dysku.
  3. W sekcji Szyfrowanie wybierz Klucz Cloud KMS.

dcc63e9ae03c5fbe.png

  1. W sekcji Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Pojawi się komunikat informujący o utworzeniu klucza i jego gotowości do użycia.

4b2283a0d52cc98d.png

  1. Aby zakończyć tworzenie dysku, kliknij Utwórz.

Podobny proces możesz zastosować do tworzenia chronionych instancji maszyn wirtualnych, obrazów i obrazów maszyn.

Zasobniki Google Cloud Storage

Autokey tworzy nowy klucz w tej samej lokalizacji co zasobnik. Klucz utworzony przez Autokey jest przypisywany jako domyślny klucz zasobnika.

Autokey nie tworzy kluczy do obiektów. Domyślnie obiekty utworzone w zasobniku używają domyślnego klucza zasobnika. Jeśli chcesz zaszyfrować obiekt za pomocą klucza innego niż domyślny klucz zasobnika, możesz ręcznie utworzyć klucz CMEK i użyć go podczas tworzenia obiektu.

  1. W konsoli Google Cloud otwórz stronę Utwórz zasobnik.
  2. Wybierz niepowtarzalną globalnie, stałą nazwę.
  3. Wybierz lokalizację danych.
  4. Przejdź do sekcji „Wybierz sposób ochrony danych obiektu”.

e31bbeff5c7aabdf.png

  1. Kliknij „Wybierz sposób ochrony danych obiektu”, aby rozwinąć tę sekcję.

9c68ce19dac932de.png

  1. Rozwiń sekcję Szyfrowanie danych i wybierz Klucz Cloud KMS. d8caca08891be9dc.png
  2. W sekcji Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Pojawi się komunikat informujący o utworzeniu klucza i jego gotowości do użycia.

a10d1ae243c44811.png

  1. Aby zakończyć tworzenie zasobnika, kliknij Utwórz. Jeśli pojawi się okno dialogowe z informacją, że „Dostęp publiczny zostanie zablokowany”, kliknij Potwierdź.

Zbiór danych BigQuery

W przypadku każdego nowego zbioru danych Autokey tworzy nowy klucz w tej samej lokalizacji co sam zasób, który staje się domyślnym kluczem zbioru danych. Autokey nie tworzy kluczy do tabel, zapytań, tabel tymczasowych ani modeli. Domyślnie te zasoby są chronione kluczem domyślnym zbioru danych. Jeśli chcesz chronić zasób w zbiorze danych za pomocą klucza innego niż domyślny klucz zbioru danych, możesz ręcznie utworzyć klucz CMEK i użyć go podczas tworzenia zasobu.

Aby utworzyć zbiór danych BigQuery, musisz najpierw mieć rolę użytkownika BigQuery.

  1. Wróć do Cloud Shell
  2. Ustawienie Cloud Shell tak, aby wykonywał polecenia z projektu zasobu
gcloud config set project $RESOURCE_PROJECT
  1. Uruchom to polecenie, aby zapisać numer projektu jako zmienną o nazwie RESOURCE_PROJECT_NUMBER:
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. Przyznawanie sobie roli użytkownika BigQuery
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

Teraz, gdy masz rolę użytkownika BigQuery, możesz utworzyć zbiór danych i zabezpieczyć go za pomocą Autokey.

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. Postępuj zgodnie z instrukcjami tworzenia zbioru danych, aż dojdziesz do opcji Zaawansowane > Szyfrowanie.
  3. W sekcji Szyfrowanie wybierz Klucz Cloud KMS.
  4. W sekcji Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Pojawi się komunikat informujący o utworzeniu klucza i jego gotowości do użycia.
  5. Aby zakończyć tworzenie zbioru danych, kliknij Utwórz zbiór danych.

10. Poznaj swoje klucze

W tym kroku sprawdzisz klucze utworzone w Twoim imieniu przez Cloud KMS Autokey, otwierając stronę Spis kluczy. Strona Asortyment kluczy zawiera wyczerpujące informacje o kluczach kryptograficznych w Twoim projekcie. Pamiętaj, że dane mogą być opóźnione. Jeśli na przykład utworzysz nowy chroniony zasób, nie zostanie on od razu dodany do karty Śledzenie wykorzystania. Więcej ograniczeń znajdziesz tutaj.

  1. W konsoli Google Cloud otwórz stronę Inwentarz kluczy.
  2. Opcjonalnie: aby przefiltrować listę kluczy, wpisz wyszukiwane słowa w polu filtra filter_list i naciśnij Enter. Możesz filtrować np. według lokalizacji, pęku kluczy, stanu lub innych właściwości kluczy.
  3. Kliknij nazwę klucza, dla którego chcesz wyświetlić informacje o użyciu.
  4. Kliknij „Przegląd”. Zwróć uwagę, że dla każdego utworzonego zasobu masz klucz. Każda nazwa klucza zawiera nazwę zasobu, który jest chroniony przez klucz (np. „compute-disk” lub „storage-bucket”). Cloud KMS Autokey zapewnia, że każdy klucz jest zaplanowany do rotacji 365 dni po jego utworzeniu, a każdy klucz ma przypisany poziom ochrony „HSM”.

9acbce68acb653d4.png

  1. Kliknij kartę Śledzenie wykorzystania. Zwróć uwagę na poziom informacji: każdy zasób, który klucz szyfruje, jest tu wyświetlany wraz z projektem, lokalizacją i datą utworzenia.
  2. Opcjonalnie: aby odfiltrować listę chronionych zasobów, wpisz wyszukiwane hasła w polu filtra filter_list i naciśnij Enter.

7def6fe9a023d063.png

11. Gratulacje

Gratulacje! Udało Ci się utworzyć zasoby Google Cloud i automatycznie zaszyfrować je na żądanie za pomocą funkcji Cloud KMS Autokey!

Znasz już najważniejsze kroki, które należy wykonać, aby skonfigurować Autokey i używać go do automatycznego szyfrowania zasobów za pomocą kluczy Cloud KMS.

12. Co dalej?

Przesyłanie danych do zasobów zaszyfrowanych za pomocą Autokey

Dokumentacja