Restreindre l'utilisation des ressources

Cette page présente la contrainte de règle d'administration Restreindre l'utilisation des 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 ressource d'organisation, de dossier ou de projet. (par exemple, Compute Engine et Cloud Storage).

La contrainte Limiter l'utilisation des services de ressources exclut et ne fonctionne pas avec certains services qui sont des dépendances essentielles pour les produits Google Cloud, tels qu'Identity and Access Management (IAM), Cloud Logging et Cloud Monitoring. 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. Cette contrainte détermine également la disponibilité de la console Google Cloud.

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 comprises dans le champ d'application de 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 stratégie 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 limité par cette règle, certains services Google Cloud directement dépendants du service restreint sont également restreints. Cela ne s'applique qu'aux services qui gèrent les mêmes ressources client. Par exemple, Google Kubernetes Engine (GKE) dépend d'une instance Compute Engine. Lorsque Compute Engine est limité, GKE l'est également.

Disponibilité de la console Google Cloud

Les services restreints dans la console Google Cloud se comportent de la manière suivante:

  • Vous ne pouvez pas accéder à un produit à l'aide du menu .
  • Les services restreints n'apparaissent pas dans les résultats de recherche de la console Google Cloud.
  • Lorsque vous accédez à la page de la console Google Cloud d'un service restreint (à partir d'un lien ou d'un favori, par exemple), un message d'erreur s'affiche.

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

Les contraintes liées aux règles d'administration peuvent être définies au niveau de l'organisation, du dossier et du projet. Chaque règle s'applique à toutes les ressources dans sa hiérarchie de ressources correspondante, mais peut être remplacée aux 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 Applicable à, sélectionnez Remplacer les règles parentes.

  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 du service des 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 conditionne à la présence d'un tag, aucune ressource enfant descendant de cette ressource ne peut être utilisée à moins d'avoir été taguée. 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 ne portent 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. Pour créer une condition, vous aurez besoin du nom de l'espace de noms de la clé de tag, répertorié sous Chemin d'accès de la clé de tag.

  3. Créez une règle d'administration Restreindre l'utilisation du service des ressources au niveau de votre 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 de la balise 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 dry run est un type de règle d'administration dans laquelle les cas de non-respect de la règle sont consignés dans des journaux d'audit, mais les actions non conformes ne sont pas refusées. Vous pouvez créer une règle d'administration en mode de simulation à l'aide de la contrainte Restreindre l'utilisation du service des ressources pour surveiller son impact sur votre organisation avant d'appliquer la règle active. Pour en savoir plus, consultez la section Créer une règle d'administration en mode dry run.

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