Cifrar recursos de Speech-to-Text

En esta página se muestra cómo definir una clave de cifrado en Speech-to-Text para cifrar recursos de Speech-to-Text.

Speech-to-Text te permite proporcionar claves de encriptado de Cloud Key Management Service y encripta los datos con la clave proporcionada. Para obtener más información sobre el cifrado, consulta la página sobre cifrado.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Enable the Speech-to-Text APIs.

    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.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  6. Install the Google Cloud CLI.

  7. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  8. Para inicializar gcloud CLI, ejecuta el siguiente comando:

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

    Go to project selector

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

  11. Enable the Speech-to-Text APIs.

    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.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  13. Install the Google Cloud CLI.

  14. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  15. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  16. Las bibliotecas de cliente pueden usar las credenciales predeterminadas de la aplicación para autenticarse fácilmente en las APIs de Google y enviar solicitudes a esas APIs. Con las credenciales predeterminadas de la aplicación, puedes probar tu aplicación de forma local e implementarla sin cambiar el código subyacente. Para obtener más información, consulta el artículo Autenticarse para usar bibliotecas de cliente.

  17. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

  18. También debes instalar la biblioteca de cliente.

    Habilitar el acceso a las claves de Cloud Key Management Service

    Speech-to-Text usa una cuenta de servicio para acceder a tus claves de Cloud KMS. De forma predeterminada, la cuenta de servicio no tiene acceso a las claves de Cloud KMS.

    La dirección de correo de la cuenta de servicio es la siguiente:

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

    Para encriptar recursos de Speech-to-Text con claves de Cloud KMS, puedes asignar a esta cuenta de servicio el rol roles/cloudkms.cryptoKeyEncrypterDecrypter:

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

    Para obtener más información sobre las políticas de gestión de identidades y accesos de proyectos, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    Para obtener más información sobre cómo gestionar el acceso a Cloud Storage, consulta el artículo Crear y gestionar listas de control de acceso de la documentación de Cloud Storage.

    Especificar una clave de cifrado

    A continuación, se muestra un ejemplo de cómo proporcionar una clave de cifrado a Speech-to-Text mediante el recurso 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
    
    

    Cuando se especifica una clave de cifrado en el recurso [Config] de tu proyecto, los recursos nuevos que se creen en la ubicación correspondiente se cifran con esta clave. Consulta la página Cifrado para obtener más información sobre qué se cifra y cuándo.

    Los recursos cifrados tienen los campos kms_key_name y kms_key_version_name rellenados en las respuestas de la API Speech-to-Text.

    Quitar cifrado

    Para evitar que los recursos futuros se cifren con una clave de cifrado, usa el código anterior y proporciona la cadena vacía ("") como clave en la solicitud. De esta forma, los recursos nuevos no se cifran. Este comando no descifra los recursos que ya existen.

    Rotación y eliminación de claves

    Cuando se rota una clave, los recursos que se encriptan con una versión anterior de la clave de Cloud KMS siguen encriptados con esa versión. Los recursos que se creen después de la rotación de la clave se encriptarán con la nueva versión predeterminada de la clave. Los recursos que se actualicen (mediante métodos Update*) después de la rotación de claves se volverán a cifrar con la nueva versión predeterminada de la clave.

    Cuando se elimina una clave, Speech-to-Text no puede descifrar tus datos ni crear recursos o acceder a recursos cifrados con la clave eliminada. Del mismo modo, cuando revocas el permiso de Speech-to-Text de una clave, Speech-to-Text no puede descifrar tus datos ni crear recursos o acceder a recursos cifrados con la clave cuyo permiso se ha revocado.

    Volver a cifrar datos

    Para volver a cifrar tus recursos, puedes llamar al método Update* correspondiente de cada recurso después de actualizar la especificación de la clave en el recurso Config.

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

    1. Optional: Revoke the authentication credentials that you created, and delete the local credential file.

      gcloud auth application-default revoke
    2. Optional: Revoke credentials from the gcloud CLI.

      gcloud auth revoke

    Consola

  19. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  20. In the project list, select the project that you want to delete, and then click Delete.
  21. In the dialog, type the project ID, and then click Shut down to delete the project.
  22. gcloud

  23. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  24. In the project list, select the project that you want to delete, and then click Delete.
  25. In the dialog, type the project ID, and then click Shut down to delete the project.
  26. Siguientes pasos