Règles d'administration CMEK

Google Cloud propose deux contraintes de règle d'administration pour garantir l'utilisation des CMEK dans 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 vérifier les règles d'administration lors de la création de ressources, demandez à votre administrateur d'attribuer à chaque utilisateur le rôle IAM Lecteur des règles d'administration (roles/orgpolicy.policyViewer) pour votre organisation. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

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 accorder ces autorisations à chaque utilisateur avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lorsque des 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 ne disposant pas de cette autorisation peuvent créer des ressources protégées par une clé CMEK à l'aide de la console Google Cloud, mais ils peuvent sélectionner une clé CMEK non autorisée par la contrainte restrictCmekCryptoKeyProjects. 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 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 des noms de service 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 Refuser. Cette configuration bloque 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 de ressource dans le service n'aboutissent pas tant que vous n'avez pas spécifié de 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 de 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 Autoriser. Cette configuration limite les services compatibles afin que les clés CMEK ne puissent être choisies qu'à partir des projets, dossiers et organisations répertoriés. Les requêtes de création de ressources protégées par une clé CMEK dans les services configurés échouent sans une 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 en cas d'exigence d'une clé CMEK
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Functions cloudfunctions.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Workstations workstations.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 (Preview) firestore.googleapis.com
Google Kubernetes Engine (version preview) container.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Spanner spanner.googleapis.com
Vertex AI aiplatform.googleapis.com
Instances Vertex AI Workbench notebooks.googleapis.com

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 de la modification (si compatible) 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 CMEK et uniquement en fonction de la configuration de la ressource. Certaines exceptions notables sont résumées ici:

Type de ressource Exception à la mise en application
bigquery.googleapis.com/Dataset Partiellement appliquée à 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és à la clé Cloud KMS fournie avec la requête ou à la valeur par défaut du projet de facturation ; voir également la configuration 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 liées aux règles d'administration CMEK.
container.googleapis.com/Cluster (Aperçu) Appliquée sur la clé Cloud KMS pour le disque de démarrage des nœuds uniquement. Elle n'est pas appliquée aux secrets au niveau de la couche d'application.
logging.googleapis.com/LogBucket Appliquée sur les buckets de journaux créés explicitement. Consultez également les configurations distinctes requises 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ée indépendamment du bucket. Voir également la section sur la configuration de la clé Cloud KMS par défaut du bucket

Exemples de configuration

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

Schéma d'une hiérarchie de ressources d'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: 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: constraints/gcp.restrictCmekCryptoKeyProjects
  • Liaison à: projects/5
  • Type de règle: Autoriser
  • Valeur de la règle: projects/4

Exiger des CMEK et limiter les clés au sein d'un dossier

Supposons également que vous vous attendez à ajouter des projets Cloud KMS sous folders/2 à l'avenir et que vous souhaitiez étendre l'utilisation du chiffrement CMEK 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 n'importe où sous folders/3:

  • Règle d'administration: constraints/gcp.restrictNonCmekServices
  • Liaison à: folders/3
  • Type de règle: Deny
  • 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 une clé CMEK pour une organisation

Pour exiger l'utilisation de 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: Deny
  • 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 de la règle d'administration CMEK n'est visible que lorsque le compte client dispose de l'autorisation IAM orgpolicy.policy.get sur le projet.

Étapes suivantes

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

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