Criptografar recursos do Speech-to-Text

Nesta página, você verá como definir uma chave de criptografia no Speech-to-Text para criptografar recursos do Speech-to-Text.

O Speech-to-Text permite fornecer chaves de criptografia do Cloud Key Management Service e criptografar dados com a chave fornecida. Para saber mais, consulte a página sobre criptografia.

Antes de começar

  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. Make sure 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.

      Acessar o IAM
    2. Selecionar um projeto.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
  6. Install the Google Cloud CLI.
  7. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  8. To initialize the gcloud CLI, run the following command:

    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. Make sure 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.

      Acessar o IAM
    2. Selecionar um projeto.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
  13. Install the Google Cloud CLI.
  14. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  15. To initialize the gcloud CLI, run the following command:

    gcloud init
  16. As bibliotecas de cliente podem usar o Application Default Credentials para autenticar facilmente com as APIs do Google e enviar solicitações para essas APIs. Com esse serviço, é possível testar seu aplicativo localmente e implantá-lo sem alterar o código subjacente. Para mais informações, consulte Autenticar 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.

Verifique também se você instalou a biblioteca de cliente.

Ativar o acesso às chaves do Cloud Key Management Service

O Speech-to-Text usa uma conta de serviço para acessar as chaves do Cloud KMS. Por padrão, a conta de serviço não tem acesso às chaves do Cloud KMS.

O endereço de e-mail da conta de serviço é:

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

Para criptografar recursos do Speech-to-Text usando chaves do Cloud KMS, atribua à conta de serviço o papel de 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

Mais informações sobre a política de IAM de projetos estão disponíveis em Gerenciar acesso a projetos, pastas e organizações.

Mais informações sobre como gerenciar o acesso ao Cloud Storage estão disponíveis em Criar e gerenciar listas de controle de acesso na documentação do Cloud Storage.

Especificar uma chave de criptografia

Veja um exemplo de como fornecer uma chave de criptografia para o Speech-to-Text usando o 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

Quando uma chave de criptografia é especificada no recurso [Config] do projeto, todos os novos recursos criados no local correspondente são criptografados usando essa chave. Consulte a página de criptografia para mais informações sobre o que é criptografado e quando.

Os recursos criptografados têm os campos kms_key_name e kms_key_version_name preenchidos nas respostas da API Speech-to-Text.

Remover criptografia

Para impedir que recursos futuros sejam criptografados com uma chave de criptografia, use o código acima e forneça a string vazia ("") como a chave na solicitação. Isso garante que novos recursos não sejam criptografados. Esse comando não descriptografa os recursos atuais.

Rotação e exclusão de chaves

Na rotação de chaves, os recursos criptografados com uma versão anterior da chave do Cloud KMS permanecem criptografados com essa versão. Todos os recursos criados após a rotação da chave são criptografados com a nova versão padrão da chave. Todos os recursos atualizados (usando métodos Update*) após a rotação de chaves são criptografados novamente com a nova versão padrão da chave.

Na exclusão de chaves, o Speech-to-Text não pode descriptografar os dados nem criar recursos ou acessar recursos criptografados com a chave excluída. Da mesma forma, quando você revoga a permissão de uma chave do Speech-to-Text, ele não pode descriptografar os dados nem criar recursos ou acessar recursos criptografados com a chave de revogação de permissão do Speech-to-Text.

Criptografar dados novamente

Para recriptografar os recursos, chame o método Update* correspondente para cada recurso após atualizar a especificação da chave no recurso Config.

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

  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

Console

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

    Go to Manage resources

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

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    A seguir