Règles d'administration CMEK

Google Cloud propose deux contraintes de règles d'administration pour garantir l'utilisation des CMEK dans l'ensemble d'une organisation:

  • constraints/gcp.restrictNonCmekServices permet d'exiger la protection CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects permet de limiter les clés Cloud KMS utilisées pour la protection CMEK.

Règles d'administration CMEK ne s'appliquent qu'aux ressources nouvellement créées dans les services Google Cloud compatibles.

Rôles requis

Pour vous assurer que chaque utilisateur dispose des autorisations nécessaires pour consulter les règles d'administration lors de la création de ressources, demandez à votre administrateur d'accorder à chaque utilisateur le rôle IAM Lecteur de règles d'administration de l'organisation (roles/orgpolicy.policyViewer) dans votre organisation. 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.

Ce rôle prédéfini contient les autorisations requises pour vérifier les règles d'administration lors de la création de ressources. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour vérifier les règles d'administration lors de la création de ressources:

  • Pour afficher les détails complets des règles de votre organisation : orgpolicy.policy.get
  • Pour vérifier les règles d'administration de votre organisation lorsque vous créez des ressources : orgpolicy.policies.check

Votre administrateur peut également attribuer ces autorisations à chaque utilisateur avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lorsque les règles d'administration sont actives, l'autorisation orgpolicy.policies.check est requise pour les utilisateurs de la console Google Cloud qui créent des ressources protégées par des clés CMEK. Les utilisateurs qui ne disposent pas de cette autorisation peuvent créer des ressources protégées par CMEK à l'aide de la console Google Cloud, mais ils peuvent sélectionner une clé CMEK qui n'est pas autorisée par la contrainte restrictCmekCryptoKeyProjects. Lorsqu'une clé qui ne respecte pas cette contrainte est sélectionnée, la création de ressources échoue à terme.

Exiger la protection CMEK

Pour exiger la protection CMEK pour votre organisation, configurez la règle d'administration constraints/gcp.restrictNonCmekServices.

En tant que contrainte de liste, les valeurs acceptées pour cette contrainte sont les noms de services Google Cloud (par exemple, sqladmin.googleapis.com). Utilisez cette contrainte en fournissant une liste de noms de services Google Cloud et en définissant la contrainte sur Deny (Refuser). Cette configuration bloque la création de ressources dans ces services si la ressource n'est pas protégée par CMEK. En d'autres termes, les requêtes de création d'une ressource dans le service ne réussissent pas sans spécifier une clé Cloud KMS. De plus, cette contrainte bloque la suppression de la protection CMEK des ressources de ces services. Cette contrainte ne peut être appliquée qu'aux services compatibles.

Limiter l'utilisation des clés Cloud KMS pour CMEK

Pour limiter les clés Cloud KMS utilisées pour la protection CMEK, configurez la contrainte constraints/gcp.restrictCmekCryptoKeyProjects.

En tant que contrainte de liste, les valeurs acceptées sont des indicateurs de hiérarchie des ressources (par exemple, projects/PROJECT_ID, under:folders/FOLDER_ID et under:organizations/ORGANIZATION_ID). Utilisez cette contrainte en configurant une liste d'indicateurs de hiérarchie des ressources et en définissant la contrainte sur Allow (Autoriser). Cette configuration limite les services compatibles afin que les clés CMEK ne puissent être choisies que parmi les projets, dossiers et organisations listés. Les requêtes de création de ressources protégées par CMEK dans les services configurés échouent sans clé Cloud KMS provenant de l'une des ressources autorisées. Lorsqu'elle est configurée, cette contrainte s'applique à tous les services compatibles.

Services compatibles

Service Valeur de contrainte lorsque le chiffrement CMEK est requis
AlloyDB pour PostgreSQL alloydb.googleapis.com
Apigee apigee.googleapis.com
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Fonctions Cloud Run cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
Dataflow dataflow.googleapis.com
Dataproc dataproc.googleapis.com
Document AI documentai.googleapis.com
Filestore file.googleapis.com
Firestore firestore.googleapis.com
Google Kubernetes Engine (Preview) container.googleapis.com
Memorystore pour Redis redis.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Spanner spanner.googleapis.com
Speech-to-Text speech.googleapis.com
Vertex AI aiplatform.googleapis.com
Vertex AI Agent Builder discoveryengine.googleapis.com
Instances Vertex AI Workbench notebooks.googleapis.com

Règles d'administration CMEK et service de transfert de stockage

Bien que le service de transfert de stockage ne dispose pas d'une intégration CMEK, il peut être utilisé avec les règles d'administration CMEK. Si vous utilisez le service de transfert de stockage et que vous souhaitez vous assurer que les identifiants de base de données stockés dans Secret Manager sont protégés par CMEK, vous devez ajouter storagetransfer.googleapis.com et secretmanager.googleapis.com à la contrainte constraints/gcp.restrictNonCmekServices. Pour en savoir plus, consultez la documentation sur le CMEK du service de transfert de stockage.

Exceptions d'application par type de ressource

Les contraintes de règles d'administration CMEK sont appliquées lors de la création d'une ressource ou lors de la modification (le cas échéant) de la clé Cloud KMS d'une ressource existante. En général, elles sont appliquées à tous les types de ressources d'un service compatibles avec CMEK et uniquement en fonction de la configuration de la ressource. Voici quelques exceptions notables:

Type de ressource Exception d'application
bigquery.googleapis.com/Dataset Application partielle à la clé Cloud KMS par défaut de l'ensemble de données (gcp.restrictCmekCryptoKeyProjects uniquement)
bigquery.googleapis.com/Job Jobs de requête uniquement: appliqué à la clé Cloud KMS fournie avec la requête ou par défaut du projet de facturation. Consultez également la configuration distincte de la clé Cloud KMS par défaut du projet.
bigquerydatatransfer.googleapis.com/TransferConfig Les configurations de transfert utilisent le nom de service du service de transfert de données (bigquerydatatransfer.googleapis.com) pour les contraintes de règles d'organisation CMEK.
container.googleapis.com/Cluster (Preview) Obligatoire pour la clé Cloud KMS du disque de démarrage du nœud uniquement, non obligatoire pour les secrets au niveau de la couche application
logging.googleapis.com/LogBucket Appliqué aux buckets de journaux créés explicitement. Consultez également la configuration requise pour garantir la conformité des buckets de journaux intégrés.
storage.googleapis.com/Bucket Implémenté sur la clé Cloud KMS par défaut du bucket
storage.googleapis.com/Object Implémenté indépendamment du bucket. Consultez également la configuration distincte de la clé Cloud KMS par défaut du bucket.

Exemples de configuration

Dans les exemples de configuration, supposons que l'organisation exemple ait la hiérarchie de ressources suivante:

Schéma d'une hiérarchie de ressources d'une organisation

Exiger des clés CMEK et des clés de limite pour un projet

Supposons que vous souhaitiez exiger une protection CMEK pour toutes les ressources Cloud Storage sous projects/5 et vous assurer que seules les clés provenant de projects/4 peuvent être utilisées.

Pour exiger une protection CMEK pour toutes les nouvelles ressources Cloud Storage, utilisez le paramètre de règle d'administration suivant:

  • Règle d'administration de l'organisation: constraints/gcp.restrictNonCmekServices
  • Liaison à: projects/5
  • Type de règle: Refuser
  • Valeur de la règle: storage.googleapis.com

Pour vous assurer que seules les clés de projects/4 sont utilisées, utilisez la configuration suivante:

  • Règle d'administration de l'organisation: constraints/gcp.restrictCmekCryptoKeyProjects
  • Liaison à: projects/5
  • Type de règle: Autoriser
  • Valeur de la règle: projects/4

Exiger les CMEK et limiter les clés à un dossier

Supposons également que vous prévoyez d'ajouter d'autres projets Cloud KMS sous folders/2 à l'avenir et que vous souhaitiez exiger CMEK de manière plus large dans folders/3. Pour ce scénario, vous avez besoin de configurations légèrement différentes.

Pour exiger une protection CMEK supplémentaire pour les nouvelles ressources Cloud SQL et Cloud Storage dans folders/3:

  • Règle d'administration de l'organisation: constraints/gcp.restrictNonCmekServices
  • Liaison à: folders/3
  • Type de règle: Refuser
  • Valeurs de stratégie: sqladmin.googleapis.com, storage.googleapis.com

Pour vous assurer que seules les clés des projets Cloud KMS sous folders/2 sont utilisées:

  • Règle d'administration de l'organisation: constraints/gcp.restrictCmekCryptoKeyProjects
  • Liaison à: folders/3
  • Type de règle: Autoriser
  • Valeur de la règle: under:folders/2

Exiger le chiffrement CMEK pour une organisation

Pour exiger CMEK partout dans l'organisation (dans les services compatibles), configurez la contrainte constraints/gcp.restrictNonCmekServices avec le paramètre suivant:

  • Règle d'administration de l'organisation: constraints/gcp.restrictNonCmekServices
  • Liaison à: organizations/1
  • Type de règle: Refuser
  • Valeurs des règles: (tous les services compatibles)

Limites

Si vous utilisez la console Google Cloud pour créer une ressource, vous remarquerez peut-être que vous ne pouvez pas utiliser d'autres options de chiffrement que CMEK lorsque constraints/gcp.restrictNonCmekServices est configuré pour un projet et un service. La restriction liée aux règles d'administration CMEK n'est visible que lorsque le compte client a reçu l'autorisation IAM orgpolicy.policy.get sur le projet.

Étape suivante

Pour en savoir plus sur les avantages et les cas d'utilisation courants des règles d'administration d'administration, consultez la page Présentation du service de règles d'administration.

Pour obtenir d'autres exemples de création d'une règle d'administration avec des contraintes particulières, consultez la section Utiliser des contraintes.