Restreindre l'utilisation des ressources

Cette page présente la contrainte de règle d'administration Limiter l'utilisation des services de ressources, qui permet aux administrateurs d'entreprise de contrôler les services Google Cloud pouvant être utilisés dans leur hiérarchie de ressources Google Cloud. Cette contrainte ne peut être appliquée qu'aux services dont les ressources sont les descendants directs d'une organisation, d'un dossier ou d'un projet. tels que Compute Engine et Cloud Storage.

La contrainte Limiter l'utilisation des services de ressources exclut certains services qui sont des dépendances essentielles aux produits Google Cloud, tels que Cloud Identity and Access Management (IAM), Cloud Logging et Cloud Monitoring, et ne fonctionnera pas avec ceux-ci. Pour obtenir la liste des services de ressources cloud compatibles avec cette contrainte, consultez la section Restreindre les services compatibles avec l'utilisation des ressources.

Les administrateurs peuvent utiliser cette contrainte pour définir des restrictions hiérarchiques sur les services de ressources Google Cloud autorisés dans un conteneur de ressources, tel qu'une organisation, un dossier ou un projet. Par exemple, autorisez storage.googleapis.com dans le projet X ou refusez compute.googleapis.com dans le dossier Y.

La contrainte Restreindre l'utilisation des services de ressources peut être utilisée de deux manières qui s'excluent mutuellement :

  • Liste de refus : les ressources d'un service non refusé sont autorisées.

  • Liste d'autorisation : les ressources d'un service non autorisé sont refusées.

La contrainte Restreindre l'utilisation des services de ressources contrôle l'accès de l'environnement d'exécution à toutes les ressources couvertes. Lorsque la règle d'administration contenant cette contrainte est mise à jour, elle s'applique immédiatement à tous les accès à toutes les ressources couvertes par la règle, avec une cohérence à terme.

Nous recommandons aux administrateurs de gérer soigneusement les mises à jour des règles d'administration contenant cette contrainte. Vous pouvez déployer cette modification de règle de manière plus sécurisée en utilisant des tags pour appliquer la contrainte de manière conditionnelle. Pour en savoir plus, consultez la section Définir une règle d'administration avec des tags.

Lorsqu'un service est restreint par cette règle, certains services Google Cloud qui dépendent directement de ce service le sont également. Cela ne s'applique qu'aux services qui gèrent les mêmes ressources client. Par exemple, Google Kubernetes Engine (GKE) dépend de Compute Engine. Lorsque Compute Engine est limité, GKE l'est également.

Utiliser la contrainte de restriction de l'utilisation des services de ressources

Les contraintes de règle d'administration peuvent être définies au niveau de l'organisation, d'un dossier et d'un projet. Chaque règle s'applique à toutes les ressources dans la hiérarchie de ressources correspondante, mais peut être remplacée à des niveaux inférieurs de la hiérarchie des ressources.

Pour en savoir plus sur l'évaluation des règles, consultez la page Comprendre le processus d'évaluation hiérarchique.

Définir la règle d'administration

Pour définir, modifier ou supprimer une règle d'administration, vous devez disposer du rôle Administrateur de règle d'administration.

Console

Pour définir une règle d'administration incluant une contrainte Restreindre l'utilisation des services de ressources, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page Règles d'administration

  2. Dans le sélecteur de projet, choisissez la ressource sur laquelle vous souhaitez définir la règle d'administration.

  3. Dans le tableau des règles d'administration, sélectionnez Restreindre l'utilisation des services de ressources.

  4. Cliquez sur Gérer la règle.

  5. Sous S'applique à, sélectionnez Remplacer la règle parente.

  6. Sous Policy enforcement (Application des règles), déterminez comment appliquer l'héritage de cette règle.

    1. Si vous souhaitez hériter de la règle d'administration de la ressource parente et la fusionner avec celle-ci, sélectionnez Merge with parent (Fusionner avec le parent).

    2. Si vous souhaitez remplacer des règles d'administration existantes, sélectionnez Replace (Remplacer).

  7. Cliquez sur Ajouter une règle.

  8. Sous Valeurs de règles, sélectionnez Personnalisé.

  9. Sous Policy type (Type de règle), sélectionnez Deny (Refuser) pour la liste de blocage ou Allow (Autoriser) pour la liste d'autorisation.

  10. Sous Custom values (Valeurs personnalisées), ajoutez le service dont vous souhaitez bloquer ou autoriser l'accès à la liste.

    1. Par exemple, pour bloquer Cloud Storage, vous pouvez saisir storage.googleapis.com.

    2. Pour ajouter d'autres services, cliquez sur Ajouter une valeur.

  11. Pour appliquer la règle, cliquez sur Définir la règle.

gcloud

Les règles d'administration peuvent être définies via la Google Cloud CLI. Pour appliquer une règle d'administration qui inclut la contrainte Restreindre l'utilisation des services de ressources, commencez par créer un fichier YAML avec la règle à mettre à jour:

name: organizations/ORGANIZATION_ID/policies/gcp.restrictServiceUsage
spec:
   rules:
   - values:
       deniedValues:
       - file.googleapis.com
       - bigquery.googleapis.com
       - storage.googleapis.com

Remplacez ORGANIZATION_ID par l'ID de votre ressource d'organisation. Pour définir cette règle sur une ressource, exécutez la commande suivante:

gcloud beta resource-manager org-policies set-policy \
  --project='PROJECT_ID' /tmp/policy.yaml

Remplacez PROJECT_ID par l'ID de projet de la ressource sur laquelle vous souhaitez appliquer cette règle d'administration.

Pour en savoir plus sur l'utilisation de contraintes dans les règles d'administration, consultez la page Utiliser des contraintes.

Limiter les ressources sans tag

Vous pouvez utiliser des tags et des règles d'administration conditionnelles pour limiter les ressources qui n'utilisent pas un tag particulier. Si vous définissez une règle d'administration sur une ressource qui restreint les services et la conditionner à la présence d'un tag, aucune ressource enfant descendant de cette ressource ne peut être utilisée sans tag. De cette manière, les ressources doivent être configurées conformément à votre plan de gouvernance avant de pouvoir être utilisées.

Pour limiter les ressources d'organisation, de dossier ou de projet sans tag, vous pouvez utiliser l'opérateur logique ! dans une requête conditionnelle lors de la création de votre règle d'administration.

Par exemple, pour autoriser l'utilisation de sqladmin.googleapis.com uniquement dans les projets associés au tag sqladmin=enabled, vous pouvez créer une règle d'administration qui refuse sqladmin.googleapis.com sur les projets qui n'ont pas le tag sqladmin=enabled.

  1. Créez un tag qui détermine si la gouvernance appropriée a été appliquée aux ressources. Par exemple, vous pouvez créer un tag avec la clé sqlAdmin et la valeur enabled pour indiquer que cette ressource doit autoriser l'utilisation de l'API Cloud SQL Admin. Exemple :

    Créer une clé et une valeur de tag

  2. Cliquez sur le nom du tag que vous venez de créer. Dans les étapes suivantes, vous aurez besoin du nom d'espace de noms de la clé de tag, indiqué sous Chemin de la clé de tag, pour créer une condition.

  3. Créez une règle d'administration Limiter l'utilisation des services de ressources au niveau de la ressource d'organisation pour refuser l'accès à l'API Cloud SQL Admin. Exemple :

    Créer une règle d'administration pour restreindre les ressources

  4. Ajoutez une condition à la règle d'administration ci-dessus, en spécifiant que la règle est appliquée en l'absence du tag de gouvernance. L'opérateur logique NOT n'est pas compatible avec le générateur de conditions. Cette condition doit donc être intégrée dans l'éditeur de conditions. Exemple :

    Créer une règle d'administration conditionnelle

    !resource.matchTag("012345678901/sqlAdmin", "enabled")

Désormais, le tag sqlAdmin=enabled doit être associé à un projet ou hérité par celui-ci pour que vos développeurs puissent utiliser l'API Cloud SQL Admin avec ce projet.

Pour en savoir plus sur la création de règles d'administration conditionnelles, consultez la page Définir une règle d'administration avec des tags.

Créer une règle d'administration en mode de simulation

Une règle d'administration en mode de simulation est un type de règle d'administration dans lequel les violations de la règle sont consignées dans un journal d'audit, mais les actions non conformes ne sont pas refusées. Avant d'appliquer la règle active, vous pouvez créer une règle d'administration en mode de simulation à l'aide de la contrainte Limiter l'utilisation des services de ressources pour surveiller son impact sur votre organisation. Pour en savoir plus, consultez la section Créer une règle d'administration en mode de simulation.

Message d'erreur

Si vous définissez une règle d'administration pour refuser le service A dans la hiérarchie des ressources B, l'opération échoue lorsqu'un client tente d'utiliser le service A dans la hiérarchie des ressources B. Une erreur indiquant la raison de cet échec s'affiche. Une entrée AuditLog est également générée pour optimiser la surveillance, les alertes ou le débogage.

Exemple de message d'erreur

Request is disallowed by organization's constraints/gcp.restrictServiceUsage
constraint for projects/PROJECT_ID attempting to use service
storage.googleapis.com.

Exemple de journaux d'audit Cloud

Capture d'écran d'un exemple d'entrée du journal d'audit