Chiffrer des ressources Speech-to-Text

Cette page explique comment définir une clé de chiffrement dans Speech-to-Text afin de chiffrer des ressources Speech-to-Text.

Speech-to-Text vous permet de fournir des clés de chiffrement Cloud Key Management Service et de chiffrer les données avec la clé fournie. Pour en savoir plus sur le chiffrement, consultez la page Chiffrement.

Avant de commencer

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

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
    7. Cliquez sur Enregistrer.
    8. Install the Google Cloud CLI.
    9. To initialize the gcloud CLI, run the following command:

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

      Go to project selector

    11. Make sure that billing is enabled for your Google Cloud project.

    12. Enable the Speech-to-Text APIs.

      Enable the APIs

    13. 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 colunn 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.

        Accéder à IAM
      2. Sélectionnez le projet.
      3. Cliquez sur Accorder l'accès.
      4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

      5. Dans la liste Sélectionner un rôle, sélectionnez un rôle.
      6. Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez chaque rôle supplémentaire.
      7. Cliquez sur Enregistrer.
      8. Install the Google Cloud CLI.
      9. To initialize the gcloud CLI, run the following command:

        gcloud init
      10. Les bibliothèques clientes peuvent utiliser les identifiants par défaut de l'application pour s'authentifier facilement auprès des API Google et envoyer des requêtes à ces API. Ces identifiants vous permettent de tester votre application localement et de la déployer sans modifier le code sous-jacent. Pour plus d'informations, consultez la page Authentifiez-vous à l'aide des bibliothèques clientes.

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

      Vérifiez également que vous avez installé la bibliothèque cliente.

      Activer l'accès aux clés Cloud Key Management Service

      Speech-to-Text utilise un compte de service pour accéder à vos clés Cloud KMS. Par défaut, le compte de service n'a pas accès aux clés Cloud KMS.

      L'adresse e-mail du compte de service est la suivante:

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

      Pour chiffrer des ressources Speech-to-Text à l'aide de clés Cloud KMS, vous pouvez attribuer à ce compte de service le rôle 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

      Pour en savoir plus sur la stratégie IAM du projet, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

      Pour en savoir plus sur la gestion des accès à Cloud Storage, consultez la page intitulée Créer et gérer des listes de contrôle d'accès dans la documentation Cloud Storage.

      Spécifier une clé de chiffrement

      Voici un exemple de spécification d'une clé de chiffrement pour Speech-to-Text à l'aide de la ressource 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
      
      

      Lorsqu'une clé de chiffrement est spécifiée dans la ressource [Config] de votre projet, toutes les ressources créées dans l'emplacement correspondant sont chiffrées à l'aide de cette clé. Consultez la page Chiffrement pour en savoir plus sur ce qui est chiffré, et à quel moment.

      Dans une ressource chiffrée, les champs kms_key_name et kms_key_version_name sont renseignés dans les réponses de l'API Speech-to-Text.

      Supprimer le chiffrement

      Pour empêcher le chiffrement de futures ressources avec une clé de chiffrement, utilisez le code ci-dessus et spécifiez une chaîne vide ("") comme clé de requête. Cela permet de s'assurer que les nouvelles ressources ne sont pas chiffrées. Cette commande ne déchiffre pas les ressources existantes.

      Rotation et suppression de clés

      Lors de la rotation des clés, les ressources chiffrées avec une version précédente de la clé Cloud KMS restent chiffrées avec cette version. Toutes les ressources créées après la rotation des clés sont chiffrées avec la nouvelle version de clé par défaut. Toutes les ressources mises à jour (à l'aide des méthodes Update*) après la rotation des clés sont rechiffrées avec la nouvelle version par défaut de la clé.

      Lors d'une suppression de clé, Speech-to-Text ne peut pas déchiffrer vos données, et ne peut pas créer de ressources ni accéder à des ressources qui ont été chiffrées avec la clé supprimée. De même, lorsque vous révoquez l'autorisation Speech-to-Text pour une clé, Speech-to-Text ne peut plus déchiffrer vos données, et ne peut plus créer de ressources ni accéder aux ressources qui ont été chiffrées avec la clé dont l'autorisation Speech-to-Text a été révoquée.

      Rechiffrer des données

      Pour rechiffrer vos ressources, vous pouvez appeler la méthode Update* correspondante pour chaque ressource après avoir mis à jour la spécification de clé dans la ressource Config.

      Effectuer un nettoyage

      Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, suivez les étapes ci-dessous :

      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

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

      Go to Manage resources

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

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

      Étapes suivantes