Ł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) poprzez zautomatyzowanie ich provisionowania i przypisywania. Dzięki funkcji Autokey nie musisz planować ani udostępniać pęków kluczy, kluczy i kont usługi, zanim będą potrzebne. Zamiast tego funkcja Autokey generuje klucze na żądanie podczas tworzenia zasobów, korzystając z przekazanych uprawnień, a nie administratorów Cloud KMS.

Korzystanie z kluczy wygenerowanych przez funkcję Autokey pomoże Ci zachować zgodność ze standardami branżowymi i zalecanymi metodami ochrony danych, takimi jak poziom ochrony HSM, rozdział obowiązków, rotacja kluczy, lokalizacja i szczegółowość kluczy. Funkcja Autokey tworzy klucze zgodne z ogólnymi wytycznymi i wytycznymi dotyczącymi typu zasobu dla usług Google Cloud, które integrują się z Cloud KMS Autokey. Po utworzeniu klucze żądane za pomocą Autokey działają tak samo jak inne klucze Cloud HSM z tymi samymi ustawieniami.

Co utworzysz

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

  • zasób folderu
  • projekt, który będzie zawierać klucze;
  • agenta usługi, który pełni funkcję asystenta zarządzania kluczami,
  • projekt, który będzie hostować Twoje chronione zasoby;
  • zbiory danych BigQuery, dyski trwałe i zasobniki Cloud Storage zaszyfrowane za pomocą klucza Autokey usługi Cloud KMS,

Czego potrzebujesz

2. Tworzenie folderu

Foldery to węzły 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. Upewnij się, że 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 laboratorium użyj 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 zasobu

Pamiętaj, aby utworzyć projekt zasobu obejmujący zasoby, takie jak zbiory danych BigQuery, dyski stałe i zasobniki Cloud Storage, które chcesz zaszyfrować za pomocą Cloud KMS Autokey. Jeśli spróbujesz utworzyć zasoby chronione przez funkcję Autokey w projekcie klucza, funkcja Autokey odrzuci prośbę o nowy klucz. Aby utworzyć projekt zasobu:

  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 zaznacz pole Autokey-Folder. folderu Dysku.
  2. W wyświetlonym oknie Nowy projekt wpisz nazwę projektu i wybierz odpowiednie konto rozliczeniowe. Na potrzeby tego modułu weź pod uwagę „Autokey Encrypted Resources” („Zaszyfrowane zasoby Autokey”)
  3. W polu Lokalizacja wybierz folder „Autokey-Folder”. Ten zasób będzie hierarchicznym elementem nadrzędnym nowego projektu. Ustawienia powinny wyglądać mniej więcej tak:

187ece37daf50835.png

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

16c8476c4991f448.png

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

Ponieważ mój identyfikator projektu to „key-management-433319” moje polecenie wygląda tak:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. Aby wykonać polecenia w Key Project, uruchom 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 dla usług, które będzie chronić przez Autokey. Uruchom to polecenie:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. Utwórz projekt klucza

Zalecamy utworzenie projektu zawierającego zasoby Cloud KMS utworzone przez Autokey. Nazywa się to „projektem klucza” w przyszłości. Projekt klucza można utworzyć w tym samym folderze, w którym planujesz włączyć Autokey. Inne zasoby nie należy tworzyć w obrębie projektu klucza. Jeśli spróbujesz utworzyć w kluczowym projekcie zasoby chronione przez Autokey, usługa Autokey odrzuci prośbę o nowy klucz. Aby utworzyć projekt klucza:

  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 zaznacz pole Autokey-Folder. folderu Dysku.
  2. W wyświetlonym oknie Nowy projekt wpisz nazwę projektu i wybierz odpowiednie konto rozliczeniowe. Na potrzeby tego ćwiczenia rozważ temat „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ć mniej więcej tak:

157894b5c9048c06.png

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

5. Przygotowywanie projektu klucza Autokey

Po utworzeniu projektów możesz skonfigurować projekt klucza, aby używać funkcji Cloud KMS Autokey.

  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ą, wykonując to polecenie:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

Ponieważ mój identyfikator projektu to „key-management-433319” moje polecenie wygląda tak:

export AUTOKEY_PROJECT=key-management-433319
  1. Aby wykonać polecenia w Key Project, uruchom 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 zabezpieczeń jako zmienną, uruchamiając to polecenie:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. Przyznawanie użytkownikom administratora Cloud KMS uprawnień 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

Podczas tworzenia zasobów agent usługi Cloud KMS w imieniu administratora Cloud KMS tworzy klucze i stosuje powiązania zasad IAM. Aby tworzyć i przypisywać klucze, agent usługi Cloud KMS musi mieć uprawnienia administratora Cloud KMS.

  1. Znajdź identyfikator organizacji za pomocą tego polecenia:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. Skopiuj identyfikator organizacji – jest to wynik liczbowy podświetlony 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 do agenta usługi rolę administratora Cloud KMS:
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 uprawnień, aby móc wyświetlić użycie klucza Cloud KMS. Kolumna Użycie klucza zawiera informacje o każdym kluczu, w tym liczbę chronionych zasobów, projektów i usług Google Cloud, które go używają. Ten poziom szczegółów jest dostępny dla każdego, kto ma przypisaną rolę Wyświetlający Cloud KMS. 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. Przypisz do konta usługi Cloud KMS rolę agenta usługi organizacji Cloud KMS (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 chronione zasoby Cloud KMS w zasobie organizacji każdemu, kto chce wyświetlać szczegóły wykorzystania klucza.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. Przypisywanie ról użytkownikom Autokey

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

Pierwszym krokiem podczas przypisywania 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 ćwiczenia administrator klucza zostanie zdefiniowany jako użytkownik Autokey. Jednak w przypadku zastosowań produkcyjnych i organizacji z większą liczbą osób administrator klucza 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 funkcji Autokey w tym folderze spowoduje włączenie funkcji Autokey we wszystkich projektach zasobów w folderze.

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

785f338e1860029c.png

  1. Za pomocą selektora kontekstu wybierz folder, w którym chcesz włączyć funkcję Autokey. 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 klucza
  3. Wybierz projekt zarządzania kluczami i kliknij Prześlij.

5acd9e68eb972e15.png

Pojawi się komunikat z potwierdzeniem, że Cloud KMS Autokey jest włączony 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

Funkcja 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 polu Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Gdy kluczyk zostanie utworzony i będzie gotowy do użycia, pojawi się odpowiedni komunikat.

4b2283a0d52cc98d.png

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

W podobny sposób możesz utworzyć chronione zasoby maszyny wirtualnej, obraz i obraz maszyny.

WorkSpaces i Google Cloud Storage

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

Funkcja Autokey nie tworzy kluczy obiektów. Domyślnie obiekty tworzone 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 stałą nazwę niepowtarzalną globalnie.
  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ąć sekcję

9c68ce19dac932de.png

  1. Rozwiń sekcję Szyfrowanie danych i wybierz klucz Cloud KMS. d8caca08891be9dc.png
  2. W polu Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Wyświetli się komunikat, że klucz został utworzony i jest gotowy do użycia.

a10d1ae243c44811.png

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

Zbiór danych BigQuery

Dla każdego nowego zbioru danych funkcja Autokey tworzy nowy klucz w tej samej lokalizacji co zasób, który staje się domyślnym kluczem zbioru danych. Funkcja Autokey nie tworzy kluczy do tabel, zapytań, tabel tymczasowych ani modeli. Domyślnie te zasoby są chronione przez domyślny klucz 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 mieć rolę Użytkownik BigQuery.

  1. Wróć do Cloud Shell
  2. Skonfiguruj Cloud Shell do wykonywania poleceń z projektu zasobu
gcloud config set project $RESOURCE_PROJECT
  1. Uruchom poniższe 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. Przyznaj sobie rolę 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 ochronić go za pomocą Autokey.

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. Postępuj zgodnie z instrukcjami tworzenia zbioru danych, aż przejdziesz do opcji zaawansowanych . Szyfrowanie.
  3. W sekcji Szyfrowanie wybierz klucz Cloud KMS.
  4. W polu Typ klucza wybierz Cloud KMS z Autokey, a potem kliknij Poproś o nowy klucz. Gdy kluczyk zostanie utworzony i będzie gotowy do użycia, pojawi się odpowiedni komunikat.
  5. Aby zakończyć tworzenie zbioru danych, kliknij Utwórz zbiór danych.

10. Klucze

W tym kroku poznasz klucze utworzone przez Cloud KMS Autokey w Twoim imieniu. Aby to zrobić, otwórz stronę Inwentarz kluczy. Strona Key Inventory (Zasoby kluczy) zawiera szczegółowe informacje o kluczach kryptograficznych w projekcie. Pamiętaj, że dane mogą być opóźnione. Jeśli na przykład utworzysz nowy chroniony zasób, chroniony zasób i powiązana wersja klucza nie zostaną od razu dodane do karty Śledzenie wykorzystania. Więcej informacji o ograniczeniach.

  1. W konsoli Google Cloud otwórz stronę Asortyment kluczy.
  2. Opcjonalnie: aby przefiltrować listę kluczy, wpisz wyszukiwane słowa w polu „filter_list” Filtruj, a następnie naciśnij Enter. Możesz na przykład filtrować 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 wykorzystaniu.
  4. Kliknij „Przegląd”. Zwróć uwagę, że masz klucz dla każdego utworzonego zasobu. Każda nazwa klucza zawiera nazwę zasobu, który jest chroniony (np. „dysk-komputerowy” lub „zasobnik-pamięci”). Funkcja Cloud KMS Autokey zapewnia, że każdy klucz jest zaplanowany do rotacji po 365 dniach od utworzenia, a każdy klucz ma przypisany poziom ochrony „HSM”.

9acbce68acb653d4.png

  1. Kliknij kartę Śledzenie wykorzystania. Zwróć uwagę na poziom prezentowanych informacji: tutaj widać każdy zasób, który jest szyfrowany przez klucz, wraz z danymi projektu, lokalizacją i datą utworzenia.
  2. Opcjonalnie: aby przefiltrować listę chronionych zasobów, wpisz wyszukiwane słowa w polu „filter_list” Filtruj, a następnie naciśnij Enter.

7def6fe9a023d063.png

11. Gratulacje

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

Znasz już najważniejsze kroki wymagane do skonfigurowania funkcji Autokey i używania jej do automatycznego szyfrowania zasobów przy użyciu kluczy Cloud KMS.

12. Co dalej?

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

Dokumentacja