W tym dokumencie pokazujemy, jak używać kluczy szyfrowania zarządzanych przez klienta (CMEK) do szyfrowania i kontrolowania danych w spoczynku w usłudze w chmurze za pomocą Cloud Key Management Service. Klucze CMEK są zintegrowane z dostosowywaniem kodu w Gemini Code Assist. Gemini Code Assist nie obsługuje kluczy Cloud EKM.
W tym dokumencie:
- Dowiedz się, jak utworzyć klucz CMEK.
- Przyznaj uprawnienia kontu usługi Gemini Code Assist.
- Utwórz indeks repozytorium kodu za pomocą klucza CMEK.
- Usuń dostęp do repozytorium kluczy CMEK.
Domyślnie Gemini w Google Cloud szyfruje treści klientów w stanie spoczynku. Gemini obsługuje szyfrowanie bez konieczności podejmowania przez Ciebie dodatkowych działań. Ta opcja nosi nazwę Domyślne szyfrowanie Google.
Po skonfigurowaniu zasobów za pomocą kluczy CMEK dostęp do zasobów Gemini jest podobny do korzystania z domyślnego szyfrowania Google. Więcej informacji o opcjach szyfrowania znajdziesz w artykule Klucze szyfrowania zarządzane przez klienta (CMEK).
Zanim zaczniesz
Skonfiguruj gcloud CLI w jednym z tych środowisk programistycznych:
Cloud Shell: aby używać terminala online z już skonfigurowanym interfejsem gcloud CLI, uruchom edytor Cloud Shell.
Lokalna powłoka: aby używać lokalnego środowiska programistycznego, zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
Jeśli korzystasz z zewnętrznego dostawcy tożsamości, musisz najpierw zalogować się w gcloud CLI przy użyciu tożsamości sfederowanej.
W środowisku programistycznym, w którym skonfigurowano interfejs wiersza poleceń gcloud, uruchom
gcloud components updatepolecenie, aby upewnić się, że wszystkie zainstalowane komponenty gcloud zostały zaktualizowane do najnowszej wersji.gcloud components update
Tworzenie klucza CMEK i przyznawanie uprawnień
Aby utworzyć klucz CMEK i przyznać kontu usługi Gemini Code Assist uprawnienia do tego klucza, wykonaj te czynności:
W projekcie Google Cloud, w którym chcesz zarządzać kluczami, wykonaj te czynności:
Utwórz pęk kluczy i klucz bezpośrednio w Cloud KMS.
Przyznaj rolę uprawnień Szyfrator/deszyfrator klucza CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) kontu usługi Gemini Code Assist. Przyznaj to uprawnienie kluczowi, który został przez Ciebie utworzony.Konsola
Otwórz Zarządzanie kluczami.
Wybierz utworzony klucz.
Przyznaj dostęp do konta usługi Gemini Code Assist:
- Kliknij Dodaj podmiot zabezpieczeń.
- Dodaj konto usługi Gemini Code Assist. Konto usługi to
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions., gdzie PROJECT_NUMBER to numer projektu projektu Google Cloud, w którym włączono Gemini Code Assist. - W sekcji Wybierz rolę wybierz Cloud KMS > Szyfrujący i odszyfrowujący klucze CryptoKey Cloud KMS.
- Kliknij Zapisz.
Powtórz poprzedni krok, aby przyznać dostęp do konta, które utworzy indeks repozytorium kodu z kluczem CMEK.
Wróć na stronę Zarządzanie kluczami i ponownie wybierz klucz.
Kliknij Pokaż panel informacyjny. Role powinny być widoczne w kolumnie Rola/użytkownik.
gcloud
Aby przyznać dostęp do konta usługi Gemini Code Assist, w środowisku powłoki użyj polecenia
kms keys add-iam-policy-binding:gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion." \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"Zastąp następujące elementy:
- KEY_NAME: nazwa klucza.
- PROJECT_ID: identyfikator projektu, który zawiera klucz.
- LOCATION: lokalizacja klucza.
- KEYRING_NAME: nazwa pęku kluczy.
- PROJECT_NUMBER: numer projektu projektu Google Cloud z włączoną funkcją Gemini Code Assist.
Powtórz poprzedni krok, aby przyznać dostęp do konta, które utworzy indeks repozytorium kodu z kluczem CMEK.
Więcej informacji o tym poleceniu znajdziesz w
gcloud kms keys add-iam-policy-bindingdokumentacji.
Możesz teraz utworzyć indeks repozytorium kodu z CMEK za pomocą interfejsu API i określić klucz, który ma być używany do szyfrowania.
Tworzenie indeksu repozytorium kodu za pomocą klucza CMEK
Aby utworzyć nowe repozytorium z ochroną CMEK, wykonaj jedną z tych czynności:
gcloud
Użyj polecenia gemini code-repository-indexes create:
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
Zastąp następujące elementy:
- CODE_REPOSITORY_INDEX_NAME: nazwę nowego indeksu repozytorium kodu, który utworzysz.
- LOCATION: lokalizacja klucza.
- KEY_PROJECT_ID: identyfikator projektu klucza.
- KEYRING_NAME: nazwa pęku kluczy.
- KEY_NAME: nazwa klucza.
Interfejs API
Utwórz plik JSON zawierający te informacje:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }Zastąp następujące elementy:
KEY_PROJECT_ID: identyfikator projektu kluczaKEY_LOCATION: lokalizacja kluczaKEYRING_NAME: nazwa pęku kluczyKEY_NAME: nazwa klucza
Użyj polecenia
cURL, aby wywołaćprojects.locations.codeRepositoryIndexes.createmetodę:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"Zastąp następujące elementy:
JSON_FILE_NAME: ścieżka do pliku JSON utworzonego w poprzednim kroku.PROJECT_ID: identyfikator projektu, w którym ma zostać utworzone repozytorium.KEY_LOCATION: lokalizacja, w której ma zostać utworzone repozytorium. Musi być zgodna z lokalizacją, w której znajduje się klucz CMEK.CODE_REPOSITORY_INDEX_NAME: nazwa nowego indeksu repozytorium kodu, który utworzysz. Na przykład:zg-btf-0001.
Odpowiedź zawiera zestaw wpisów w logu.
Usuwanie dostępu do repozytorium kluczy CMEK
Dostęp do repozytorium zaszyfrowanego za pomocą klucza CMEK można usunąć na kilka sposobów:
- Odbierz rolę Szyfrator/deszyfrator klucza CryptoKey Cloud KMS z konta usługi Gemini Code Assist za pomocą konsoli Google Cloud lub gcloud.
- Tymczasowo wyłącz klucz CMEK.
- Trwale zniszcz klucz CMEK.
Zalecamy cofnięcie uprawnień konta usługi Gemini Code Assist przed wyłączeniem lub usunięciem klucza. Zmiany uprawnień są wprowadzane w ciągu kilku sekund, więc możesz obserwować skutki wyłączenia lub zniszczenia klucza.