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 dodatkowych działań z Twojej strony. 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 update
polecenie, 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.
Przypisz rolę uprawnień Szyfrator/deszyfrator klucza CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) do konta usługi Gemini Code Assist. Przyznaj to uprawnienie utworzonemu kluczowi.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
kms keys add-iam-policy-binding
polecenia: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-binding
dokumentacji.
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.create
metodę: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 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ę szyfratora/deszyfratora klucza CryptoKey Cloud KMS kontu usługi Gemini Code Assist za pomocą konsoli API 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.