Règles d'administration CMEK

Google Cloud propose deux contraintes de règle d'administration pour garantir que les CMEK dans une organisation:

  • constraints/gcp.restrictNonCmekServices est utilisé pour exiger une clé CMEK de sécurité.
  • constraints/gcp.restrictCmekCryptoKeyProjects permet de limiter Les clés Cloud KMS sont 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 s'assurer que chaque utilisateur dispose des des autorisations pour vérifier les règles d'administration lors de la création de ressources, demandez à votre administrateur d'accorder à chaque utilisateur rôle IAM Lecteur des règles d'administration (roles/orgpolicy.policyViewer) sur 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 de l'organisation 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 de l'organisation 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 à chaque utilisateur ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lorsque les règles d'administration de l'organisation 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 ne disposant pas de cette autorisation peuvent créer à l'aide de la console Google Cloud, mais il peut sélectionner une clé CMEK n'est pas autorisé 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

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

Les valeurs acceptées pour cette contrainte sont les suivantes : Google Cloud, (par exemple, sqladmin.googleapis.com). Utiliser cette contrainte en fournissant une liste de noms de services Google Cloud et en définissant la contrainte sur Refuser. Cette configuration bloque la création de ressources dans ces services si la ressource n'est pas protégée par CMEK. Dans Autrement dit, les requêtes de création de ressource dans le service n'aboutissent pas en spécifiant 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 de clés Cloud KMS pour les 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 puissent être choisies uniquement à partir des projets, dossiers et organisations répertorié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 des règles d'administration CMEK. Si vous utilisez le service de transfert de stockage vérifier que les identifiants de la base de données stockés dans Secret Manager sont protégées par une CMEK, vous devez ajouter storagetransfer.googleapis.com et secretmanager.googleapis.com jusqu'au constraints/gcp.restrictNonCmekServices d'une contrainte. Pour en savoir plus, consultez la documentation CMEK du service de transfert de stockage documentation.

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 règle générale, elles sont appliquées à tous les types de ressources d'un service des CMEK et uniquement en fonction de la configuration de la ressource. Quelques notions les exceptions sont résumées ici:

Type de ressource Exception à la mise en 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 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 Appliquée sur la clé Cloud KMS par défaut du bucket
storage.googleapis.com/Object Appliqué indépendamment du bucket voir également les Configuration de la clé Cloud KMS par défaut du bucket

Exemples de configuration

Dans les exemples de configuration, supposons que l'organisation de l'exemple dispose des éléments suivants : hiérarchie des ressources:

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

Exiger des 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 la 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: Deny
  • 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 fonctionnalités légèrement différentes de configuration.

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

  • Règle d'administration: 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 une clé 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: 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 utiliser aucune autre option 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, consultez la page Présentation du service de règles d'administration.

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