Informacje o tym ćwiczeniu (w Codelabs)
1. Wprowadzenie
Cloud KMS Autokey upraszcza tworzenie i używanie kluczy szyfrowania zarządzanych przez klienta (CMEK), automatyzując udostępnianie i przypisywanie. 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ą funkcji Autokey działają tak samo jak inne klucze Cloud HSM o tych samych ustawieniach.
Co utworzysz
W ramach tego ćwiczenia w Codelabs uruchomisz chronione zasoby za pomocą 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 stałe i zasobniki Cloud Storage szyfrowane za pomocą Cloud KMS Autokey
Czego potrzebujesz
- Organizacja Google Cloud
- Aby ukończyć ten moduł, podmiot zabezpieczeń Google Cloud musi mieć przypisane te role na poziomie organizacji:
- Administrator Cloud KMS Autokey (roles/cloudkms.autokeyAdmin)
- Administrator uprawnień folderu (roles/resourcemanager.folderIamAdmin)
- Użytkownik konta rozliczeniowego (roles/billing.user)
- Projekty Google Cloud z włączonymi płatnościami
- Podstawowa obsługa Linuksa
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 zasobów organizacji w hierarchii. Aby utworzyć folder:
- Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
- Sprawdź, czy z listy organizacji u góry strony wybrano nazwę zasobu organizacji.
- Kliknij Utwórz folder.
- Wybierz folder standardowy
- W polu Nazwa folderu wpisz nazwę nowego folderu. Na potrzeby tego modułu wybierz „Autokey-Folder”
- W sekcji Miejsce docelowe kliknij Przeglądaj, a następnie wybierz zasób organizacji lub folder, w którym chcesz utworzyć nowy folder.
- 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:
- Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
- Kliknij Utwórz projekt.
- Na liście Wybierz organizację u góry strony zaznacz pole Autokey-Folder. folderu Dysku.
- 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”)
- W polu Lokalizacja wybierz opcję „Autokey-Folder”. folderu Dysku. Ten zasób będzie hierarchicznym elementem nadrzędnym nowego projektu. Ustawienia powinny wyglądać mniej więcej tak:
- Skopiuj identyfikator projektu – w przykładzie powyżej identyfikator projektu to „causal-hour-43319-m4”. ale Twój identyfikator będzie inny – do wybranego edytora tekstu.
- Kliknij Utwórz
- Kliknij ikonę Cloud Shell w prawym górnym rogu ekranu
- Gdy Cloud Shell będzie aktywna, zapisz identyfikator projektu Autokey jako zmienną, uruchamiają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
- Uruchom to polecenie, aby wykonać polecenia z projektu kluczy:
gcloud config set project $RESOURCE_PROJECT
Gdy pojawi się prośba, autoryzuj Cloud Shell, klikając „Autoryzuj”.
- Ponieważ ten projekt będzie zawierać zasoby, musimy włączyć interfejsy API dla usług, które będzie chronić 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żesz utworzyć w tym samym folderze, w którym zamierzasz włączyć funkcję Autokey. Inne zasoby nie należy tworzyć w obrębie projektu klucza. Jeśli spróbujesz utworzyć zasoby chronione przez funkcję Autokey w projekcie klucza, funkcja Autokey odrzuci prośbę o nowy klucz. Aby utworzyć projekt klucza:
- Otwórz stronę Zarządzanie zasobami w konsoli Google Cloud.
- Kliknij Utwórz projekt.
- Na liście Wybierz organizację u góry strony zaznacz pole Autokey-Folder. folderu Dysku.
- W wyświetlonym oknie Nowy projekt wpisz nazwę projektu i wybierz odpowiednie konto rozliczeniowe. W tym module wybierz „Zarządzanie kluczami”
- W polu Lokalizacja wybierz opcję „Autokey-Folder”. folderu Dysku. Ten zasób będzie hierarchicznym elementem nadrzędnym nowego projektu. Ustawienia powinny wyglądać mniej więcej tak:
- Skopiuj identyfikator projektu – w przykładzie powyżej identyfikator projektu to „key-management-433319”. ale Twój identyfikator będzie inny – do wybranego edytora tekstu.
- Kliknij Utwórz.
5. Przygotowywanie projektu klucza Autokey
Po utworzeniu każdego projektu możesz skonfigurować projekt klucza pod kątem użycia Cloud KMS Autokey.
- Kliknij ikonę Cloud Shell w prawym górnym rogu ekranu
- Gdy Cloud Shell będzie aktywna, zapisz identyfikator projektu Autokey jako zmienną, uruchamiają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
- Uruchom to polecenie, aby wykonać polecenia z projektu kluczy:
gcloud config set project $AUTOKEY_PROJECT
Gdy pojawi się prośba, autoryzuj Cloud Shell, klikając „Autoryzuj”.
- Włącz interfejs Cloud KMS API, uruchamiając to polecenie
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- 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)")
- Zapisz adres e-mail podmiotu zabezpieczeń jako zmienną, uruchamiając to polecenie:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- Przyznaj administratorom 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 projektu klucza tworzy klucze i stosuje powiązania zasad uprawnień podczas tworzenia zasobów w imieniu administratora Cloud KMS ludzkiego. Aby móc tworzyć i przypisywać klucze, agent usługi Cloud KMS wymaga uprawnień administratora Cloud KMS.
- Znajdź identyfikator organizacji za pomocą tego polecenia:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Skopiuj identyfikator organizacji – jest to wynik liczbowy wyróżniony na czerwono.
- Zapisz identyfikator organizacji jako zmienną o nazwie ORG_ID:
export ORG_ID=<paste your Organization ID>
- Utwórz agenta usługi Cloud KMS, uruchamiając to polecenie:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- 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
- Dodaj powiązanie zasad uprawnień, aby móc wyświetlić użycie klucza Cloud KMS. Użycie klucza dostarcza informacji dotyczących każdego klucza, w tym liczby zabezpieczonych zasobów, projektów i unikalnych usług Google Cloud, które korzystają z tego klucza. 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'
- Przypisz do konta usługi Cloud KMS rolę agenta usługi Cloud KMS w organizacji (cloudkms.orgServiceAgent) do zasobu 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'
- 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. Przyznawanie ról użytkowników Autokey
Zanim deweloperzy będą mogli korzystać z funkcji Autokey, musisz przypisać im wymaganą rolę. Rolę możesz przypisać na poziomie folderu lub projektu. Ta rola pozwala deweloperom prosić o klucze od agenta usługi Cloud KMS podczas tworzenia zasobów w tym folderze lub projekcie.
Pierwszym krokiem podczas przypisywania roli jest zapisanie identyfikatora folderu.
- Znajdź identyfikator folderu za pomocą tego polecenia:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Skopiuj identyfikator folderu – to część zaznaczona na czerwono.
- Zapisz identyfikator folderu jako zmienną o nazwie FOLDER_ID
export FOLDER_ID=<paste the folder ID>
Na potrzeby tego modułu jako użytkownika Autokey zdefiniujemy administratora klucza. Jednak w środowiskach produkcyjnych oraz w organizacjach, w których jest więcej niż 1 osoba, kluczowy administrator powinien być inny niż deweloper korzystający z funkcji Autokey.
- 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łącz Cloud KMS Autokey w folderze zasobów
W tym kroku włączysz Cloud KMS Autokey w folderze zasobów i wskażesz 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.
- W konsoli Google Cloud otwórz stronę ustawień KMS.
- Kliknij Wybierz folder.
- 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:
- Kliknij Włącz.
- Kliknij Przeglądaj, aby wybrać projekt klucza
- Wybierz projekt zarządzania kluczami i kliknij Prześlij.
Pojawi się komunikat z potwierdzeniem, że w folderze jest włączona funkcja Cloud KMS Autokey. Strona Ustawienia KMS powinna wyglądać tak:
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:
- W konsoli Google Cloud otwórz stronę Dyski.
- Kliknij Utwórz dysk i wpisz właściwości nowego dysku.
- W sekcji Szyfrowanie wybierz klucz Cloud KMS.
- 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.
- Aby zakończyć tworzenie dysku, kliknij Utwórz.
W podobny sposób możesz utworzyć chronione zasoby maszyny wirtualnej, obraz i obraz maszyny.
Zasobniki Google Cloud Storage
Funkcja Autokey tworzy nowy klucz w tej samej lokalizacji co zasobnik. Klucz utworzony przez funkcję Autokey jest przypisany 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ć tego klucza podczas tworzenia obiektu.
- W konsoli Google Cloud otwórz stronę Utwórz zasobnik.
- Wybierz niepowtarzalną globalnie, stałą nazwę.
- Wybierz lokalizację danych.
- Przejdź do opcji „Wybierz sposób ochrony danych obiektu” (sekcja)
- Kliknij „Wybierz sposób ochrony danych obiektu”. aby rozwinąć sekcję
- Rozwiń sekcję Szyfrowanie danych i wybierz klucz Cloud KMS.
- 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.
- Aby zakończyć tworzenie zasobnika, kliknij Utwórz. Jeśli zostanie wyświetlone okno dialogowe z informacją „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ć tego klucza podczas tworzenia zasobu.
Aby utworzyć zbiór danych BigQuery, musisz najpierw mieć rolę użytkownika BigQuery.
- Wróć do Cloud Shell
- Konfigurowanie Cloud Shell do wykonywania poleceń z projektu zasobu
gcloud config set project $RESOURCE_PROJECT
- 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)")
- 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 już rolę użytkownika BigQuery, możesz utworzyć zbiór danych i zabezpieczyć go za pomocą funkcji Autokey.
- W konsoli Google Cloud otwórz stronę BigQuery.
- Postępuj zgodnie z instrukcjami tworzenia zbioru danych, aż przejdziesz do opcji zaawansowanych . Szyfrowanie.
- W sekcji Szyfrowanie wybierz Klucz Cloud KMS.
- 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.
- Aby zakończyć tworzenie zbioru danych, kliknij Utwórz zbiór danych.
10. Przeglądaj klucze
W tym kroku na stronie Zasoby kluczy poznasz klucze Cloud KMS Autokey utworzone w Twoim imieniu. 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, ten zasób i powiązana wersja klucza nie zostaną natychmiast dodane do karty Śledzenie wykorzystania. Więcej informacji o ograniczeniach znajdziesz tutaj.
- W konsoli Google Cloud otwórz stronę Zasoby kluczy.
- 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ć dane według lokalizacji, pęku kluczy, stanu lub innych właściwości kluczy.
- Kliknij nazwę klucza, dla którego chcesz wyświetlić informacje o wykorzystaniu.
- 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 zaplanowanie rotacji 365 dni po utworzeniu każdego klucza, a do każdego klucza przypisany jest „HSM” poziom ochrony.
- Kliknij kartę Śledzenie wykorzystania. Zwróć uwagę na poziom wyświetlanych informacji: widoczny jest tu każdy zasób szyfrowany przez klucz, wraz z projektem, lokalizacją i datą utworzenia.
- Opcjonalnie: aby przefiltrować listę chronionych zasobów, wpisz wyszukiwane słowa w polu filter_list Filtr, a następnie naciśnij Enter.
11. Gratulacje
Gratulujemy! Udało Ci się utworzyć zasoby Google Cloud i automatycznie zaszyfrować je na żądanie przy użyciu 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
- Tworzenie instancji Google Compute Engine (GCE)
- Podłączanie dysku stałego chronionego przez Autokey do instancji GCE
- Przesyłanie danych do zbioru danych BigQuery
- Przesyłanie obiektów do zasobnika Google Cloud Storage
- Wczytywanie danych z Google Cloud Storage do BigQuery