Cette page fournit des informations supplémentaires sur les contraintes liées aux règles d'administration qui s'appliquent à Cloud Load Balancing. Utilisez des contraintes de règle d'administration pour appliquer des paramètres à l'ensemble d'un projet, d'un dossier ou d'une organisation.
Les règles d'administration ne s'appliquent qu'aux nouvelles ressources. Les contraintes ne s'appliquent pas rétroactivement. Si vous disposez de ressources d'équilibrage de charge préexistantes qui sont non conformes à une nouvelle règle d'administration, vous devez traiter ces non-respects manuellement.
Pour obtenir la liste complète des contraintes disponibles, consultez la page Contraintes liées aux règles d'administration.
Limiter les types d'équilibreurs de charge
Utilisez une règle d'administration pour limiter les types Cloud Load Balancing pouvant être créés dans votre organisation. Définissez la contrainte de règle d'administration suivante :
- Nom : Restreindre la création d'équilibreurs de charge en fonction de leurs types
- Identifiant :
constraints/compute.restrictLoadBalancerCreationForTypes
Lorsque vous définissez la contrainte compute.restrictLoadBalancerCreationForTypes
, vous spécifiez une liste d'autorisation ou une liste de blocage pour les types Cloud Load Balancing. La liste des valeurs autorisées ou refusées ne peut inclure que les valeurs comprises dans la liste suivante :
- Équilibreurs de charge d'application
GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS
pour l'équilibreur de charge d'application externe globalEXTERNAL_HTTP_HTTPS
pour l'équilibreur de charge d'application classiqueEXTERNAL_MANAGED_HTTP_HTTPS
pour l'équilibreur de charge d'application externe régionalGLOBAL_INTERNAL_MANAGED_HTTP_HTTPS
pour l'équilibreur de charge d'application interne interrégionalINTERNAL_HTTP_HTTPS
pour l'équilibreur de charge d'application interne régional
- Équilibreurs de charge réseau proxy
GLOBAL_EXTERNAL_MANAGED_TCP_PROXY
pour l'équilibreur de charge réseau proxy externe global avec un proxy TCPGLOBAL_EXTERNAL_MANAGED_SSL_PROXY
pour l'équilibreur de charge réseau proxy externe global avec un proxy SSLEXTERNAL_TCP_PROXY
pour l'équilibreur de charge réseau proxy classique avec un proxy TCPEXTERNAL_SSL_PROXY
pour l'équilibreur de charge réseau proxy classique avec un proxy SSLREGIONAL_EXTERNAL_MANAGED_TCP_PROXY
pour l'équilibreur de charge réseau proxy externe régional avec un proxy TCPREGIONAL_INTERNAL_MANAGED_TCP_PROXY
pour l'équilibreur de charge réseau proxy interne régional avec un proxy TCPGLOBAL_INTERNAL_MANAGED_TCP_PROXY
pour l'équilibreur de charge réseau proxy interrégional avec un proxy TCP
- Équilibreurs de charge réseau passthrough
EXTERNAL_NETWORK_TCP_UDP
pour l'équilibreur de charge réseau passthrough externeINTERNAL_TCP_UDP
pour l'équilibreur de charge réseau passthrough interne
Pour inclure tous les types d'équilibreurs de charge internes ou externes, utilisez le préfixe in:
suivi de INTERNAL
ou EXTERNAL
. Par exemple, en autorisant in:INTERNAL
, tous les équilibreurs de charge internes de la liste précédente sont autorisés.
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes de liste avec des règles d'administration.
Une fois la règle définie, elle est appliquée lorsque vous ajoutez les règles de transfert Google Cloud correspondantes. La contrainte n'est pas appliquée aux configurations Cloud Load Balancing existantes.
Si vous tentez de créer un équilibreur de charge d'un type qui ne respecte pas la contrainte, la tentative échoue et un message d'erreur est généré. Le message d'erreur s'affiche au format suivant :
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME of type SCHEME is not allowed.
Si vous définissez plusieurs contraintes restrictLoadBalancerCreationForTypes
pour différents niveaux de ressources, elles sont appliquées de manière hiérarchique.
Pour cette raison, il est recommandé de définir le champ inheritFromParent
sur true
, ce qui garantit que les règles des niveaux supérieurs sont également prises en compte.
Messages d'erreur GKE
Si vous utilisez des objets Service et Ingress de Google Kubernetes Engine (GKE), utilisez cette règle d'administration pour restreindre la création d'un équilibreur de charge dans un message d'erreur semblable à ce qui suit :
Warning Sync 28s loadbalancer-controller Error during sync: error running load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME does not exist: googleapi: Error 412: Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for projects/PROJECT_ID. Forwarding Rule projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet
Vous pouvez afficher les messages d'erreur GKE en exécutant les commandes suivantes :
kubectl get events -w
kubectl describe RESOURCE_KIND NAME
Remplacez les éléments suivants :
- RESOURCE_KIND : genre de l'équilibreur de charge,
ingress
ouservice
- NAME : nom de l'équilibreur de charge
Désactiver l'équilibrage de charge mondial
Cette contrainte booléenne désactive la création de produits d'équilibrage de charge mondiaux. Lorsqu'elle est appliquée, seuls les produits d'équilibrage de charge régionaux sans dépendances mondiales peuvent être créés.
- Nom : Désactiver l'équilibrage de charge global
- Identifiant :
constraints/compute.disableGlobalLoadBalancing
Par défaut, les utilisateurs sont autorisés à créer des produits d'équilibrage de charge mondiaux.
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes booléennes avec des règles d'administration.
Limiter les types de transfert de protocole
Utilisez une règle d'administration pour limiter les types de transfert de protocole pouvant être créés dans votre organisation. Définissez la contrainte de règle d'administration suivante :
- Nom : Restreindre le transfert de protocole en fonction du type d'adresse IP
- Identifiant :
constraints/compute.restrictProtocolForwardingCreationForTypes
Lorsque vous définissez la contrainte compute.restrictProtocolForwardingCreationForTypes
, vous spécifiez une liste d'autorisation ou une liste de blocage des types de transfert de protocole. La liste des valeurs autorisées ou refusées ne peut inclure que les valeurs comprises dans la liste suivante :
INTERNAL
EXTERNAL
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes de liste avec des règles d'administration.
Une fois la règle définie, elle est appliquée lorsque vous ajoutez les règles de transfert Google Cloud correspondantes. La contrainte n'est pas appliquée aux configurations de transfert de protocole existantes.
Si vous tentez de créer un déploiement de transfert de protocole d'un type qui ne respecte pas la contrainte, la tentative échoue et un message d'erreur est généré. Le message d'erreur s'affiche au format suivant :
Constraint constraints/compute.restrictProtocolForwardingCreationForTypes violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME of type SCHEME is not allowed.
Si vous définissez plusieurs contraintes restrictProtocolForwardingCreationForTypes
à différents niveaux de ressources et que vous définissez le champ inheritFromParent
sur true
, les contraintes sont appliquées de manière hiérarchique.
Appliquer des restrictions liées au VPC partagé
Utilisez les règles d'administration suivantes pour limiter la façon dont les utilisateurs sont autorisés à configurer des déploiements de VPC partagé.
Limiter les projets hôtes VPC partagés
Cette contrainte de liste vous permet de limiter les projets hôtes VPC partagé auxquels une ressource peut s'associer.
- Nom : limiter les projets hôtes VPC partagés
- Identifiant :
constraints/compute.restrictSharedVpcHostProjects
Par défaut, un projet peut être associé à n'importe quel projet hôte de la même organisation, ce qui en fait un projet de service. Lorsque vous définissez la contrainte compute.restrictSharedVpcHostProjects
, vous spécifiez une liste d'autorisation ou de blocage de projets hôtes de différentes manières :
- Spécifiez un projet au format suivant :
- projects/PROJECT_ID
- Spécifiez un projet, un dossier ou une organisation. La contrainte s'applique à tous les projets sous la ressource spécifiée dans la hiérarchie des ressources. Utilisez le format suivant :
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes de liste avec des règles d'administration.
Limiter les sous-réseaux VPC partagés
Cette contrainte de liste définit l'ensemble des sous-réseaux VPC partagés que les ressources éligibles peuvent utiliser. Cette contrainte ne s'applique pas aux ressources d'un même projet.
- Nom : limiter les sous-réseaux VPC partagés
- Identifiant :
constraints/compute.restrictSharedVpcSubnetworks
Par défaut, les ressources éligibles peuvent utiliser n'importe quel sous-réseau VPC partagé. Lorsque vous définissez la contrainte compute.restrictSharedVpcSubnetworks
, vous spécifiez une liste restreinte de sous-réseaux comme suit :
- Spécifiez un sous-réseau au format suivant :
- projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
- Spécifiez un projet, un dossier ou une organisation. La contrainte s'applique à tous les sous-réseaux sous la ressource spécifiée dans la hiérarchie des ressources. Utilisez le format suivant :
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
- under:projects/PROJECT_ID
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes de liste avec des règles d'administration.
Limiter les services de backend multiprojets
Vous pouvez utiliser cette contrainte pour limiter les services de backend auxquels un mappage d'URL peut faire référence. Cette contrainte ne s'applique pas aux services de backend dans le même projet que le mappage d'URL.
- Nom : limiter les services de backend inter-projets
- Identifiant :
constraints/compute.restrictCrossProjectServices
Par défaut, les mappages d'URL de tous les projets hôtes ou de service peuvent référencer des services de backend compatibles d'autres projets de service ou du projet hôte du même déploiement de VPC partagé, à condition que l'utilisateur effectuant l'action dispose de l'autorisation compute.backendServices.use
. Lorsque vous définissez la contrainte restrictCrossProjectServices
, vous spécifiez une liste d'autorisation ou de blocage des services de backend des manières suivantes :
- Spécifiez les services de backend au format suivant :
- projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
- Spécifiez un projet, un dossier ou une organisation. La contrainte s'applique à tous les services de backend de la ressource spécifiée dans la hiérarchie des ressources. Utilisez le format suivant :
- .
- under:organizations/ORGANIZATION_ID
- under:folders/FOLDER_ID
- under:projects/PROJECT_ID
Une fois que vous avez configuré une règle d'administration avec cette contrainte, celle-ci prend effet la prochaine fois que vous utiliserez la commande gcloud compute url-maps
pour associer un service de backend à un mappage d'URL. La contrainte n'affecte pas de manière rétroactive les références existantes aux services de backend inter-projets.
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes de liste avec des règles d'administration.
Restreindre la suppression des privilèges du projet VPC partagé
Lorsqu'elle est définie sur True
, cette contrainte booléenne restreint le nombre d'utilisateurs pouvant supprimer un privilège lié à un projet hôte VPC partagé sans autorisation au niveau de l'organisation.
- Nom : Restreindre la suppression des privilèges du projet VPC partagé
- Identifiant :
constraints/compute.restrictXpnProjectLienRemoval
Par défaut, tout utilisateur disposant de l'autorisation de mettre à jour des privilèges peut supprimer un privilège lié à un projet hôte VPC partagé. L'application de cette contrainte nécessite que l'autorisation soit accordée au niveau de l'organisation.
Pour obtenir des exemples d'instructions sur l'utilisation de cette contrainte, consultez la page Configurer des contraintes booléennes avec des règles d'administration.
Restreindre les fonctionnalités TLS à l'aide de contraintes personnalisées
Pour répondre à vos exigences de conformité et restreindre certaines fonctionnalités TLS (Transport Layer Security), vous pouvez créer la contrainte de règle d'administration suivante et l'utiliser avec des contraintes personnalisées pour les ressources des règles SSL:
- Nom: Exiger une règle SSL
- ID :
constraints/compute.requireSslPolicy
En utilisant la contrainte constraints/compute.requireSslPolicy
avec des contraintes personnalisées, vous pouvez effectuer les opérations suivantes:
- Améliorez la sécurité et répondez aux exigences de conformité en limitant l'utilisation des versions antérieures de TLS (telles que 1.0 et 1.1) et des suites de chiffrement.
- Améliorez les performances en réduisant le nombre de handshakes requis et en améliorant la compatibilité de l'équilibreur de charge avec les clients.
- Appliquez une restriction à un nœud de ressource spécifique et à ses enfants. Par exemple, si vous refusez la version 1.0 de TLS pour une organisation, elle est également refusée pour tous les dossiers et projets (enfants) descendant de cette organisation.
- Définissez un ensemble de proxys HTTPS cibles et de proxys SSL cibles auxquels une règle SSL est associée.
En utilisant une contrainte personnalisée pour les règles SSL, vous pouvez définir vos propres restrictions sur les champs suivants:
- Profil de règle SSL:
resource.profile
- Version TLS minimale de la règle SSL:
resource.minTlsVersion
- Fonctionnalités des règles SSL:
resource.customFeatures
Pour appliquer une règle SSL à un équilibreur de charge d'application ou à un équilibreur de charge réseau proxy, vous devez l'associer au proxy HTTPS ou SSL cible de l'équilibreur de charge.
Pour mettre à jour des règles SSL existantes, consultez la section Mettre à jour des règles SSL existantes associées à des proxys cibles.
Configurer des contraintes booléennes avec des règles d'administration
Console
Pour définir une règle d'administration à partir de la console, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Règles d'administration.
- Dans le champ Filtre, recherchez la contrainte par Nom ou par ID.
- Cliquez sur le nom de la contrainte.
- Cliquez sur Modifier pour modifier la contrainte.
- Sur la page Modifier, sélectionnez Personnaliser.
- Sous Application, sélectionnez une option d'application :
- Pour activer l'application de cette contrainte, sélectionnez Activer.
- Pour désactiver l'application de cette contrainte, sélectionnez Désactiver.
- Une fois les modifications effectuées, cliquez sur Enregistrer pour appliquer les paramètres de contrainte.
Pour obtenir des instructions détaillées sur la personnalisation des règles d'administration à l'aide de la console Google Cloud, consultez la page Personnaliser les règles pour les contraintes booléennes.
gcloud
Pour activer l'application d'une contrainte booléenne pour une règle d'administration, utilisez la commande gcloud resource-manager org-policies
enable-enforce
comme suit.
Pour activer la restriction de la suppression des privilèges du projet VPC partagé :
gcloud resource-manager org-policies enable-enforce \ --organization ORGANIZATION_ID \ constraints/compute.restrictXpnProjectLienRemoval
Pour désactiver l'équilibrage de charge global, procédez comme suit :
gcloud resource-manager org-policies enable-enforce \ --organization ORGANIZATION_ID \ constraints/compute.disableGlobalLoadBalancing
Pour obtenir des instructions détaillées sur l'utilisation des contraintes booléennes dans gcloud
, consultez la page Utiliser des contraintes.
Configurer des contraintes de liste avec des règles d'administration
Console
Pour définir une règle d'administration à partir de la console, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Règles d'administration.
- Dans le champ Filtre, recherchez la contrainte par Nom ou par ID. Par exemple, pour limiter les projets hôtes de VPC partagé, recherchez l'ID :
constraints/compute.restrictSharedVpcHostProjects
. - Cliquez sur le nom de la contrainte.
- Cliquez sur Modifier pour modifier la contrainte.
- Pour créer une règle personnalisée, sélectionnez Personnaliser et spécifiez la liste d'autorisation ou la liste de blocage des ressources. Pour obtenir des instructions plus détaillées sur la personnalisation des règles d'administration à l'aide de la console Google Cloud, consultez la page Personnaliser les règles pour les contraintes de liste.
- Une fois les modifications effectuées, cliquez sur Enregistrer pour appliquer les paramètres de contrainte.
gcloud
Cette section fournit quelques exemples de configuration pour vous montrer comment créer et définir un fichier de règle d'administration avec une contrainte de liste. Pour obtenir des instructions plus détaillées sur l'utilisation des contraintes de listes et des règles d'administration dans gcloud
, consultez la page Utiliser des contraintes.
Créez le fichier de règles. Utilisez les exemples de configuration JSON suivants pour créer votre propre fichier de règles en fonction de vos besoins.
Limiter les types d'équilibreurs de charge
Autoriser uniquement un sous-ensemble d'équilibreurs de charge
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "allowedValues": [ "INTERNAL_TCP_UDP", "INTERNAL_HTTP_HTTPS", "EXTERNAL_NETWORK_TCP_UDP", "EXTERNAL_TCP_PROXY", "EXTERNAL_SSL_PROXY", "EXTERNAL_HTTP_HTTPS" ] } }
Refuser tous les équilibreurs de charge externes
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "deniedValues": [ "in:EXTERNAL" ] } }
Refuser tous les équilibreurs de charge
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "allValues": "DENY" } }
Limiter les types de transfert de protocole
Refuser tous les transferts de protocole
{ "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes", "listPolicy": { "allValues": "DENY" } }
Autoriser uniquement le transfert de protocole interne
{ "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes", "listPolicy": { "deniedValues": [ "EXTERNAL" ] } }
Limiter les configurations de VPC partagé
Limiter les projets hôtes VPC partagés
{ "constraint": "constraints/compute.restrictSharedVpcHostProjects", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID" ] } }
Limiter les sous-réseaux VPC partagés
{ "constraint": "constraints/compute.restrictSharedVpcSubnetworks", "listPolicy": { "deniedValues": [ "under:organizations/ORGANIZATION_ID", "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" ] } }
Limiter les services de backend de VPC partagé
{ "constraint": "constraints/compute.restrictCrossProjectServices", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID", "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME" ] } }
Appliquez la contrainte à une ressource : une organisation, un dossier ou un projet.
Pour les organisations, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy POLICY_FILE \ --organization=ORGANIZATION_ID
Pour les dossiers, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy POLICY_FILE \ --folder=FOLDER_ID
Pour les projets, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy POLICY_FILE \ --project=PROJECT_ID
Remplacez les éléments suivants :
ORGANIZATION_ID
: l'ID de votre organisation.FOLDER_ID
: l'ID de votre dossier.PROJECT_ID
: l'ID de votre projet.
Configurer une règle d'administration pour appliquer une règle SSL afin de cibler les proxys HTTPS et les proxys SSL cibles
Console
Pour définir une règle d'administration à partir de la console, procédez comme suit :
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le champ Filtre, recherchez la contrainte par Nom ou par ID.
Cliquez sur le nom de la contrainte.
Cliquez sur Modifier pour modifier la contrainte.
Pour créer une règle personnalisée, sélectionnez Personnaliser et spécifiez la liste d'autorisation ou la liste de blocage des ressources.
Une fois les modifications effectuées, cliquez sur Enregistrer pour appliquer les paramètres de contrainte.
gcloud
Cette section fournit quelques exemples de configuration montrant comment créer et définir un fichier de règle d'administration avec la contrainte constraints/compute.requireSslPolicy
.
Créez un fichier de règles pour interdire l'utilisation de règles SSL.
{ "constraint": "constraints/compute.requireSslPolicy", "listPolicy": { "allValues": "DENY" } }
Créez un fichier de règles pour appliquer une règle SSL à tous les proxys HTTPS et SSL cibles sous la ressource spécifiée dans la hiérarchie des ressources:
{ "constraint": "constraints/compute.requireSslPolicy", "listPolicy": { "allowedValues": [ "under:folders/FOLDER_ID", "under:projects/PROJECT_ID" ] } }
Appliquez la contrainte aux proxys HTTPS et SSL cibles: une organisation, un dossier ou un projet.
Pour les organisations, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --organization=ORGANIZATION_ID
Pour les dossiers, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --folder=FOLDER_ID
Pour les projets, exécutez la commande suivante :
gcloud resource-manager org-policies set-policy PATH_TO_POLICY_FILE \ --project=PROJECT_ID
Remplacez les éléments suivants :
PATH_TO_POLICY_FILE
: chemin d'accès à votre fichier de règleORGANIZATION_ID
: l'ID de votre organisationFOLDER_ID
: l'ID de votre dossier.PROJECT_ID
: ID de votre projet.
Pour que la règle en vigueur vérifie le comportement par défaut de la ressource (organisation, dossier ou projet), exécutez les commandes suivantes:
Pour les entreprises:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --organization=ORGANIZATION_ID
Pour les dossiers:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --folder=FOLDER_ID
Pour les projets:
gcloud resource-manager org-policies describe compute.requireSslPolicy \ --effective \ --project=PROJECT_ID
Pour supprimer la règle de la ressource (organisation, dossier ou projet), exécutez les commandes suivantes:
Pour les entreprises:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --organization=ORGANIZATION_ID
Pour les dossiers:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --folder=FOLDER_ID
Pour les projets:
gcloud resource-manager org-policies delete compute.requireSslPolicy \ --project=PROJECT_ID
Pour configurer des contraintes personnalisées, consultez la page Utiliser des contraintes personnalisées pour restreindre les fonctionnalités TLS.
Étapes suivantes
- Pour en savoir plus sur la hiérarchie des ressources qui s'applique aux règles d'administration, consultez la page Hiérarchie des ressources.
- Pour obtenir une présentation des règles et des contraintes d'administration, consultez la section Présentation du service de règles d'administration.
- Pour obtenir des instructions sur l'utilisation des contraintes et des règles d'administration dans la console Google Cloud, consultez la page Créer et gérer des règles d'administration.
- Pour obtenir des instructions sur l'utilisation des contraintes et des règles d'administration dans le fichier
gcloud
, consultez la section Utiliser des contraintes. - Pour obtenir la liste complète des contraintes disponibles, consultez la page Contraintes liées aux règles d'administration.
- Pour connaître les méthodes d'API pertinentes pour les règles d'administration, consultez la documentation de référence de l'API Resource Manager.