Règles d'administration CMEK

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

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

Les 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 vérifier les règles d'administration lors de la création de ressources, demandez à votre administrateur d'accorder à chaque utilisateur le rôle IAM Lecteur des règles d'administration (roles/orgpolicy.policyViewer) dans votre organisation. Pour en savoir plus sur l'attribution de rôles, consultez 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 d'administration : orgpolicy.policy.get
  • Pour vérifier les règles d'administration lors de la création de 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 qui créent des ressources protégées par des clés CMEK. Google Cloud Les utilisateurs ne disposant pas de cette autorisation peuvent créer des ressources protégées par des clés CMEK à l'aide de la Google Cloud console, mais ils peuvent sélectionner une clé CMEK qui n'est pas autorisée par la restrictCmekCryptoKeyProjects contrainte. Lorsqu'une clé qui ne répond pas à cette contrainte est sélectionnée, la création de la ressource finit par échouer.

Exiger la protection CMEK

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

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

Limiter l'utilisation des clés Cloud KMS pour les clés 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). Pour utiliser cette contrainte, configurez une liste d'indicateurs de hiérarchie des ressources et définissez la contrainte sur 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 des clés CMEK dans les services configurés n'aboutissent pas 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 la contrainte lorsque les clés CMEK sont requises
Agent Assist dialogflow.googleapis.com
AlloyDB pour PostgreSQL alloydb.googleapis.com
Apigee apigee.googleapis.com
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
Sauvegarde pour GKE gkebackup.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud Run Functions cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Tasks cloudtasks.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
Conversational Insights contactcenterinsights.googleapis.com
Dataflow dataflow.googleapis.com
Dataform dataform.googleapis.com
Dataplex Universal Catalog dataplex.googleapis.com
Dataproc dataproc.googleapis.com
Dialogflow CX dialogflow.googleapis.com
Document AI documentai.googleapis.com
Eventarc Advanced (aperçu) eventarc.googleapis.com
Eventarc Standard eventarc.googleapis.com
Filestore file.googleapis.com
Firestore firestore.googleapis.com
Gemini Enterprise Enterprise discoveryengine.googleapis.com
Google Cloud NetApp Volumes netapp.googleapis.com
Google Kubernetes Engine (aperçu) container.googleapis.com
Looker (Google Cloud Core) looker.googleapis.com
Memorystore pour Redis redis.googleapis.com
Memorystore pour Redis Cluster redis.googleapis.com
Memorystore for Valkey memorystore.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Security Command Center securitycenter.googleapis.com
Spanner spanner.googleapis.com
Speech-to-Text speech.googleapis.com
Vertex AI aiplatform.googleapis.com
Vertex AI Search discoveryengine.googleapis.com
Instances Vertex AI Workbench notebooks.googleapis.com

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

Le service de transfert de stockage n'est pas intégré aux clés CMEK, mais il peut être utilisé avec des règles d'administration CMEK. Si vous utilisez le service de transfert de stockage et que vous souhaitez utiliser des clés CMEK pour protéger les identifiants de base de données stockés dans Secret Manager, vous devez ajouter storagetransfer.googleapis.com et secretmanager.googleapis.com à la contrainteconstraints/gcp.restrictNonCmekServices. Pour en savoir plus, consultez la documentation sur les clés CMEK du service de transfert de stockage.

Exceptions d'application par type de ressource

Les contraintes des règles d'administration CMEK sont appliquées lors de la création d'une ressource ou lors de la modification (lorsque cela est possible) de la clé Cloud KMS sur une ressource existante. En règle générale, elles sont appliquées à tous les types de ressources d'un service compatibles avec les clés CMEK et uniquement en fonction de la configuration de la ressource. Voici un résumé de quelques exceptions notables :

Type de ressource Exception d'application
bigquery.googleapis.com/Dataset Application partielle sur la clé Cloud KMS par défaut de l'ensemble de données (gcp.restrictCmekCryptoKeyProjects uniquement)
bigquery.googleapis.com/Job Requêtes uniquement : application sur la clé Cloud KMS fournie avec la requête ou par défaut à partir 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 des règles d'administration CMEK.
container.googleapis.com/Cluster (Aperçu) Application uniquement sur la clé Cloud KMS du disque de démarrage du nœud disk only; not application sur les secrets au niveau de l'application
logging.googleapis.com/LogBucket Application sur les buckets de journaux créés explicitement. Consultez également la configuration distincte requise pour garantir la conformité des buckets de journaux intégrés.
storage.googleapis.com/Bucket Application sur la clé Cloud KMS par défaut du bucket
storage.googleapis.com/Object Application indépendante 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 présente la hiérarchie de ressources suivante :

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

Exiger des clés CMEK et limiter les clés 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 : 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 : constraints/gcp.restrictCmekCryptoKeyProjects
  • Liaison à : projects/5
  • Type de règle : Autoriser
  • Valeur de la règle : projects/4

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

Supposons que vous prévoyiez d'ajouter d'autres projets Cloud KMS sous folders/2 à l'avenir et que vous souhaitiez exiger des clés CMEK plus largement dans folders/3. Dans ce cas, 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 n'importe où sous folders/3 :

  • Règle d'administration : constraints/gcp.restrictNonCmekServices
  • Liaison à : folders/3
  • Type de règle : Refuser
  • Valeurs de la règle : 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 : constraints/gcp.restrictCmekCryptoKeyProjects
  • Liaison à : folders/3
  • Type de règle : Autoriser
  • Valeur de la règle : under:folders/2

Exiger des clés CMEK pour une organisation

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

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

Limites

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

Étape suivante

Pour en savoir plus sur les avantages et les cas d'utilisation courants des règles 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 page Utiliser des contraintes.