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 d'équilibreur de charge à l'ensemble d'un projet, d'un dossier ou d'une organisation.
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 :
constraints/compute.restrictLoadBalancerCreationForTypes
Lorsque vous définissez la contrainte compute.restrictLoadBalancerCreationForTypes
, vous spécifiez les types Cloud Load Balancing qui ne sont pas autorisés. Pour obtenir la liste des types disponibles, consultez la section Restreindre la création d'un équilibreur de charge.
Configurer une règle d'administration
Console
Pour définir la règle d'administration Cloud Load Balancing depuis la console, procédez comme suit :
- Dans Google Cloud Console, accédez à la page Règles d'administration.
- Dans le champ Filtre, saisissez
load
, puis sélectionnez constraints/compute.restrictLoadBalancerCreationForTypes. - Cliquez sur Restreindre la création d'équilibreurs de charge en fonction de leurs types.
- Cliquez sur Modifier pour modifier vos contraintes liées aux règles Cloud Load Balancing existantes.
- Pour créer une règle personnalisée, sélectionnez Personnaliser.
- Une fois les modifications effectuées, cliquez sur Enregistrer pour appliquer les paramètres de contrainte.
gcloud
Pour définir la règle d'administration d'OS Login, exécutez la commande gcloud resource-manager org-policies
enable-enforce
.
Trouvez l'ID de votre organisation.
gcloud organizations list
Créez le fichier de règle, comme indiqué dans les exemples suivants.
Répertorier les valeurs à refuser
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "deniedValues": [ "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": [ "EXTERNAL" ] } }
Refuser tous les équilibreurs de charge
{ "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes", "listPolicy": { "allValues": "DENY" } }
Définissez la contrainte dans votre organisation. Remplacez
ORGANIZATION_ID
par votre ID d'organisation.gcloud resource-manager org-policies set-policy POLICY_FILE \ --organization=ORGANIZATION_ID
Vous pouvez également appliquer les règles d'administration d'OS Login à un dossier ou à un projet avec respectivement les options
--folder
ou--project
, ainsi que l'ID de dossier et de projet.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 :
FOLDER_ID
: l'ID de votre dossier.PROJECT_ID
: l'ID de votre projet.
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 une configuration Cloud Load Balancing 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.
Pour en savoir plus sur la définition des règles d'administration, y compris la description des options disponibles, consultez les pages Créer et gérer des règles d'administration et Utiliser des contraintes.
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
Étape suivante
- Découvrez la hiérarchie des ressources qui s'applique aux règles d'administration.
- Pour savoir comment utiliser les contraintes et les règles d'administration dans Google Cloud Console, consultez la page Créer et gérer des règles d'administration.
- Pour savoir comment utiliser les contraintes et les règles d'administration dans
gcloud
, consultez la page Utiliser des contraintes. - Consultez la documentation de référence sur l'API Resource Manager pour connaître les méthodes d'API pertinentes, telles que
projects.setOrgPolicy
.