Par défaut, Cloud Tasks chiffre vos données stockées au repos. Google Cloud gère automatiquement ce chiffrement par défaut de votre part.
Si vous avez des exigences réglementaires ou de conformité spécifiques liées aux clés qui protègent vos données, vous pouvez utiliser clés de chiffrement gérées par le client (CMEK) pour Cloud Tasks. Votre tâche et les données associées (corps et en-tête) au repos sont protégées à l'aide d'une clé de chiffrement à laquelle vous seul pouvez accéder, et que vous pouvez contrôler et gérer à l'aide de Cloud Key Management Service (Cloud KMS).
Éléments protégés par CMEK
Lorsque vous activez CMEK dans Cloud Tasks, vous l'activez pour une région. Lorsqu'elle est activée, le corps et l'en-tête des tâches créées dans cette région sont protégés par votre clé lorsqu'ils sont au repos. Si une tâche a été créée alors que CMEK était activé et la clé est ensuite rendue inactive (en désactivant ou supprimant la clé, ou en désactivation CMEK), la tâche est chiffrée avec votre clé, mais ne peut pas être exécutée.
Les tâches ne sont pas protégées par CMEK dans les cas suivants :
- La tâche a été créée avant l'activation de CMEK
- La tâche ne se trouve pas dans la région pour laquelle CMEK est activé
- La tâche est affectée par une limite de compatibilité
Limites de compatibilité
L'intégration de Cloud Tasks avec CMEK n'est pas compatible avec suivantes:
google-gax
versions ci-dessous4.0.0
: le package NPMgoogle-gax
pour Node.js est compatible de façon limitée sur versions antérieures à4.0.0
. Pour ces versions, les clés CMEK ne sont compatibles qu'avec les la régionus-central1
. Même si vous n'avez que des tâches dans cette région, vous est recommandé de passer à la version4.0.0
ou à une version ultérieure.Service de file d'attente de tâches intégré à App Engine:tâches créées à l'aide du Le service de file d'attente de tâches intégré à App Engine n'est pas protégé par des clés CMEK, même si ils se trouvent dans une région pour laquelle il est activé. L'activation de CMEK n'empêche pas la création ni l'exécution (par exemple, l'exécution ou la suppression) de ces tâches.
Files d'attente de retrait:si vous activez les CMEK, vous pouvez créer et exécuter des tâches de retrait mais ces tâches ne sont pas protégées par des clés CMEK. Les files d'attente de retrait sont peu courantes. Pour vérifier si votre file d'attente est une file d'attente de retrait, exécutez la commande suivante : gcloud CLI dans votre terminal:
gcloud tasks queues describe QUEUE_NAME
Remplacez
QUEUE_NAME
par le nom de votre file d'attente.Si
type
estpull
, votre file d'attente est une file d'attente pull. Si letype
listée estpush
, cette limitation n'affecte pas les tâches de votre file d'attente.Routage au niveau de la file d'attente : lorsque CMEK est activé, vous ne pouvez pas appliquer le routage au niveau de la file d'attente. Si le routage au niveau de la file d'attente est activé, vous ne pouvez pas activer CMEK. Pour vérifier si le routage au niveau de la file d'attente est activé, procédez comme suit:
Exécutez la commande gcloud CLI suivante dans votre terminal:
Remplacezgcloud tasks queues describe QUEUE_NAME
QUEUE_NAME
par le nom de votre file d'attente.Dans le résultat, recherchez le champ
httpTarget
et vérifiez si le Le paramètreuriOverride
a été défini. Si unhost
est spécifié, le routage au niveau de la file d'attente est activé et n'est pas compatible avec CMEK. Pour supprimer au niveau de la file d'attente, consultez Mettez à jour ou supprimez le routage au niveau de la file d'attente. Si la sortie n'affiche pasuriOverride
avec unhost
spécifié, votre n'utilise pas le routage au niveau de la file d'attente.
Valeur TTL de la tâche:lorsque la clé CMEK est activée, vous ne pouvez pas définir
task_ttl
jusqu'à depuis plus de 60 jours. Et si vous avez défini une valeur detask_ttl
supérieure à 60 jours, vous ne pouvez pas activer les CMEK.
Avant de commencer
Avant d'utiliser des CMEK dans Cloud Tasks, procédez comme suit:
Activez les API.
Console
-
Enable the Cloud KMS and Cloud Tasks APIs.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Définissez votre projet par défaut. Il doit s'agir du projet qui contient les ressources Cloud Tasks que vous souhaitez protéger CMEK. Si vous devez exécuter une commande dans un autre projet, tel que le projet contenant vos ressources Cloud KMS, cette page inclura l'option
--project
dans la commande gcloud CLI et vous indiquera le projet à spécifier.gcloud config set project PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projet. qui contient vos ressources Cloud Tasks.Mettez à jour les composants
gcloud
.gcloud components update
Activez les API Cloud KMS et Cloud Tasks pour le projet qui stockera vos clés de chiffrement.
gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com
--project=PROJECT_IDRemplacez
PROJECT_ID
par l'ID du projet qui stockera vos clés de chiffrement. Il peut s’agir du même projet que vos ressources Cloud Tasks, mais pour limiter l'accès clés Cloud KMS, vous pouvez Configurez Cloud KMS dans un projet distinct.
-
Cloud KMS génère des Cloud Audit Logs lorsque les clés sont activées. désactivée ou utilisée par les ressources Cloud Tasks pour chiffrer et déchiffrer données. Assurez-vous que la journalisation est activée pour l'API Cloud KMS dans votre projet et que vous avez décidé des autorisations et des rôles spécifiques à la journalisation qui s'appliquent à votre cas d'utilisation. Pour plus pour en savoir plus, consultez Informations sur les journaux d'audit Cloud KMS
Obtenez les rôles Identity and Access Management.
Pour obtenir les autorisations nécessaires pour utiliser des CMEK avec Cloud Tasks, demandez à votre administrateur de vous accorder le les rôles IAM suivants sur votre projet:
-
Activez ou désactivez CMEK :
roles/cloudtasks.admin
-
Afficher la clé utilisée :
roles/cloudtasks.viewer
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Activez ou désactivez CMEK :
Créer un trousseau et une clé Cloud KMS
Si vous disposez déjà d'un trousseau de clés dans la même région que votre des ressources Cloud Tasks et que vous souhaitez utiliser cette clé et ce trousseau, passer cette section. Si ce n'est pas le cas, suivez ces instructions pour créer votre clé et votre trousseau Cloud KMS.
-
Le trousseau de clés doit se trouver dans la région qui contient les ressources Cloud Tasks que vous souhaitez protéger. Pour plus consultez la page Emplacements Cloud KMS et Emplacements Cloud Tasks
Le trousseau de clés et les ressources Cloud Tasks protégées par CMEK peuvent se trouver dans le même projet, mais pour limiter l'accès à vos clés Cloud KMS, envisagez de configurer Cloud KMS dans un projet distinct.
Récupérez l'ID d'une clé Cloud KMS.
Veuillez indiquer l'ID de ressource d'une clé Cloud KMS lorsque vous activez CMEK pour Cloud Tasks.
Console
Dans la console Google Cloud, accédez à la page Gestion des clés et sélectionnez dans l'onglet Inventaire de clés.
Pour la clé dont vous voulez récupérer l'ID de ressource, cliquez sur more_vert Actions.
Cliquez sur Copier le nom de la ressource.
L'ID de ressource pour la clé est copié dans votre presse-papiers. Son format est semblable à ce qui suit :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
gcloud
Répertoriez toutes les clés d'un trousseau de clés donné :
gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID
Remplacez les éléments suivants :
KEY_RING
: nom du trousseau de clésLOCATION
: région du trousseau de clésPROJECT_ID
: ID du projet contient le trousseau de clés
Le résultat inclut l'ID de chaque clé. Exemple :
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Accorder à l'agent de service Cloud Tasks l'accès à la clé
Vous devez accorder à l'agent de service Cloud Tasks la Chiffreur/Déchiffreur de CryptoKeys Cloud KMS Identity and Access Management (IAM) afin qu'il puisse accéder à Cloud KMS clé:
Console
Dans la console Google Cloud, accédez à la page "Identity and Access Management" (Gestion de l'authentification et des accès).
Cochez la case Inclure les attributions de rôles fournies par Google.
Recherchez le compte de service Cloud Tasks en saisissant
cloudtasks.iam.gserviceaccount.com
dans le filtre.Le compte de service Cloud Tasks se présente sous la forme
service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com
.Cliquez sur l'icône en forme de crayon Modifier le compte principal.
Dans le panneau qui s'affiche, cliquez sur Ajouter un autre rôle.
Recherchez et sélectionnez le rôle Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
Cliquez sur Enregistrer.
gcloud
gcloud kms keys add-iam-policy-binding KEY_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Remplacez les éléments suivants :
KEY_ID
: ID de ressource complet de votre . Pour savoir comment trouver cette option, consultez Récupérez l'ID d'une clé Cloud KMS. N'incluez pas de numéro de version de clé. L'ajout d'un numéro de version de clé peut entraîner l'échec de cette commande.PROJECT_NUMBER
: numéro de votre projet Google Cloud. Vous pouvez trouver le numéro de votre projet sur la page Bienvenue de la console Google Cloud ou en exécutant la commande suivante :PROJECT=$(gcloud info --format='value(config.project)') gcloud projects describe ${PROJECT} --format="value(projectNumber)"
Tant que l'agent de service dispose du roles/cloudkms.cryptoKeyEncrypterDecrypter
une tâche dans votre région pour laquelle les CMEK sont activés peut chiffrer et déchiffrer ses données à l'aide de
la clé CMEK. Si vous révoquez ce rôle, ou si vous désactivez ou détruisez la clé CMEK
, les données ne sont pas accessibles. Dans ce document, consultez la section Désactiver Cloud KMS.
Activer CMEK pour Cloud Tasks
Vous pouvez activer les CMEK à l'aide de l'API ou de gcloud CLI. Pour Dans Cloud Tasks, les clés CMEK sont activées par région. Il n'est pas activé par les tâches individuelles. Lorsque le chiffrement CMEK est activé pour une région donnée dans Cloud Tasks, toutes les tâches de cette région sont protégées par CMEK.
API
Vous pouvez activer CMEK en appelant la méthode Update CMEK config
. L'API Cloud Tasks fournit la méthode Update CMEK config
dans les API REST et RPC :
- REST : utilisez la méthode
updateCmekConfig
. - RPC : utilisez la méthode
UpdateCmekConfigRequest
.
gcloud
Pour activer CMEK à l'aide de la Google Cloud CLI, exécutez la commande suivante :
gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID
Remplacez les éléments suivants :
LOCATION
: région de votre ressource Cloud TasksKEY_ID
: ID de ressource complet de votre clé. Pour savoir comment trouver cette option, consultez Récupérez l'ID d'une clé Cloud KMS. N'incluez pas de numéro de version de clé. Si vous incluez un numéro de version de clé, cette commande risque d'échouer.
Pour vérifier que la clé a bien été activée, suivez les instructions dans la section Identifier la clé utilisée.
Activer pour les tâches préexistantes
Une clé CMEK ne protège pas les tâches créées avant son activation pour Cloud Tasks. Pour protéger des tâches préexistantes avec CMEK :
- Activez CMEK (voir la section sur l'activation de CMEK).
Remplacez les tâches préexistantes. Pour ce faire, vous avez deux options principales. La la meilleure façon de procéder dépend de ce qui est important pour vous:
Exécution continue:pour garantir une exécution continue ("au moins une fois" livraison), vous pouvez d'abord recréer la tâche, puis supprimer la tâche existante après avoir vérifié que la nouvelle tâche fonctionne comme prévu. Cela peut entraîner les exécutions en double, car l'ancienne et la nouvelle tâche peuvent toutes deux s'exécuter avant que vous supprimer l'ancienne tâche.
Protection contre les doublons:pour éviter les exécutions en double ("une fois au plus" diffusion), vous pouvez commencer par supprimer l'ancienne tâche, puis la recréer. Cela peut entraîner des exécutions perdues en raison du temps écoulé entre la suppression de l'ancienne tâche et la création de la nouvelle.
Identifier la clé utilisée
Pour identifier la clé CMEK utilisée pour vos ressources Cloud Tasks, Exécutez la commande gcloud CLI suivante dans votre terminal:
gcloud tasks cmek-config describe --location=LOCATION
Remplacez LOCATION
par la région de votre
ressources Cloud Tasks.
Si aucune sortie n'est générée, CMEK n'est pas configuré pour l'emplacement spécifié.
Désactiver les CMEK pour Cloud Tasks
Vous pouvez désactiver CMEK à l'aide de l'API ou de la gcloud CLI. Pour Cloud Tasks, la fonctionnalité CMEK est désactivée par région. Il n'est pas désactivé par des tâches individuelles. Lorsque CMEK est désactivé pour une région donnée dans Cloud Tasks, les tâches de cette région ne sont pas protégées par CMEK.
La désactivation des CMEK affecte les tâches créées à l'avenir, et non celles créées dans passé:
- Nouvelles tâches : elles ne sont pas protégées par CMEK.
Tâches préexistantes : les tâches créées lorsque CMEK était activé restent chiffrées et continuent à s'exécuter tant que la clé Cloud KMS reste active.
API
Vous pouvez désactiver CMEK en appelant la méthode Update CMEK config
et en effaçant la clé Cloud KMS en la remplaçant par une chaîne vide. L'API Cloud Tasks fournit la méthode Update CMEK config
dans les API REST et RPC :
- REST: utilisez la méthode
updateCmekConfig
. - RPC::utilisez la méthode
UpdateCmekConfigRequest
.
gcloud
Pour désactiver les CMEK à l'aide de la Google Cloud CLI, exécutez la commande suivante:
gcloud tasks cmek-config update --location=LOCATION --clear-kms-key
Remplacez les éléments suivants :
LOCATION
: région de votre ressource Cloud Tasks.
Supprimer Cloud KMS
Si vous souhaitez révoquer l'accès aux données pour vos tâches, vous pouvez supprimer Cloud KMS. Vous pouvez le faire de trois manières :
Désactivez la clé de chiffrement gérée par le client. La désactivation d'une clé CMEK entraîne la suspension de l'accès à toutes les données protégées par cette version de clé lorsqu'elle est désactivée. Vous ne pouvez pas accéder ni créer de tâches avec une clé désactivée. Toute tentative d'exécution d'une tâche protégée par CMEK lorsque la clé est désactivée entraîne une erreur
UNKNOWN
dans Cloud Logging. Vous pouvez réactiver la clé plus tard si vous le souhaitez. La désactivation d'une clé de chiffrement gérée par le client peut prendre jusqu'à cinq minutes. pour que le changement s'applique.Détruire le bucket géré par le client clé de chiffrement. La destruction d'une clé CMEK entraîne la suspension définitive de l'accès à toutes les données protégées par cette version de clé. Vous ne pouvez pas accéder ni créer de tâches avec une clé qui a été détruite. Si une tâche a été créée lorsque CMEK était activé et que la clé est détruite par la suite, la tâche est chiffrée avec votre clé, mais ne peut pas être exécutée. Si tente de s'exécuter, Cloud Logging consigne une erreur
UNKNOWN
. Quand ? vous détruisez une clé de chiffrement gérée par le client, l'opération peut prendre la modification à appliquer.Révoquez le
cloudkms.cryptoKeyEncrypterDecrypter
le rôle IAM du Agent de service Cloud Tasks. Cela affecte toutes les tâches du projet Google Cloud qui acceptent le chiffrement à l'aide de CMEK. Vous ne pouvez pas créer de tâches intégrées à CMEK ni afficher de ressources chiffrées avec CMEK.
Bien qu'aucune de ces opérations ne garantit une révocation instantanée de l'accès, Les modifications IAM prennent généralement effet plus rapidement. Pour en savoir plus, consultez les pages Cohérence des ressources Cloud KMS et Propagation des modifications d'accès.
Tarifs
Cette intégration n'entraîne pas de coûts supplémentaires au-delà des opérations de clés, qui sont facturés à votre projet Google Cloud. Pour le tarif actuel plus d'informations, consultez la page Tarifs de Cloud KMS.