Par défaut, Cloud Run chiffre le contenu client au repos. Cloud Run gère le chiffrement sans intervention de votre part. Cette option est appelée chiffrement par défaut de Google.
Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Cloud Run. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.
Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Cloud Run est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).
Pour savoir comment protéger vos données avec des clés CMEK sur les fonctions créées à l'aide des commandes gcloud functions ou de l'API Cloud Functions v2, consultez Protéger vos données avec des clés CMEK.
Vous devez tenir compte des points suivants :
- Les métadonnées des fichiers, telles que le chemin d'accès, ne sont pas chiffrées.
- Les métadonnées du service Cloud Run ou du pool de nœuds de calcul, telles que les variables de nom ou d'environnement, ne sont pas chiffrées à l'aide de la clé fournie, mais avec une clé Google-owned and Google-managed encryption key.
- Lors de l'exécution, la mémoire et le contenu des fichiers ne sont pas chiffrés.
- Si une CMEK est désactivée, les nouvelles instances de révisions Cloud Run existantes qui utilisent cette clé ne démarrent pas.
- Si une clé CMEK est désactivée, le déploiement d'une nouvelle révision Cloud Run échouera, sauf si une nouvelle clé valide est utilisée.
CMEK avec Cloud KMS Autokey
Pour protéger vos ressources Cloud Run, vous pouvez créer des clés CMEK manuellement ou utiliser Cloud KMS Autokey. Avec Autokey, les trousseaux de clés et les clés sont générés à la demande pour permettre la création de ressources dans Cloud Run. Les agents de service qui utilisent les clés pour les opérations de chiffrement et de déchiffrement sont créés s'ils n'existent pas déjà et s'ils disposent des rôles IAM (Identity and Access Management) requis. Pour en savoir plus, consultez Présentation d'Autokey.
Pour configurer CMEK manuellement, suivez les instructions permettant de configurer CMEK pour un service ou un pool de nœuds de calcul.
Pour configurer CMEK à l'aide d'Autokey, suivez les instructions pour configurer les clés automatiques pour un service ou un pool de nœuds de calcul.
Autokey n'est pas disponible pour les fonctions créées à l'aide des commandes gcloud functions ou de l'API Cloud Functions v2.
Quotas Cloud KMS et Cloud Run
Vous pouvez définir votre CMEK sur l'un des niveaux de protection disponibles pour indiquer comment sont effectuées les opérations de chiffrement. Lorsque vous utilisez des clés de chiffrement gérées par le client (CMEK) dans Cloud Run, vos projets peuvent consommer des quotas de requêtes de chiffrement Cloud KMS. Par exemple, les dépôts chiffrés avec CMEK peuvent utiliser ces quotas pour chaque importation ou téléchargement.
Les opérations de chiffrement et de déchiffrement utilisant des clés CMEK affectent les quotas de Cloud KMS de différentes manières :
- Pour les clés logicielles CMEK générées dans Cloud KMS, aucun quota Cloud KMS n'est consommé.
- Pour les clés CMEK matérielles (parfois appelées "clés Cloud HSM"), les opérations de chiffrement et de déchiffrement sont comptabilisées dans les quotas Cloud HSM du projet qui contient la clé.
- Pour les clés CMEK externes (parfois appelées "clés Cloud EKM"), les opérations de chiffrement et de déchiffrement sont comptabilisées dans les quotas Cloud EKM du projet qui contient la clé.
Pour en savoir plus, consultez la page Quotas Cloud KMS.
Impact de la fonctionnalité CMEK sur le comportement de l'autoscaling
Le comportement d'autoscaling attendu pour votre service Cloud Run peut être affecté lorsque vous utilisez des clés de chiffrement gérées par le client. Par exemple, la latence de démarrage des nouvelles instances peut augmenter en raison des délais de communication avec les systèmes de gestion de clés externes pour les opérations de clés.
Le tableau suivant montre les changements de comportement possibles liés à l'utilisation de CMEK :
| Opération CMEK | Comportement d'autoscaling |
|---|---|
| Clé désactivée/détruite/révoquée | Les nouvelles instances ne démarrent pas. |
| Impossible de contacter le gestionnaire de clés externe | Si la requête de clé peut être relancée, aucune instance n'est arrêtée lors des nouvelles tentatives et aucune nouvelle instance ne démarre. Le scaling horizontal peut prendre plus de temps que prévu. Si la requête de clé ne peut pas être relancée, aucune nouvelle instance n'est démarrée et les instances en cours d'exécution sont arrêtées après un délai d'attente. |
| Quota KMS dépassé | Si ce quota est dépassé, des erreurs RESOURCE_EXHAUSTED sont consignées et les nouvelles instances ne démarrent pas. Pour résoudre ce problème, vous pouvez demander un quota supplémentaire. |
Avant de commencer
Autoriser Cloud Run à accéder à une clé
Pour utiliser CMEK pour Cloud Run, procédez comme suit :
Configurez Artifact Registry pour utiliser CMEK.
En utilisant le guide de démarrage rapide pour Docker d'Artifact Registry comme référence, créez un dépôt Docker pour y transférer une image.
Utilisez une clé symétrique Cloud KMS existante ou créez une clé symétrique.
Pour autoriser Cloud Run à accéder à la clé, accordez à l'agent de service Cloud Run le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS :
Console
Accédez à la page Clés de chiffrement.
Cliquez sur le trousseau de clés pour ouvrir la page de la liste des clés.
Sélectionnez la clé, puis cliquez sur Ajouter une entité principale dans l'onglet des autorisations situé à droite.
Dans le champ Nouvelles entités principales, copiez l'adresse e-mail de l'agent de service Cloud Run. Elle porte le suffixe suivant :
service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com.
Dans le champ Sélectionner un rôle, sélectionnez Chiffreur/Déchiffreur de CryptoKeys Cloud KMS.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande
gcloud kmssuivante :gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring=KEYRING \ --location=LOCATION \ --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'
Remplacez les éléments suivants :
- KEY_NAME : nom de votre clé.
- KEYRING : nom de votre trousseau de clés.
- LOCATION : nom de votre région.
- PROJECT_NUMBER : numéro du projet dans lequel vous prévoyez de déployer le service ou le pool de nœuds de calcul Cloud Run.
Vous devez disposer des autorisations nécessaires pour administrer les ressources Cloud KMS du projetGoogle Cloud afin d'accorder le rôle IAM
roles/cloudkms.cryptoKeyEncrypterDecrypter. Seuls les membres IAM dotés du rôle de propriétaire (roles/owner) ou d'administrateur Cloud KMS (roles/cloudkms.admin) peuvent accorder ou révoquer l'accès aux ressources Cloud KMS.
Configurer CMEK pour un service
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Sélectionnez Services dans le menu de navigation Cloud Run, puis cliquez sur Déployer un conteneur pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration du service.
Cliquez sur l'onglet Sécurité.
- Sous Chiffrement :
- Sélectionnez Clé Cloud KMS.
- Pour Type de clé, sélectionnez Cloud KMS.
- Dans le menu Sélectionner une clé Cloud KMS, choisissez l'une des options suivantes :
Sélectionnez Changer de projet si vous devez utiliser une clé provenant d'un autre projet. Vous pouvez référencer une clé d'un autre projet si le compte de service de votre projet peut accéder à la clé pour les opérations de chiffrement et de déchiffrement.
Sélectionnez Saisir la clé manuellement pour saisir le secret d'un projet, au format suivant :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.- Accédez à la page Clés de chiffrement.
- Cliquez sur le trousseau de clés.
- Sélectionnez le nom du trousseau de clés choisi, puis cliquez sur Actions.
- Sélectionnez Copier le nom de la ressource dans le menu et collez-le dans le champ Nom de ressource de la clé à l'étape précédente.
- Dans le menu du Action en cas de révocation de clé, choisissez l'une des options suivantes :
Empêcher la nouvelle instance de conteneur : aucune nouvelle instance ne démarre après la révocation de la clé CMEK.
Arrêter dès que possible : aucune nouvelle instance ne démarre et les instances existantes s'arrêtent après la révocation de la clé CMEK.
Délai d'arrêt personnalisé : spécifiez le nombre d'heures avant l'arrêt du service.
Pour copier et coller le nom de la ressource d'un autre projet auquel vous avez accès, procédez comme suit :
- Sous Chiffrement :
Cliquez sur Créer ou Déployer.
gcloud
Pour définir une clé sur un service, utilisez l'une des commandes suivantes :
gcloud run deploy SERVICE \ --image IMAGE_URL \ --key KEY \ --post-key-revocation-action-type KEY_REVOCATION_ACTION --encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run services update SERVICE --key KEY --post-key-revocation-action-type KEY_REVOCATION_ACTION --encryption-key-shutdown-hours SHUTDOWN_HOURS
Remplacez les éléments suivants :
- SERVICE : nom de votre service.
- IMAGE_URL : référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL est au formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - KEY : nom complet de la clé, au format suivant :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME. - KEY_REVOCATION_ACTION :
shut-downouprevent-new, en fonction de vos préférences de révocation de clé. - SHUTDOWN_HOURS : nombre d'heures de délai avant l'arrêt du service après la révocation.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour les annotations CMEK suivantes avec les valeurs souhaitées :
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS name: REVISION
Remplacez les éléments suivants :
- SERVICE : nom de votre service Cloud Run.
- PROJECT_NAME : nom du projet dans lequel la clé a été créée.
- LOCATION : emplacement dans lequel la clé a été créée. Doit correspondre à l'emplacement du service Cloud Run.
- KEYRING_NAME : nom du trousseau de clés.
- KEY_NAME : nom de la clé.
- KEY_REVOCATION_ACTION :
shut-downouprevent-new, en fonction de vos préférences de révocation de clé. - SHUTDOWN_HOURS : nombre d'heures de délai avant l'arrêt du service après la révocation.
- REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
- Commencer par
SERVICE- - Ne contenir que des lettres minuscules, des chiffres et
- - Ne pas se terminer par
- - Ne pas dépasser 63 caractères
- Commencer par
Remplacez la configuration du service en utilisant la commande suivante :
gcloud run services replace service.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Ajoutez les éléments suivants à une ressource google_cloud_run_v2_service dans votre configuration Terraform.
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "europe-west1"
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
encryption_key = "projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
}
}
Remplacez les éléments suivants :
- SERVICE : nom de votre service Cloud Run.
- PROJECT_NAME : nom du projet dans lequel la clé a été créée.
- LOCATION : emplacement dans lequel la clé a été créée. Doit correspondre à l'emplacement du service Cloud Run.
- KEYRING_NAME : nom du trousseau de clés.
- KEY_NAME : nom de la clé.
Utiliser Autokey pour les services
Si vous ne l'avez pas déjà fait, activez Cloud KMS Autokey.
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Sélectionnez Services dans le menu de navigation Cloud Run, puis cliquez sur Déployer un conteneur pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration du service.
Cliquez sur l'onglet Sécurité.
- Sous Chiffrement :
- Dans le menu Type de clé, sélectionnez Cloud KMS avec clé automatique.
- Cliquez sur Demander une clé.
- Cliquez sur Créer.
Les détails de la clé s'affichent une fois la ressource créée.
- Dans le menu du Action en cas de révocation de clé, choisissez l'une des options suivantes :
Empêcher la création d'une instance de conteneur : aucune nouvelle instance ne démarre après la révocation de la clé CMEK.
Arrêter dès que possible : aucune nouvelle instance ne démarre et les instances existantes s'arrêtent après la révocation de la clé CMEK.
Délai d'arrêt personnalisé : spécifiez le nombre d'heures avant l'arrêt du service.
- Sous Chiffrement :
Cliquez sur Créer ou Déployer.
Afficher les paramètres de sécurité des services
Pour afficher les paramètres de sécurité de votre service Cloud Run :
Console
Dans la console Google Cloud , accédez à la page Services de Cloud Run :
Cliquez sur votre service pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Révisions.
Dans le panneau de détails sur la droite, le paramètre de sécurité est répertorié sous l'onglet Sécurité.
gcloud
Exécutez la commande suivante pour afficher les paramètres de sécurité :
gcloud run services describe SERVICE
Recherchez le paramètre de sécurité dans la configuration renvoyée.
Configuration supplémentaire pour les déploiements basés sur la source
Les déploiements de sources Cloud Run et les fonctions nécessitent une étape de compilation supplémentaire. Pour garantir la conformité CMEK de cette étape, vous devez effectuer les opérations suivantes :
Créez votre propre bucket Cloud Storage chiffré avec CMEK. Pour en savoir plus, consultez la documentation sur les clés CMEK pour Cloud Storage.
Importez votre code source dans le bucket de stockage chiffré avec CMEK sous la forme d'un fichier archive compressé.
Créez votre propre dépôt Artifact Registry chiffré avec CMEK. Pour en savoir plus, consultez la documentation CMEK pour Artifact Registry. Ce dépôt stocke les artefacts produits par le processus de compilation.
Déployez la fonction en transmettant les ressources de compilation à l'aide des options
--sourceet--image.
gcloud run deploy FUNCTION \
--key KEY \
--source CUSTOM_BUCKET_WITH_SOURCE_CODE \
--image CUSTOM_AR_REPOSITORY \
--function FUNCTION_ENTRYPOINT \
--base-image BASE_IMAGE \
--region REGION
Remplacez les éléments suivants :
FUNCTION : nom de la fonction que vous déployez. Vous pouvez omettre ce paramètre, mais dans ce cas le nom vous sera demandé.
KEY : nom complet de la clé, au format suivant :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.CUSTOM_BUCKET_WITH_SOURCE_CODE : URI d'un emplacement Cloud Storage où le code source est stocké. Utilisez le format suivant :
gs://BUCKET_NAME/PATH_TO_SOURCE.CUSTOM_AR_REPOSITORY : URI d'un dépôt Artifact Registry au format
REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.FUNCTION_ENTRYPOINT : point d'entrée de votre fonction dans votre code source. Il s'agit du code que Cloud Run exécute lorsque votre fonction s'exécute. La valeur de cette option doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source.
BASE_IMAGE : environnement d'image de base pour votre fonction. Pour en savoir plus sur les images de base et les packages inclus dans chaque image, consultez Images de base de l'environnement d'exécution.
REGION : Google Cloud région dans laquelle vous souhaitez déployer votre fonction. Par exemple,
europe-west1.
De plus, si vous utilisez Eventarc pour déclencher vos fonctions, familiarisez-vous avec la configuration CMEK pour Eventarc. En particulier, la conformité totale dans de tels cas nécessite le chiffrement des canaux correspondant aux types d'événements utilisés.
Tester la révocation des CMEK pour les services
Pour vérifier que la protection CMEK fonctionne, vous pouvez désactiver la clé que vous avez utilisée pour activer la CMEK pour un service, puis essayer d'appeler votre service :
Exécutez la commande suivante pour vérifier que le service est accessible :
curl SERVICE_URLRemplacez SERVICE_URL par l'URL du service. Vous pouvez la trouver dans l'interface utilisateur de la console après le déploiement : l'URL du conteneur s'affiche à côté du texte URL :.
Attendez que s'écoule le délai que vous avez spécifié pour SHUTDOWN_HOURS. Si vous n'avez pas spécifié le nombre d'heures d'arrêt, réactivez votre clé, puis modifiez ou redéployez votre service en définissant la valeur sur le minimum d'une heure. Si vous avez déployé du code source, essayez de l'afficher. La tentative doit échouer.
Après avoir attendu la durée spécifiée pour SHUTDOWN_HOURS, exécutez à nouveau la commande suivante et vérifiez que le service n'est plus accessible :
curl SERVICE_URL
Après avoir vérifié que la version de clé est désactivée, activez la clé.
Configurer CMEK pour un pool de nœuds de calcul
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale du pool de nœuds de calcul, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration des pools de nœuds de calcul.
Cliquez sur l'onglet Sécurité.
- Sous Chiffrement :
- Sélectionnez Clé Cloud KMS.
- Pour Type de clé, sélectionnez Cloud KMS.
- Dans le menu Sélectionner une clé Cloud KMS, choisissez l'une des options suivantes :
Sélectionnez Changer de projet si vous devez utiliser une clé provenant d'un autre projet. Vous pouvez référencer une clé d'un autre projet si le compte de service de votre projet peut accéder à la clé pour les opérations de chiffrement et de déchiffrement.
Sélectionnez Saisir la clé manuellement pour saisir le secret d'un projet, au format suivant :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.- Accédez à la page Clés de chiffrement.
- Cliquez sur le trousseau de clés.
- Sélectionnez le nom du trousseau de clés choisi, puis cliquez sur Actions.
- Sélectionnez Copier le nom de la ressource dans le menu et collez-le dans le champ Nom de ressource de la clé à l'étape précédente.
- Dans le menu du Action en cas de révocation de clé, choisissez l'une des options suivantes :
Empêcher la nouvelle instance de conteneur : aucune nouvelle instance ne démarre après la révocation de la clé CMEK.
Arrêter dès que possible : aucune nouvelle instance ne démarre et les instances existantes s'arrêtent après la révocation de la clé CMEK.
Délai d'arrêt personnalisé : spécifiez le nombre d'heures avant l'arrêt du service.
Pour copier et coller le nom de la ressource d'un autre projet auquel vous avez accès, procédez comme suit :
- Sous Chiffrement :
Cliquez sur Créer ou Déployer.
gcloud
Pour définir une clé sur un pool de nœuds de calcul, utilisez l'une des commandes suivantes :
gcloud run worker-pools deploy WORKER_POOL \ --image IMAGE_URL \ --key KEY \ --post-key-revocation-action-type KEY_REVOCATION_ACTION --encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run worker-pools update WORKER_POOL --key KEY --post-key-revocation-action-type KEY_REVOCATION_ACTION --encryption-key-shutdown-hours SHUTDOWN_HOURS
Remplacez les éléments suivants :
- WORKER_POOL : nom de votre pool de nœuds de calcul.
- IMAGE_URL : URL de l'image du conteneur.
- KEY : nom complet de la clé, au format suivant :
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME. - KEY_REVOCATION_ACTION :
shut-downouprevent-new. - SHUTDOWN_HOURS : nombre d'heures de délai avant l'arrêt du pool de nœuds de calcul après la révocation.
YAML
Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :
gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
Mettez à jour les annotations CMEK suivantes dans la configuration
WorkerPool:apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: metadata: annotations: run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS
Remplacez les éléments suivants :
- WORKER_POOL : nom de votre pool de nœuds de calcul.
- PROJECT_NAME : nom du projet dans lequel la clé a été créée.
- LOCATION : emplacement dans lequel la clé a été créée. Doit correspondre à l'emplacement du pool de nœuds de calcul Cloud Run.
- KEYRING_NAME : nom du trousseau de clés.
- KEY_NAME : nom de la clé.
- KEY_REVOCATION_ACTION :
shut-downouprevent-new, en fonction de vos préférences de révocation de clé. - SHUTDOWN_HOURS : nombre d'heures de délai avant l'arrêt du pool de nœuds de calcul après la révocation.
Remplacez le pool de nœuds de calcul par sa nouvelle configuration à l'aide de la commande suivante :
gcloud run worker-pools replace workerpool.yaml
Utiliser Autokey pour les pools de nœuds de calcul
Si vous ne l'avez pas déjà fait, activez Cloud KMS Autokey.
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Console
Dans la console Google Cloud , accédez à Cloud Run :
Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale du pool de nœuds de calcul, puis cliquez sur Conteneurs, mise en réseau, sécurité pour développer la page de configuration des pools de nœuds de calcul.
Cliquez sur l'onglet Sécurité.
- Sous Chiffrement :
- Dans le menu Type de clé, sélectionnez Cloud KMS avec clé automatique.
- Cliquez sur Demander une clé.
- Cliquez sur Créer.
Les détails de la clé s'affichent une fois la ressource créée.
- Dans le menu du Action en cas de révocation de clé, choisissez l'une des options suivantes :
Empêcher la création d'une instance de conteneur : aucune nouvelle instance ne démarre après la révocation de la clé CMEK.
Arrêter dès que possible : aucune nouvelle instance ne démarre et les instances existantes s'arrêtent après la révocation de la clé CMEK.
Délai d'arrêt personnalisé : spécifiez le nombre d'heures avant l'arrêt du service.
- Sous Chiffrement :
Cliquez sur Créer ou Déployer.
Afficher les paramètres de sécurité des pools de nœuds de calcul
Pour afficher les paramètres de sécurité de votre pool de nœuds de calcul Cloud Run :
Console
Dans la console Google Cloud , accédez à la page "Pools de nœuds de calcul Cloud Run" :
Cliquez sur votre pool de nœuds de calcul pour ouvrir la page Détails du pool de nœuds de calcul.
Cliquez sur l'onglet Révisions.
Recherchez le paramètre de sécurité dans les détails de la configuration.
gcloud
Exécutez la commande suivante :
gcloud run worker-pools describe WORKER_POOL
Recherchez le paramètre de sécurité dans la configuration renvoyée.
Comprendre les journaux d'audit et les messages d'erreur
Si vous êtes responsable de la surveillance des journaux d'audit, l'une de vos tâches peut consister à vérifier les opérations CMEK dans votre service ou pool de nœuds de calcul Cloud Run. Dans ce cas, vous devez comprendre les journaux d'audit associés.
Si vous êtes responsable du traitement et de la correction des erreurs d'exécution pour votre service ou pool de nœuds de calcul Cloud Run, vous devrez peut-être résoudre les erreurs CMEK consignées lors du fonctionnement de la ressource Cloud Run.
Les sections suivantes fournissent les informations nécessaires pour effectuer les tâches ci-dessus.
Journaux d'audit
Les journaux d'audit KMS fournissent une piste d'audit pour chaque opération effectuée avec une clé. Pour les ressources Cloud Run sur lesquelles l'option CMEK est activée, Cloud Run ajoute un contexte d'appelant spécifique à Cloud Run qui détaille la raison pour laquelle le système a accédé à la clé client. Le tableau suivant répertorie les contextes que vous pouvez rencontrer dans les journaux d'audit :
| Motif de l'accès à la clé | Description |
|---|---|
Decrypting CMEK-encrypted layer during container clone start. |
Consigné chaque fois qu'une nouvelle instance est démarrée. |
Encrypting a newly created data-encryption-key w/ the customer-managed-encryption-key. |
Consigné lors du déploiement d'un service ou d'un pool de nœuds de calcul avec CMEK, lorsque la clé de chiffrement des données est encapsulée par la CMEK. |
Decrypting an existing encrypted data-encryption-key, under the same customer-managed-encryption-key, to be used to encrypt container contents. |
Consigné au démarrage d'une nouvelle instance, ce qui nécessite un déchiffrement de l'image. |
Performing an encrypt operation on dummy data to check the customer-managed-encryption-key status and access. |
Consigné chaque fois qu'une vérification de validation est effectuée sur la clé, ce qui arrive régulièrement. |
Performing a decrypt operation on dummy data to check the customer-managed-encryption-key status and access. |
Consigné chaque fois qu'une vérification de validation est effectuée sur la clé, ce qui arrive régulièrement. |
Pour en savoir plus sur le format et le contenu des journaux d'audit, consultez la page Journaux d'audit KMS.
Messages d'erreur
Notez que les messages d'erreur fournis par un gestionnaire de clés externe sont directement transmis aux journaux Cloud Run de votre service.
Le tableau suivant répertorie les messages d'erreur liés aux CMEK que vous pouvez rencontrer, accompagnés de descriptions et de solutions possibles.
| Message | Description |
|---|---|
User's service account does not have CMEK decrypter permission. Service account: %s |
Solution : Autorisez la ressource Cloud Run à accéder à la clé. |
User's KMS operation quota has been exceeded. CMEK key: %s |
La ressource avec CMEK a dépassé les quotas KMS. Solution : Demandez un quota KMS plus élevé |
User's CMEK key has been disabled. CMEK key: %s |
La clé CMEK a été révoquée. Solution : Modifiez la clé CMEK de la ressource et redéployez-la. |
User's CMEK key has been destroyed. CMEK key: %s |
La clé CMEK a été supprimée. Solution : Modifiez la clé CMEK de la ressource et redéployez-la. |
User's CMEK key has been scheduled for deletion. CMEK Key: %s |
La suppression de la clé CMEK a été programmée. Solution : Modifiez la clé CMEK de la ressource et redéployez-la. |
Étapes suivantes
- En savoir plus sur CMEK
- En savoir plus sur les autorisations et rôles dans Cloud KMS.
- Apprenez-en davantage sur le chiffrement par défaut de Google.
- Créez une clé.
- Découvrez comment alterner vos clés.
- Journaux d'audit