Vincoli dei criteri dell'organizzazione per Cloud Load Balancing

Questa pagina fornisce informazioni supplementari sui vincoli dei criteri dell'organizzazione che si applicano a Cloud Load Balancing. Puoi utilizzare i vincoli dei criteri dell'organizzazione per applicare le impostazioni a livello di progetto, cartella o organizzazione.

I criteri dell'organizzazione si applicano solo alle nuove risorse. I vincoli non sono applicati retroattivamente. Se disponi di risorse di bilanciamento del carico preesistenti che violano un nuovo criterio dell'organizzazione, dovrai risolvere queste violazioni manualmente.

Per un elenco completo dei vincoli disponibili, consulta Vincoli dei criteri dell'organizzazione.

Limita tipi di bilanciatori del carico

Utilizza un criterio dell'organizzazione per limitare i tipi di Cloud Load Balancing che possono essere creati nella tua organizzazione. Imposta il seguente vincolo del criterio dell'organizzazione:

  • Nome: limita la creazione del bilanciatore del carico in base ai tipi di bilanciatore del carico
  • ID: constraints/compute.restrictLoadBalancerCreationForTypes

Quando imposti il vincolo compute.restrictLoadBalancerCreationForTypes, specifichi una lista consentita o una lista bloccata dei tipi di Cloud Load Balancing. L'elenco dei valori consentiti o negati può includere solo i valori del seguente elenco:

  • Bilanciatori del carico delle applicazioni
    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS per il bilanciatore del carico delle applicazioni esterno globale
    • EXTERNAL_HTTP_HTTPS per il bilanciatore del carico delle applicazioni classico
    • EXTERNAL_MANAGED_HTTP_HTTPS per il bilanciatore del carico delle applicazioni esterno regionale
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS per il bilanciatore del carico delle applicazioni interno tra regioni
    • INTERNAL_HTTP_HTTPS per il bilanciatore del carico delle applicazioni interno regionale
  • Bilanciatori del carico di rete proxy
    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY per il bilanciatore del carico di rete proxy esterno globale con un proxy TCP
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY per il bilanciatore del carico di rete del proxy esterno globale con un proxy SSL
    • EXTERNAL_TCP_PROXY per il bilanciatore del carico di rete proxy classico con un proxy TCP
    • EXTERNAL_SSL_PROXY per il bilanciatore del carico di rete proxy classico con un proxy SSL
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY per il bilanciatore del carico di rete proxy esterno regionale con un proxy TCP
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY per il bilanciatore del carico di rete proxy interno regionale con un proxy TCP
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY per il bilanciatore del carico di rete proxy interno tra regioni con un proxy TCP
  • Bilanciatori del carico di rete passthrough
    • EXTERNAL_NETWORK_TCP_UDP per il bilanciatore del carico di rete passthrough esterno
    • INTERNAL_TCP_UDP per il bilanciatore del carico di rete passthrough interno

Per includere tutti i tipi di bilanciatori del carico interni o esterni, utilizza il prefisso in: seguito da INTERNAL o EXTERNAL. Ad esempio, se consenti in:INTERNAL consenti tutti i bilanciatori del carico interni dell'elenco precedente.

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare i vincoli degli elenchi con i criteri dell'organizzazione.

Una volta impostato, il criterio viene applicato in modo forzato quando vengono aggiunte le rispettive regole di forwarding di Google Cloud. Il vincolo non è applicato alle configurazioni di Cloud Load Balancing esistenti.

Se tenti di creare un bilanciatore del carico di un tipo che viola il vincolo, il tentativo non va a buon fine e viene generato un messaggio di errore. Il messaggio di errore ha il seguente formato:

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.

Se imposti più vincoli restrictLoadBalancerCreationForTypes a diversi livelli delle risorse, questi vengono applicati gerarchicamente. Per questo motivo, consigliamo di impostare il campo inheritFromParent su true, per garantire che vengano presi in considerazione anche i criteri ai livelli più elevati.

Messaggi di errore GKE

Se utilizzi oggetti Service e Ingress di Google Kubernetes Engine (GKE), l'uso di questo criterio dell'organizzazione per limitare la creazione del bilanciatore del carico genera un messaggio di errore simile al seguente:

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

Puoi visualizzare i messaggi di errore di GKE eseguendo questi comandi:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

Sostituisci quanto segue:

  • RESOURCE_KIND: il tipo di bilanciatore del carico, ingress o service
  • NAME: il nome del bilanciatore del carico

Disabilita il bilanciamento del carico globale

Questo vincolo booleano disabilita la creazione di prodotti di bilanciamento del carico globali. Con l'applicazione forzata, è possibile creare solo i prodotti di bilanciamento del carico a livello di regione senza dipendenze globali.

  • * Nome: disabilita il bilanciamento del carico globale
  • * ID: constraints/compute.disableGlobalLoadBalancing

Per impostazione predefinita, gli utenti possono creare prodotti di bilanciamento del carico globale.

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare vincoli booleani con i criteri dell'organizzazione.

Limita tipi di forwarding del protocollo

Utilizza un criterio dell'organizzazione per limitare i tipi di forwarding del protocollo che possono essere creati nella tua organizzazione. Imposta il seguente vincolo del criterio dell'organizzazione:

  • Nome: limita l'inoltro del protocollo in base al tipo di indirizzo IP
  • ID: constraints/compute.restrictProtocolForwardingCreationForTypes

Quando imposti il vincolo compute.restrictProtocolForwardingCreationForTypes, specifichi una lista consentita o una lista bloccata dei tipi di inoltro del protocollo. L'elenco dei valori consentiti o negati può includere solo i valori del seguente elenco:

  • INTERNAL
  • EXTERNAL

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare i vincoli degli elenchi con i criteri dell'organizzazione.

Una volta impostato, il criterio viene applicato in modo forzato quando vengono aggiunte le rispettive regole di forwarding di Google Cloud. Il vincolo non è applicato alle configurazioni di forwarding del protocollo esistenti.

Se tenti di creare un deployment di forwarding del protocollo di un tipo che viola il vincolo, il tentativo non va a buon fine e viene generato un messaggio di errore. Il messaggio di errore ha il seguente formato:

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.

Se imposti più vincoli restrictProtocolForwardingCreationForTypes a diversi livelli delle risorse e se imposti il campo inheritFromParent su true, i vincoli vengono applicati in modo gerarchico.

Applica restrizioni per le reti VPC condivise

Utilizza i seguenti criteri dell'organizzazione per limitare il modo in cui gli utenti possono configurare deployment delle reti VPC condiviso.

Limita progetti host con VPC condivisi

Questo vincolo dell'elenco consente di limitare i progetti host del VPC condiviso a cui può essere associata una risorsa.

  • Nome: limita i progetti host del VPC condiviso
  • ID: constraints/compute.restrictSharedVpcHostProjects

Per impostazione predefinita, un progetto può essere collegato a qualsiasi progetto host nella stessa organizzazione, divenendo così un progetto di servizio. Quando imposti il vincolo compute.restrictSharedVpcHostProjects, specifichi una lista consentita o una lista bloccata di progetti host nei seguenti modi:

  • Specifica un progetto nel seguente formato:
    • progetti/PROJECT_ID
  • Specifica un progetto, una cartella o un'organizzazione. Il vincolo si applica a tutti i progetti all'interno della risorsa specificata nella gerarchia delle risorse. Utilizza il formato seguente:
    • sotto:organizzazioni/ORGANIZATION_ID
    • sotto:cartelle/FOLDER_ID

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare i vincoli degli elenchi con i criteri dell'organizzazione.

Limita subnet VPC condivise

Questo vincolo dell'elenco definisce l'insieme di subnet VPC condiviso che possono essere utilizzate dalle risorse idonee. Questo vincolo non si applica alle risorse all'interno dello stesso progetto.

  • Nome: limita le subnet VPC condivise
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Per impostazione predefinita, le risorse idonee possono utilizzare qualsiasi subnet VPC condiviso. Quando imposti il vincolo compute.restrictSharedVpcSubnetworks, specifichi un elenco limitato di subnet nei modi seguenti:

  • Specifica una subnet nel seguente formato:
    • projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
  • Specifica un progetto, una cartella o un'organizzazione. Il vincolo si applica a tutte le subnet all'interno della risorsa specificata nella gerarchia delle risorse. Utilizza il formato seguente:
    • sotto:organizzazioni/ORGANIZATION_ID
    • sotto:cartelle/FOLDER_ID
    • in:progetti/PROJECT_ID

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare i vincoli degli elenchi con i criteri dell'organizzazione.

Limita i servizi di backend tra progetti

Puoi utilizzare questo vincolo per limitare i servizi di backend a cui può fare riferimento una mappa URL. Questo vincolo non si applica ai servizi di backend all'interno dello stesso progetto della mappa URL.

  • Nome:limita i servizi di backend tra progetti
  • ID: constraints/compute.restrictCrossProjectServices

Per impostazione predefinita, le mappe URL in tutti i progetti host o di servizio possono fare riferimento a servizi di backend compatibili di altri progetti di servizio o al progetto host nello stesso deployment di VPC condiviso, a condizione che l'utente che esegue l'azione disponga dell'autorizzazione compute.backendServices.use. Quando imposti il vincolo restrictCrossProjectServices, specifichi una lista consentita o una lista bloccata di servizi di backend nei seguenti modi:

  • Specifica i servizi di backend nel seguente formato:
    • projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
  • Specifica un progetto, una cartella o un'organizzazione. Il vincolo si applica a tutti i servizi di backend all'interno della risorsa specificata nella gerarchia delle risorse. Utilizza il seguente formato:
    • sotto:organizzazioni/ORGANIZATION_ID
    • sotto:cartelle/FOLDER_ID
    • in:progetti/PROJECT_ID

Dopo aver configurato un criterio dell'organizzazione con questo vincolo, il vincolo entrerà in vigore la prossima volta che utilizzerai il comando gcloud compute url-maps per collegare un servizio di backend a una mappa URL. Il vincolo non influisce in modo retroattivo sui riferimenti esistenti ai servizi di backend tra progetti.

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare i vincoli degli elenchi con i criteri dell'organizzazione.

Limita la rimozione dei blocchi sul progetto del VPC condiviso

Questo vincolo booleano limita l'insieme di utenti che possono rimuovere un blocco su un progetto host VPC condiviso senza autorizzazione a livello di organizzazione in cui questo vincolo è già impostato su True.

  • Nome: limita la rimozione dei blocchi sul progetto del VPC condiviso
  • ID: constraints/compute.restrictXpnProjectLienRemoval

Per impostazione predefinita, qualsiasi utente con l'autorizzazione ad aggiornare i blocchi può rimuovere un blocco sul progetto host VPC condiviso. L'applicazione di questo vincolo richiede che sia concessa l'autorizzazione a livello di organizzazione.

Per istruzioni di esempio su come utilizzare questo vincolo, consulta Configurare vincoli booleani con i criteri dell'organizzazione.

Configurare vincoli booleani con i criteri dell'organizzazione

Console

Per impostare un criterio dell'organizzazione dalla console, completa questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.

    Vai a Criteri dell'organizzazione

  2. Nel campo Filtro, cerca il vincolo per Nome o ID.
  3. Fai clic sul nome del vincolo.
  4. Fai clic su Modifica per modificare il vincolo.
  5. Nella pagina Modifica, seleziona Personalizza.
  6. In Applicazione, seleziona un'opzione di applicazione:
    • Per abilitare l'applicazione di questo vincolo, seleziona On.
    • Per disattivare l'applicazione di questo vincolo, seleziona Off.
  7. Dopo aver apportato le modifiche, fai clic su Salva per applicare le impostazioni del vincolo.

Per istruzioni dettagliate sulla personalizzazione dei criteri dell'organizzazione tramite la console Google Cloud, consulta Personalizzazione dei criteri per i vincoli booleani.

gcloud

Per abilitare l'applicazione di un vincolo booleano per un criterio dell'organizzazione, utilizza il comando gcloud resource-manager org-policies enable-enforce come segue.

Per abilitare la limitazione della rimozione dei blocchi sul progetto del VPC condiviso:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.restrictXpnProjectLienRemoval

Per disabilitare il bilanciamento del carico globale:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.disableGlobalLoadBalancing

Per istruzioni dettagliate sull'utilizzo dei vincoli booleani in gcloud, consulta Utilizzo dei vincoli.

Configura vincoli dell'elenco con i criteri dell'organizzazione

Console

Per impostare un criterio dell'organizzazione dalla console, completa questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.

    Vai a Criteri dell'organizzazione

  2. Nel campo Filtro, cerca il vincolo per Nome o ID. Ad esempio, per limitare i progetti host del VPC condiviso, devi cercare l'ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Fai clic sul nome del vincolo.
  4. Fai clic su Modifica per modificare il vincolo.
  5. Per creare un criterio personalizzato, seleziona Personalizza e specifica la lista consentita o la lista bloccata delle risorse. Per istruzioni più dettagliate sulla personalizzazione dei criteri dell'organizzazione tramite la console Google Cloud, vedi Personalizzazione dei criteri per i vincoli degli elenchi.
  6. Dopo aver apportato le modifiche, fai clic su Salva per applicare le impostazioni del vincolo.

gcloud

Questa sezione fornisce alcuni esempi di configurazione per mostrare come creare e impostare un file dei criteri dell'organizzazione con un vincolo di elenco. Per istruzioni più dettagliate sull'utilizzo dei vincoli degli elenchi e dei criteri dell'organizzazione in gcloud, consulta Utilizzare i vincoli.

  1. Crea il file dei criteri. Utilizza i seguenti esempi di configurazione JSON per creare un file di criteri personalizzato in base ai tuoi requisiti.

    • Limita i tipi di bilanciatori del carico

      • Consenti solo un sottoinsieme di bilanciatori del carico

        {
        "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"
          ]
        }
        }
        
      • Nega tutti i bilanciatori del carico esterni

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "in:EXTERNAL"
          ]
        }
        }
        
      • Nega tutti i bilanciatori del carico

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • Limita i tipi di inoltro del protocollo

      • Rifiutare tutti i protocolli di forwarding

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • Consenti solo l'inoltro del protocollo interno

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • Limita le configurazioni dei VPC condivisi

      • Limita i progetti host del VPC condiviso

        {
        "constraint": "constraints/compute.restrictSharedVpcHostProjects",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID"
          ]
        }
        }
        
      • Limita subnet VPC condivise

        {
        "constraint": "constraints/compute.restrictSharedVpcSubnetworks",
        "listPolicy": {
          "deniedValues": [
            "under:organizations/ORGANIZATION_ID",
            "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
          ]
        }
        }
        
      • Limita i servizi di backend dei VPC condivisi

        {
        "constraint": "constraints/compute.restrictCrossProjectServices",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID",
            "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
          ]
        }
        }
        
  2. Applica il vincolo a una risorsa: un'organizzazione, una cartella o un progetto.

    Per le organizzazioni, esegui questo comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    Per le cartelle, esegui questo comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    Per i progetti, esegui questo comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

Passaggi successivi