Questa pagina mostra come configurare i criteri di autorizzazione per i bilanciatori del carico delle applicazioni.
Prima di iniziare
- Acquisisci familiarità con la panoramica dei criteri di autorizzazione.
-
- API Network Security
- API Network Services
Configura il bilanciatore del carico
Se non hai creato un bilanciatore del carico, consulta le seguenti pagine per configurare il bilanciatore del carico delle applicazioni che preferisci:
- Per creare un bilanciatore del carico delle applicazioni esterno globale, consulta Configura un bilanciatore del carico delle applicazioni esterno globale con backend di gruppi di istanze VM.
Per creare un bilanciatore del carico delle applicazioni esterno regionale, consulta Configura un bilanciatore del carico delle applicazioni esterno regionale con backend di gruppi di istanze VM.
Per creare un bilanciatore del carico delle applicazioni interno regionale, consulta Configura un bilanciatore del carico delle applicazioni interno regionale con backend di gruppi di istanze VM.
- Per creare un bilanciatore del carico delle applicazioni interno tra regioni, consulta Configura un bilanciatore del carico delle applicazioni interno tra regioni con backend di gruppi di istanze VM.
Crea e collega service account o tag alle VM Google Cloud
Per i bilanciatori del carico delle applicazioni interni, puoi applicare policy di autorizzazione in base agli account di servizio o ai tag collegati a risorse diverse Google Cloud.
L'esempio in questo documento fornisce istruzioni per creare un criterio di autorizzazione basato su service account o tag collegati a istanze di macchina virtuale (VM) Google Cloud . Qualsiasi richiesta proveniente da una VM client collegata a un account di servizio o a un tag specifico può essere consentita, negata o delegata a un servizio esterno. Un esempio di questo criterio di autorizzazione che utilizza service account e tag per applicare controllo dell'accesso è fornito nella sezione Criterio di autorizzazione basato su service account o tag di questo documento.
L'applicazione di criteri di autorizzazione basati su service account o tag non è supportata per i bilanciatori del carico delle applicazioni esterni.
Collega service account alle VM client
Per istruzioni su come collegare un account di servizio a un'istanza VM, consulta i seguenti documenti:
- Per configurare un account di servizio durante la creazione della VM, consulta Crea una VM che utilizza un service account gestito dall'utente.
- Per configurare un account di servizio su una VM esistente, consulta Modifica il service account collegato.
Allegare tag al modello di gruppo di istanze
Prima di associare un tag al modello di gruppo di istanze, devi creare
una chiave e un valore del tag. Quando crei un tag, assegnagli uno scopo GCE_FIREWALL
.Le funzionalità di networking, tra cui Secure Web Proxy e i criteri di autorizzazione, richiedono lo scopo GCE_FIREWALL
per applicare il tag. Google Cloud
Crea una chiave e un valore del tag
Per creare tag, devi disporre del ruolo Amministratore del tag (roles/resourcemanager.tagAdmin
).
Console
Nella console Google Cloud , vai alla pagina Tag.
Fai clic su
Crea.Nel campo Descrizione chiave tag, inserisci una descrizione.
Seleziona la casella di controllo Per l'utilizzo con un firewall di rete.
Nell'elenco Progetto, seleziona il progetto Google Cloud in cui vuoi creare il tag.
Nel campo Rete, seleziona
LB_NETWORK
.Fai clic su
Aggiungi valore.Nel campo Valore tag, inserisci
TAG_VALUE
. Il valore deve essere numerico.Nel campo Descrizione del valore del tag, inserisci una descrizione.
Al termine dell'aggiunta dei valori dei tag, fai clic su Crea chiave tag.
gcloud
Crea la chiave tag.
gcloud resource-manager tags keys create TAG_KEY \ --parent=organizations/ORG_ID \ --purpose=GCE_FIREWALL \ --purpose-data=network=LB_NETWORK
Sostituisci quanto segue:
TAG_KEY
: il nome della chiave del tag.ORG_ID
: l'ID della tua organizzazione.LB_NETWORK
: il nome della tua rete VPC.
Aggiungi il valore del tag alla chiave del tag numerico.
gcloud resource-manager tags values create TAG_VALUE \ --parent=ORG_ID/TAG_KEY
Sostituisci
TAG_VALUE
con un valore numerico del tag.
Associa il tag al modello di gruppo di istanze
Gli amministratori dei tag possono associare i tag a singole istanze VM o al modello di gruppo di istanze e collegare il valore del tag ai backend delle VM o del modello.
Per associare i tag, devi disporre del ruolo Utente
tag
(roles/resourcemanager.tagUser
).
Definisci il prefisso del nome completo per il progetto e la zona:
FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.ZONE
: la zona in cui si trova il gruppo di istanze gestite.
Ottieni l'ID del modello di gruppo di istanze:
TEMPLATE_ID=$(gcloud compute instance-templates describe TEMPLATE_NAME --region=LOCATION --format='value(id)')
Sostituisci quanto segue:
TEMPLATE_NAME
: il nome del modello di gruppo di istanze.LOCATION
: la tua Google Cloud regione.
Concatena i valori di
FULL_NAME_PREFIX
eTEMPLATE_ID
:PARENT="$FULL_NAME_PREFIX$TEMPLATE_ID" echo $PARENT
Crea le associazioni.
gcloud resource-manager tags bindings create \ --location LOCATION \ --tag-value ORG_ID/TAG_KEY/TAG_VALUE \ --parent PARENT
Sostituisci quanto segue:
ORG_ID
: l'ID della tua organizzazione.LOCATION
: la tua Google Cloud regione.TAG_KEY
: il nome della chiave tag sicura.TAG_VALUE
: il valore numerico del tag.
Crea un criterio di autorizzazione
Per creare una policy di autorizzazione, crea un file YAML
che definisce la destinazione e le regole, quindi importa il file utilizzando il
comando gcloud beta network-security authz-policies
.
Questa sezione fornisce istruzioni per creare diversi tipi di criteri di autorizzazione collegati alla regola di forwarding di un bilanciatore del carico.
Policy di autorizzazione per negare le richieste
Questa sezione fornisce un esempio di policy di autorizzazione che nega le richieste in base ai principal del certificato client.
Globale e interregionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico delle applicazioni interno tra regioni, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file YAML della policy di autorizzazione per negare determinate richieste.
L'esempio seguente crea un file
authz-policy-deny.yaml
per la regola di forwardingLB_FORWARDING_RULE
nella localitàglobal
. Il criterio nega l'accesso al percorso URL/api/payments
ai client che hannowww.example.com
nei nomi DNS SAN del certificato client.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - principals: - principalSelector: CLIENT_CERT_DNS_NAME_SAN exact: "www.example.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per il bilanciatore del carico delle applicazioni esterno globale, imposta lo schema suEXTERNAL_MANAGED
. Per il bilanciatore del carico delle applicazioni interno tra regioni, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione:
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=global
Regionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno regionale, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file YAML della policy di autorizzazione per negare determinate richieste.
L'esempio seguente crea un file
authz-policy-deny.yaml
per la regola di inoltroLB_FORWARDING_RULE
in una regioneGoogle Cloud . Il criterio nega l'accesso al percorso URL/api/payments
ai client che hannowww.example.com
nei SAN del nome DNS del certificato client.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - principals: - principalSelector: CLIENT_CERT_DNS_NAME_SAN exact: "www.example.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per il bilanciatore del carico delle applicazioni esterno regionale, imposta lo schema suEXTERNAL_MANAGED
. Per il bilanciatore del carico delle applicazioni interno regionale, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la tua Google Cloud regione.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file di policy creato in precedenza e crea una policy di autorizzazione nella regione
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Policy di autorizzazione per consentire le richieste
Questa sezione fornisce un esempio di criterio di autorizzazione che consente le richieste provenienti da intervalli di indirizzi IP specifici.
Globale e interregionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico delle applicazioni interno tra regioni, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file YAML della policy di autorizzazione per consentire determinate richieste.
L'esempio seguente crea un file
authz-policy-allow.yaml
per la regola di forwardingLB_FORWARDING_RULE
nella localitàglobal
. Il criterio consente ai client con indirizzi IP nell'intervallo10.0.0.1/24
di accedere al percorso URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - ipBlocks: - prefix: "10.0.0.1" length: "24" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per il bilanciatore del carico delle applicazioni esterno globale, imposta lo schema suEXTERNAL_MANAGED
. Per il bilanciatore del carico delle applicazioni interno tra regioni, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=global
Regionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno regionale, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file YAML della policy di autorizzazione per consentire determinate richieste.
L'esempio seguente crea un file
authz-policy-allow.yaml
per la regola di forwardingLB_FORWARDING_RULE
in una regione Google Cloud specifica. Il criterio consente ai client con indirizzi IP nell'intervallo10.0.0.1/24
di accedere al percorso URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - ipBlocks: - prefix: "10.0.0.1" length: "24" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Se utilizzi il bilanciatore del carico delle applicazioni esterno regionale, imposta lo schema suEXTERNAL_MANAGED
. Se utilizzi il bilanciatore del carico delle applicazioni interno regionale, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la tua Google Cloud regione.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione nella regione
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Policy di autorizzazione basata su service account o tag
Puoi applicare le norme di autorizzazione in base ai service account o ai tag solo ai bilanciatori del carico delle applicazioni interni. Qualsiasi traffico proveniente da una VM client collegata a un account di serviziot o a un tag specifico può essere consentito, negato o delegato a un servizio esterno.
Se vuoi creare e collegare service account o tag alle VM Google Cloud , consulta la sezione Crea e collega service account o tag alle VM Google Cloud in questo documento.
Service account
Crea un file YAML della policy di autorizzazione per negare determinate richieste.
L'esempio seguente crea un file
authz-policy-deny.yaml
per la regola di forwardingLB_FORWARDING_RULE
di un bilanciatore del carico delle applicazioni interno regionale. Il criterio è configurato per negare le richieste provenienti da qualsiasi VM client con il account di serviziomy-sa-123@PROJECT_ID.iam.gserviceaccount.com
per raggiungere il percorso/api/payments
.$ cat >authz-policy-deny.yaml <<EOF name: my-authz-policy-deny target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: - resources: - iamServiceAccount: exact: "my-sa-123@PROJECT_ID.iam.gserviceaccount.com" to: operations: - paths: - prefix: "/api/payments" action: DENY EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per un bilanciatore del carico delle applicazioni interno regionale, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la tua Google Cloud regione.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione nella regione Google Cloud specificata.
gcloud beta network-security authz-policies import my-authz-policy-deny \ --source=authz-policy-deny.yaml \ --location=LOCATION
Sostituisci quanto segue:
LOCATION
: la tua Google Cloud regione.
Tag
Crea un file YAML della policy di autorizzazione per consentire determinate richieste.
L'esempio seguente crea un file
authz-policy-allow.yaml
per la regola di forwardingLB_FORWARDING_RULE
di un bilanciatore del carico delle applicazioni interno regionale. Il criterio consente solo alle richieste provenienti da una VM con il tag risorsaTAG_VALUE
di accedere al percorso dell'URL/api/payments
.$ cat >authz-policy-allow.yaml <<EOF name: my-authz-policy-allow target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - from: sources: resources: - tagValueIdSet: - ids: "TAG_VALUE" to: operations: - paths: - exact: "/api/payments" action: ALLOW EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per un bilanciatore del carico delle applicazioni interno regionale, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la tua Google Cloud regione.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione nella regioneGoogle Cloud specificata:
gcloud beta network-security authz-policies import my-authz-policy-allow \ --source=authz-policy-allow.yaml \ --location=LOCATION
Sostituisci quanto segue:
LOCATION
: la tua Google Cloud regione.
Policy di autorizzazione per la delega a un'estensione di servizio
Prima di iniziare, configura un motore di autorizzazione esterno. Per saperne di più sulle estensioni di servizio, consulta la panoramica dei callout di Cloud Load Balancing.
Globale e interregionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico delle applicazioni interno tra regioni, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file di policy di autorizzazione per delegare determinate richieste a un servizio esterno.
L'esempio seguente crea un file
authz-policy-custom.yaml
per la regola di forwardingLB_FORWARDING_RULE
nella localitàglobal
. La policy chiama l'estensioneAUTHZ_EXTENSION
per tutto il traffico verso il percorso URL/api/payments
quando la richiesta contiene un'intestazioneAuthorization
non vuota.$ cat >authz-policy-custom.yaml <<EOF name: my-authz-policy-custom target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules/LB_FORWARDING_RULE" httpRules: - to: operations: - paths: - exact: "/api/payments" when: 'request.headers["Authorization"] != ""' action: CUSTOM customProvider: authzExtension: resources: - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/global/authzExtensions/AUTHZ_EXTENSION" EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per il bilanciatore del carico delle applicazioni esterno globale, imposta lo schema suEXTERNAL_MANAGED
. Per il bilanciatore del carico delle applicazioni interno tra regioni, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.AUTHZ_EXTENSION
: il nome dell'estensione dell'autorizzazione.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione:
gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=global
Regionale
Se utilizzi un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno regionale, segui questi passaggi per creare e importare un criterio di autorizzazione:
Crea un file YAML dei criteri di autorizzazione per delegare determinate richieste a un servizio esterno.
L'esempio seguente crea un file
authz-policy-custom.yaml
per la regola di forwardingLB_FORWARDING_RULE
in una regione Google Cloud di un bilanciatore del carico delle applicazioni interno regionale. Il criterio chiama l'estensioneAUTHZ_EXTENSION
per tutto il traffico verso il percorso URL/api/payments
quando la richiesta contiene un'intestazioneAuthorization
non vuota.$ cat >authz-policy-custom.yaml <<EOF name: my-authz-policy-custom target: loadBalancingScheme: LB_SCHEME resources: - "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/LB_FORWARDING_RULE" httpRules: - to: operations: - paths: - exact: "/api/payments" when: 'request.headers["Authorization"] != ""' action: CUSTOM customProvider: authzExtension: resources: - "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/authzExtensions/AUTHZ_EXTENSION" EOF
Sostituisci quanto segue:
LB_SCHEME
: lo schema di bilanciamento del carico. Per il bilanciatore del carico delle applicazioni esterno regionale, imposta lo schema suEXTERNAL_MANAGED
. Per il bilanciatore del carico delle applicazioni interno regionale, imposta lo schema suINTERNAL_MANAGED
.PROJECT_ID
: l'ID del tuo Google Cloud progetto.LOCATION
: la tua Google Cloud regione.LB_FORWARDING_RULE
: il nome della regola di forwarding del bilanciatore del carico.AUTHZ_EXTENSION
: il nome dell'estensione dell'autorizzazione.
Crea una policy di autorizzazione e importa il file YAML.
Il seguente comando di esempio importa il file della policy creato in precedenza e crea una policy di autorizzazione nella regione
LOCATION
:gcloud beta network-security authz-policies import my-authz-policy-custom \ --source=authz-policy-custom.yaml \ --location=LOCATION
Testare un criterio di autorizzazione
Per testare un criterio di autorizzazione, invia un po' di traffico al bilanciatore del carico. Per maggiori informazioni, consulta le seguenti pagine:
- Se utilizzi un bilanciatore del carico delle applicazioni esterno globale, consulta Testare il traffico inviato alle istanze.
Se utilizzi un bilanciatore del carico delle applicazioni esterno regionale, consulta Testare il bilanciatore del carico.
Se utilizzi un bilanciatore del carico delle applicazioni interno regionale, consulta Testa il bilanciatore del carico.
- Se utilizzi un bilanciatore del carico delle applicazioni interno tra regioni, consulta Testa il bilanciatore del carico.
Informazioni sui log delle norme di autorizzazione in Cloud Logging
Per capire come vengono registrate le policy di autorizzazione quando una richiesta viene consentita o negata, consulta le sezioni seguenti.
La richiesta non corrisponde alle norme ALLOW
né a quelle DENY
Quando una richiesta non corrisponde né alle norme ALLOW
né a quelle DENY
, le norme DENY
consentono la richiesta e la registrano come
allowed_as_no_deny_policies_matched_request
. Al contrario, il criterio ALLOW
rifiuta la richiesta e la registra come
denied_as_no_allow_policies_matched_request
. Poiché una delle norme
nega la richiesta, quest'ultima viene rifiutata.
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale,
statusDetails
è impostato sudenied_by_authz_policy
nel log. Vedi il seguente esempio:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "denied_as_no_allow_policies_matched_request" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" statusDetails: "denied_by_authz_policy" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Se utilizzi un bilanciatore del carico delle applicazioni interno regionale, un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno tra regioni,
proxyStatus
è impostato suerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
nel log. Vedi il seguente esempio:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "denied_as_no_allow_policies_matched_request" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\"" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
La richiesta è conforme alle norme DENY
Quando una richiesta corrisponde alla norma DENY
, viene negata e la norma che
ha negato la richiesta viene registrata.
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale,
statusDetails
è impostato sudenied_by_authz_policy
nel log e il nome del criterio che ha negato la richiesta viene registrato inpolicies
. Vedi il seguente esempio:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "name: "projects/12345567/locations/global/authzPolicies/deny-authz-policy-test"" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" statusDetails: "denied_by_authz_policy" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Se utilizzi un bilanciatore del carico delle applicazioni interno regionale, un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno tra regioni,
proxyStatus
è impostato suerror=\"http_request_error\"; details=\"denied_by_authz_policy\"
e il nome del criterio viene registrato inpolicies
. Vedi il seguente esempio:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "name: "projects/12345567/locations/$REGION/authzPolicies/deny-authz-policy-test"" result: "DENIED" } ] result: "DENIED" } backendTargetProjectNumber: "projects/12345567" remoteIp: "00.100.11.104" proxyStatus: "error=\"http_request_error\"; details=\"denied_by_authz_policy\"" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
La richiesta non è conforme alle norme DENY
, ma è conforme alle norme ALLOW
Quando una richiesta non corrisponde al criterio DENY
, ma corrisponde al criterio ALLOW
, la richiesta viene consentita. Nel log, questa azione viene registrata come
allowed_as_no_deny_policies_matched_request
per il criterio DENY
. Viene registrato anche il criterio
che ha consentito la richiesta.
Se utilizzi un bilanciatore del carico delle applicazioni esterno globale, non è presente alcun
statusDetails
nel log. Anche il criterio che ha consentito la richiesta viene registrato inpolicies
. Vedi l'esempio seguente:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "name: "projects/12345567/locations/global/authzPolicies/allow-authz-policy-test"" result: "ALLOWED" } ] result: "ALLOWED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }
Se utilizzi un bilanciatore del carico delle applicazioni interno regionale, un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno tra regioni, non è presente alcun campo
proxyStatus
nel log. Il criterio che ha consentito la richiesta viene registrato anche inpolicies
. Vedi il seguente esempio:{ httpRequest: {8} insertId: "example-id" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" authzPolicyInfo: { policies: [ 0: { details: "allowed_as_no_deny_policies_matched_request" result: "ALLOWED" } 1: { details: "name: "projects/12345567/locations/$REGION/authzPolicies/allow-authz-policy-test"" result: "ALLOWED" } ] result: "ALLOWED" } backendTargetProjectNumber: "projects/12345567" cacheDecision: [2] remoteIp: "00.100.11.104" } logName: "projects/example-project/logs/requests" receiveTimestamp: "2024-08-28T15:33:56.046651035Z" resource: {2} severity: "WARNING" spanId: "3e1a09a8e5e3e14d" timestamp: "2024-08-28T15:33:55.355042Z" trace: "projects/example-project/traces/8c8b3dbf9a19c85954d0fa2d958ca509" }