Règles d'administration CMEK

Google Cloud propose deux contraintes liées aux règles d'administration pour vous aider à garantir l'utilisation des CMEK au sein d'une organisation:

  • 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.

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 tous les détails de la règle d'administration : orgpolicy.policy.get
  • Pour vérifier la règle 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 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 des clés CMEK à l'aide de la console Google Cloud. Ils peuvent toutefois 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 la ressource échoue.

Exiger une protection CMEK

Pour exiger une 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 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 celles-ci n'ont pas été protégées par des clés CMEK. En d'autres termes, les requêtes de création d'une ressource dans le service n'aboutissent pas tant que vous n'avez pas spécifié de clé Cloud KMS. En outre, 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 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 de sorte 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 des clés CMEK dans des services configurés n'aboutissent pas 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 lors de l'utilisation de 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 (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 s'appliquent lorsque vous créez une ressource ou lorsque vous modifiez (le cas échéant) 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 compatibles avec les CMEK et uniquement sur la base de la configuration de la ressource. Voici quelques exceptions notables:

Type de ressource Exception d'application
bigquery.googleapis.com/Dataset Appliqué partiellement à la clé Cloud KMS par défaut de l'ensemble de données (gcp.restrictCmekCryptoKeyProjects uniquement)
bigquery.googleapis.com/Job Tâches de requête uniquement: appliquées à une clé Cloud KMS fournie avec une requête ou par défaut du projet de facturation. Consultez également l'article distinct sur 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 des règles d'administration CMEK.
container.googleapis.com/Cluster (Bêta) Appliquée à la clé Cloud KMS pour le disque de démarrage des nœuds, elle n'est pas appliquée aux secrets au niveau de la couche d'application.
logging.googleapis.com/LogBucket Appliquée aux buckets de journaux créés explicitement. Consultez également les informations sur la configuration requise pour assurer la conformité des buckets de journaux intégrés.
storage.googleapis.com/Bucket Appliquée à la clé Cloud KMS par défaut du bucket
storage.googleapis.com/Object Appliquée indépendamment du bucket. Voir aussi 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 dispose de la hiérarchie de ressources suivante:

Schéma d'une hiérarchie de ressources 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 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: 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évoyez d'ajouter d'autres projets Cloud KMS sous folders/2 à l'avenir et que vous souhaitez exiger CMEK plus largement dans folders/3. Dans 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 sous folders/3, procédez comme suit:

  • Règle d'administration: constraints/gcp.restrictNonCmekServices
  • Liaison à: folders/3
  • Type de règle: Refuser
  • Valeurs des règles: sqladmin.googleapis.com, storage.googleapis.com

Pour vous assurer que seules les clés des projets Cloud KMS situés sous folders/2 sont utilisées, procédez comme suit:

  • 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 l'utilisation 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 règle (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 option de chiffrement autre 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 si l'autorisation IAM orgpolicy.policy.get a été accordée au compte client sur le projet.

Étapes suivantes

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

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