Mengenkripsi resource Cloud Speech-to-Text

Halaman ini menunjukkan cara menyetel kunci enkripsi di Cloud Speech-to-Text untuk mengenkripsi resource Speech-to-Text.

Dengan Speech-to-Text, Anda dapat menyediakan kunci enkripsi Cloud Key Management Service dan mengenkripsi data dengan kunci yang disediakan. Untuk mempelajari enkripsi lebih lanjut, lihat Pengantar enkripsi.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Speech-to-Text APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. Instal Google Cloud CLI.

  7. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  8. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Speech-to-Text APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  13. Instal Google Cloud CLI.

  14. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  15. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  16. Library klien dapat menggunakan Kredensial Default Aplikasi untuk dengan mudah melakukan autentikasi dengan Google API dan mengirim permintaan ke API tersebut. Dengan Kredensial Default Aplikasi, Anda dapat menguji aplikasi secara lokal dan men-deploy aplikasi tanpa mengubah kode yang mendasarinya. Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan library klien.

  17. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

    gcloud auth application-default login

    Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.

    Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

Selain itu, pastikan Anda telah menginstal library klien.

Mengaktifkan akses ke kunci Cloud Key Management Service

Cloud Speech-to-Text menggunakan akun layanan untuk mengakses kunci Cloud KMS Anda. Secara default, akun layanan tidak memiliki akses ke kunci Cloud KMS.

Alamat email akun layanan adalah sebagai berikut:

service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com

Untuk mengenkripsi resource Speech-to-Text menggunakan kunci Cloud KMS, Anda dapat memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter pada akun layanan ini:

gcloud projects add-iam-policy-binding PROJECT_NUMBER \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Informasi selengkapnya tentang kebijakan Identity and Access Management (IAM) project tersedia di Mengelola akses ke project, folder, dan organisasi.

Informasi selengkapnya tentang cara mengelola akses ke Cloud Storage tersedia di bagian Membuat dan Mengelola daftar kontrol akses dalam dokumentasi Cloud Storage.

Menentukan kunci enkripsi

Berikut adalah contoh penyediaan kunci enkripsi ke Cloud Speech-to-Text menggunakan resource Config:

Python

import os

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def enable_cmek(
    kms_key_name: str,
) -> cloud_speech.Config:
    """Enable Customer-Managed Encryption Keys (CMEK) in a project and region.
    Args:
        kms_key_name (str): The full resource name of the KMS key to be used for encryption.
            E.g,: projects/{PROJECT_ID}/locations/{LOCATION}/keyRings/{KEY_RING}/cryptoKeys/{KEY_NAME}
    Returns:
        cloud_speech.Config: The response from the update configuration request,
        containing the updated configuration details.
    """
    # Instantiates a client
    client = SpeechClient()

    request = cloud_speech.UpdateConfigRequest(
        config=cloud_speech.Config(
            name=f"projects/{PROJECT_ID}/locations/global/config",
            kms_key_name=kms_key_name,
        ),
        update_mask={"paths": ["kms_key_name"]},
    )

    # Updates the KMS key for the project and region.
    response = client.update_config(request=request)

    print(f"Updated KMS key: {response.kms_key_name}")
    return response

Jika kunci enkripsi ditentukan dalam resource Config project Anda, setiap resource baru yang dibuat di lokasi terkait akan dienkripsi menggunakan kunci ini. Lihat halaman Pengantar enkripsi untuk mengetahui informasi selengkapnya tentang apa saja yang dienkripsi dan kapan.

Resource terenkripsi memiliki kolom kms_key_name dan kms_key_version_name yang diisi dalam respons Speech-to-Text API.

Hapus enkripsi

Agar resource di masa mendatang tidak dienkripsi dengan kunci enkripsi, gunakan kode di atas dan berikan string kosong ("") sebagai kunci dalam permintaan. Tindakan ini memastikan bahwa resource baru tidak dienkripsi. Perintah ini tidak membongkar enkripsi sumber daya yang ada.

Rotasi dan penghapusan kunci

Pada rotasi kunci, resource yang dienkripsi dengan kunci Cloud KMS versi sebelumnya tetap dienkripsi dengan versi tersebut. Setiap resource yang dibuat setelah rotasi kunci dienkripsi dengan versi default baru kunci tersebut. Setiap resource yang diupdate (menggunakan metode Update*) setelah rotasi kunci akan dienkripsi ulang dengan versi default baru kunci tersebut.

Saat penghapusan kunci, Speech-to-Text tidak dapat mendekripsi data Anda dan tidak dapat membuat resource atau mengakses resource yang dienkripsi dengan kunci yang dihapus. Demikian pula, saat Anda mencabut izin Speech-to-Text untuk sebuah kunci, Speech-to-Text tidak dapat mendekripsi data Anda dan tidak dapat membuat resource atau mengakses resource yang dienkripsi dengan kunci yang izin Speech-to-Text-nya dicabut.

Melakukan enkripsi ulang data

Untuk mengenkripsi ulang resource, Anda dapat memanggil metode Update* yang sesuai untuk setiap resource setelah memperbarui spesifikasi kunci dalam resource Config.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, ikuti langkah-langkah berikut.

  1. Opsional: Cabut kredensial autentikasi yang Anda buat, dan hapus file kredensial lokal.

    gcloud auth application-default revoke
  2. Opsional: Cabut kredensial dari gcloud CLI.

    gcloud auth revoke

Konsol

  • Di Konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  • Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  • Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
  • gcloud

    Menghapus Google Cloud project:

    gcloud projects delete PROJECT_ID

    Langkah berikutnya