Verileri müşteri tarafından yönetilen şifreleme anahtarlarıyla şifreleme

Bu belgede, Cloud Key Management Service aracılığıyla bir bulut hizmetinde aktif olmayan verileri şifrelemek ve kontrol etmek için müşteri tarafından yönetilen şifreleme anahtarlarının (CMEK) nasıl kullanılacağı gösterilmektedir. CMEK, Gemini Code Assist için kod özelleştirme ile entegre edilmiştir. Gemini Code Assist, Cloud EKM anahtarlarının kullanımını desteklemez.

Bu belgede şunları yapacaksınız:

  • CMEK oluşturmayı öğrenin.
  • Gemini Code Assist hizmet hesabına izin verin.
  • CMEK ile bir kod deposu dizini oluşturun.
  • Bir CMEK deposuna erişimi kaldırma

Google Cloud için Gemini, varsayılan olarak aktif olmayıp depolanan müşteri içeriğini şifreler. Gemini, şifreleme işlemlerini sizin adınıza ek bir işlem yapmanıza gerek kalmadan gerçekleştirir. Bu seçeneğe Google varsayılan şifrelemesi adı verilir.

Kaynaklarınızı CMEK'lerle ayarladıktan sonra Gemini kaynaklarınıza erişme deneyimi, Google'ın varsayılan şifrelemesini kullanmaya benzer. Şifreleme seçenekleriniz hakkında daha fazla bilgi için Müşteri tarafından yönetilen şifreleme anahtarları (CMEK) başlıklı makaleyi inceleyin.

Başlamadan önce

  1. Aşağıdaki geliştirme ortamlarından birinde gcloud CLI'yi ayarlayın:

    Harici bir kimlik sağlayıcı (IdP) kullanıyorsanız önce birleştirilmiş kimliğinizle gcloud CLI'de oturum açmanız gerekir.

  2. gcloud CLI'yi kurduğunuz geliştirme ortamında, gcloud components update komutunu çalıştırarak gcloud'un yüklü tüm bileşenlerini en son sürüme güncellediğinizden emin olun.

    gcloud components update
    

CMEK oluşturma ve izin verme

CMEK oluşturmak ve Gemini Code Assist hizmet hesabına anahtarla ilgili izinler vermek için aşağıdaki görevleri gerçekleştirin:

  1. Anahtarlarınızı yönetmek istediğiniz Google Cloud projesinde aşağıdakileri yapın:

    1. Cloud Key Management Service API'yi etkinleştirin.

    2. Anahtarlığı ve anahtarı doğrudan Cloud KMS'de oluşturun.

  2. CryptoKey Şifreleyici/Şifre Çözücü IAM rolünü (roles/cloudkms.cryptoKeyEncrypterDecrypter) Gemini Code Assist hizmet hesabına verin. Oluşturduğunuz anahtarda bu izni verin.

    Console

    1. Anahtar yönetimi'ne gidin.

      Anahtar yönetimi'ne gidin

    2. Oluşturduğunuz anahtarı seçin.

    3. Gemini Code Assist hizmet hesabına erişim izni verin:

      1. Ana hesap ekle'yi tıklayın.
      2. Gemini Code Assist hizmet hesabını ekleyin. Hizmet hesabı service-PROJECT_NUMBER@gcp-sa-cloudaicompanions. şeklindedir. Burada PROJECT_NUMBER, Gemini Code Assist'in etkinleştirildiği Google Cloud projesinin proje numarasıdır.
      3. Bir rol seçin bölümünde Cloud KMS > Cloud KMS CryptoKey Şifreleyici/Şifre Çözücü'yü seçin.
      4. Kaydet'i tıklayın.
    4. CMEK ile kod deposu dizini oluşturacak hesaba erişim izni vermek için önceki adımı tekrarlayın.

    5. Anahtar yönetimi sayfasına dönüp anahtarı tekrar seçin.

    6. Bilgi panelini göster'i seçin. Rolleri Rol/Üye sütununda görürsünüz.

    gcloud

    1. Gemini Code Assist hizmeti hesaplarına erişim izni vermek için kabuk ortamında kms keys add-iam-policy-bindingkomutunu kullanın:

      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"
      

      Aşağıdakini değiştirin:

      • KEY_NAME: Anahtar adı.
      • PROJECT_ID: Anahtarı içeren projenin kimliği.
      • LOCATION: anahtar konumu.
      • KEYRING_NAME: Anahtarlık adı.
      • PROJECT_NUMBER: Gemini Code Assist'in etkinleştirildiği Google Cloud projesinin proje numarası.
    2. CMEK ile kod deposu dizini oluşturacak hesaba erişim izni vermek için önceki adımı tekrarlayın.

    Bu komut hakkında daha fazla bilgi için gcloud kms keys add-iam-policy-binding dokümanlarına bakın.

Artık API'yi kullanarak CMEK ile kod deposu dizini oluşturabilir ve şifreleme için kullanılacak anahtarı belirtebilirsiniz.

CMEK ile kod deposu dizini oluşturma

CMEK korumalı yeni bir depo oluşturmak için aşağıdakilerden birini yapın:

gcloud

gemini code-repository-indexes create komutunu kullanın:

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"

Aşağıdakini değiştirin:

  • CODE_REPOSITORY_INDEX_NAME: Oluşturacağınız yeni kod deposu dizininin adı.
  • LOCATION: anahtar konumu.
  • KEY_PROJECT_ID: Anahtar proje kimliği.
  • KEYRING_NAME: Anahtarlık adı.
  • KEY_NAME: Anahtar adı.

API

  1. Aşağıdaki bilgileri içeren bir JSON dosyası oluşturun:

      {
        "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
      }
    

    Aşağıdakini değiştirin:

    • KEY_PROJECT_ID: Anahtar proje kimliği
    • KEY_LOCATION: anahtar konumu
    • KEYRING_NAME: Anahtarlık adı
    • KEY_NAME: Anahtar adı
  2. cURL komutunu kullanarak projects.locations.codeRepositoryIndexes.create yöntemini çağırın:

    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"

    Aşağıdakini değiştirin:

    • JSON_FILE_NAME: Önceki adımda oluşturduğunuz JSON dosyasının yolu.
    • PROJECT_ID: Deponun oluşturulacağı projenin kimliği.
    • KEY_LOCATION: Deponun oluşturulacağı konum. Bu konum, CMEK'in bulunduğu konumla eşleşmelidir.
    • CODE_REPOSITORY_INDEX_NAME: Oluşturacağınız yeni kod deposu dizininin adı. Örneğin, zg-btf-0001.

Yanıtta bir dizi günlük girişi döndürülür.

CMEK deposuna erişimi kaldırma

CMEK ile şifrelenmiş bir depoya erişimi kaldırmanın birkaç yolu vardır:

Bir anahtarı devre dışı bırakmadan veya yok etmeden önce Gemini Code Assist hizmet hesabının izinlerini iptal etmenizi öneririz. İzinlerdeki değişiklikler saniyeler içinde tutarlı hale gelir. Bu nedenle, bir anahtarı devre dışı bırakmanın veya kaldırmanın etkilerini gözlemleyebilirsiniz.