Google Cloud propose deux contraintes de règle d'administration pour garantir l'utilisation des CMEK dans toute l'organisation :
constraints/gcp.restrictNonCmekServices
est utilisé pour 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 compatibles Google Cloud .
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 de règles d'administration (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 tous les détails des règles de l'organisation :
orgpolicy.policy.get
-
Pour vérifier la règle d'administration 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 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 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
. Si vous sélectionnez une clé qui ne respecte pas cette contrainte, 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 les noms de service Google Cloud(par exemple, bigquery.googleapis.com
). Pour utiliser cette contrainte, fournissez une liste de noms de service Google Cloud et définissez 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. En d'autres termes, les requêtes de création d'une ressource dans le service n'aboutissent pas sans spécification d'une clé Cloud KMS. De plus, cette contrainte empêche 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 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 visant à créer des 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 la contrainte lorsque CMEK est requis |
---|---|
AI Applications | discoveryengine.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 (Preview) | 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 |
Fonctions Cloud Run | 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 |
Dataflow | dataflow.googleapis.com |
Dataform | dataform.googleapis.com |
Dataplex Universal Catalog | dataplex.googleapis.com |
Dataproc | dataproc.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 |
Google Agentspace Enterprise | discoveryengine.googleapis.com |
Google Kubernetes Engine (Aperçu) | container.googleapis.com |
Looker (Google Cloud Core) | looker.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 |
Instances Vertex AI Workbench | notebooks.googleapis.com |
Règles d'administration CMEK et service de transfert de stockage
Bien que service de transfert de stockage ne dispose pas d'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 les clés 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 lorsque vous créez une ressource ou lorsque vous modifiez (si possible) la clé Cloud KMS d'une ressource existante. En général, elles sont appliquées à tous les types de ressources d'un service qui acceptent CMEK et sont basées uniquement sur la configuration de la ressource. Voici quelques exceptions notables :
Type de ressource | Exception d'application |
---|---|
bigquery.googleapis.com/Dataset |
Application partielle de 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 clé 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'administration CMEK. |
container.googleapis.com/Cluster |
(Aperçu) Appliqué à la clé Cloud KMS pour le disque de démarrage des nœuds uniquement, et non aux secrets au niveau de la couche d'application |
logging.googleapis.com/LogBucket |
Appliquée aux buckets de journaux créés de manière explicite. Consultez également la configuration distincte 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. 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 :
Exiger une clé 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 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 souhaitez exiger CMEK plus largement 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 : 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 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 pas utiliser d'autres options de chiffrement que CMEK lorsqueconstraints/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 l'autorisation IAM orgpolicy.policy.get
a été accordée au compte client pour le projet.
Étapes suivantes
Pour en savoir plus sur les avantages et les cas d'utilisation courants des règles d'administration d'administration, consultez la 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 spécifiques, consultez Utiliser des contraintes.