Szyfrowanie danych za pomocą kluczy szyfrowania zarządzanych przez klienta

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

  1. 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.

  2. 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:

  1. W projekcie Google Cloud, w którym chcesz zarządzać kluczami, wykonaj te czynności:

    1. Włącz Cloud Key Management Service API.

    2. Utwórz pęk kluczyklucz bezpośrednio w Cloud KMS.

  2. Przypisz rolę uprawnień Szyfrator/deszyfrator klucza CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) do konta usługi Gemini Code Assist. Przyznaj to uprawnienie utworzonemu kluczowi.

    Konsola

    1. Otwórz Zarządzanie kluczami.

      Otwórz Zarządzanie kluczami

    2. Wybierz utworzony klucz.

    3. Przyznaj dostęp do konta usługi Gemini Code Assist:

      1. Kliknij Dodaj podmiot zabezpieczeń.
      2. 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.
      3. W sekcji Wybierz rolę wybierz Cloud KMS > Szyfrujący i odszyfrowujący klucze CryptoKey Cloud KMS.
      4. Kliknij Zapisz.
    4. Powtórz poprzedni krok, aby przyznać dostęp do konta, które utworzy indeks repozytorium kodu z kluczem CMEK.

    5. Wróć na stronę Zarządzanie kluczami i ponownie wybierz klucz.

    6. Kliknij Pokaż panel informacyjny. Role powinny być widoczne w kolumnie Rola/użytkownik.

    gcloud

    1. Aby przyznać dostęp do konta usługi Gemini Code Assist, w środowisku powłoki użyj kms keys add-iam-policy-bindingpolecenia:

      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.
    2. 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

  1. 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 klucza
    • KEY_LOCATION: lokalizacja klucza
    • KEYRING_NAME: nazwa pęku kluczy
    • KEY_NAME: nazwa klucza
  2. 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:

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.