Un account di servizio è uno speciale Account Google non umano utilizzato da applicazioni, processi automatizzati o carichi di lavoro di calcolo, come un'istanza di Compute Engine, per effettuare chiamate API autorizzate. A differenza degli account utente, un account di servizio è identificato esclusivamente dal suo indirizzo email univoco.
Le applicazioni utilizzano i service account per l'autenticazione e l'accesso alle Google Cloud risorse. Quando un'applicazione esegue l'autenticazione utilizzando un service account, ottiene l'accesso alle risorse per cui al account di servizio sono state assegnate autorizzazioni Identity and Access Management esplicite. In questo modo, viene fornito un metodo sicuro, controllabile e centralizzato per l'autorizzazione da macchina a macchina.
Per Secure Web Proxy, i service account svolgono un ruolo fondamentale nell'autorizzazione e nell'applicazione delle policy. Utilizzando un account di servizio per identificare l'origine del traffico di un carico di lavoro, puoi creare policy Secure Web Proxy granulari che consentono o negano specificamente il traffico web in base all'identità dell'applicazione, anziché solo al suo indirizzo IP.
Questa pagina mostra come eseguire le seguenti operazioni:
- Creare un'istanza di Secure Web Proxy con una policy vuota
- Creare un account di servizio e concedere ruoli IAM
- Creare regole di Secure Web Proxy
- Testare la connettività dell'intera configurazione di Secure Web Proxy
Prima di iniziare
Completa i passaggi della configurazione iniziale.
Chiedi a un amministratore dell'organizzazione di concederti l'accesso a un service account.
Verifica di aver installato la versione 406.0.0 o successive di Google Cloud CLI:
gcloud version | head -n1Se hai installato una versione precedente di gcloud CLI, aggiornala:
gcloud components update --version=406.0.0
Creare un'istanza di Secure Web Proxy con una policy vuota
Per creare un'istanza di Secure Web Proxy, devi prima creare una policy di sicurezza vuota e poi creare un proxy web che utilizzi la policy.
Creare una policy di sicurezza vuota
Console
Nella Google Cloud console, vai alla pagina Policy SWP.
Fai clic su Crea una policy.
Nel campo Nome, inserisci un nome per la policy, ad esempio
myswppolicy.Nel campo Descrizione, inserisci una descrizione per la policy, ad esempio
My new swp policy.In Regioni, seleziona la regione in cui vuoi creare la policy, ad esempio
us-central1.Fai clic su Crea.
Cloud Shell
Utilizza l'editor di testo che preferisci per creare un file
policy.yaml.Aggiungi quanto segue al file
policy.yamlche hai creato:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONSostituisci quanto segue:
PROJECT_NAME: nome del progettoREGION: regione in cui viene creata la policy, ad esempious-central1POLICY_NAME: nome della policyPOLICY_DESCRIPTION: descrizione della policy
Importa la policy di sicurezza utilizzando il
gcloud network-security gateway-security-policies importcomando:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Creare un proxy web
Console
Nella Google Cloud console, vai alla pagina Proxy web.
Fai clic su Crea un proxy web sicuro.
Nel campo Nome, inserisci un nome per il proxy web, ad esempio
myswp.Nel campo Descrizione, inserisci una descrizione per il proxy web, ad esempio
My new swp.In Modalità di routing, seleziona l'opzione Esplicita.
In Regioni, seleziona la regione in cui vuoi creare il proxy web, ad esempio
us-central1.In Rete, seleziona la rete in cui vuoi creare il proxy web.
In Subnet, seleziona la subnet VPC che hai creato in precedenza nell'ambito dei passaggi della configurazione iniziale.
(Facoltativo) Nel campo Indirizzo IP del proxy web, inserisci l'indirizzo IP di Secure Web Proxy.
Puoi inserire un indirizzo IP dall'intervallo di indirizzi IP di Secure Web Proxy che si trovano nella subnet creata nel passaggio precedente. Se non inserisci l'indirizzo IP, l'istanza di Secure Web Proxy sceglie automaticamente un indirizzo IP dalla subnet selezionata.
In Certificato, seleziona il certificato che vuoi utilizzare per creare il proxy web.
In Policy, seleziona la policy che hai creato per associare il proxy web.
Fai clic su Crea.
Cloud Shell
Utilizza l'editor di testo che preferisci per creare un file
gateway.yaml.Aggiungi quanto segue al file
gateway.yaml:name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK addresses: [GATEWAY_IP_ADDRESS] scope: samplescopeSostituisci quanto segue:
GATEWAY_NAME: nome di questa istanza di Secure Web ProxyGATEWAY_PORT_NUMBERS: elenco dei numeri di porta per questo gateway, ad esempio[80,443]CERTIFICATE_URLS: elenco degli URL dei certificati SSLSUBNETWORK: subnet VPC che hai creato in precedenza nell'ambito dei passaggi dellaconfigurazione iniziale-
Se scegli di non elencare gli indirizzi IP, ometti il campo per consentire al proxy web di scegliere un indirizzo IP.
Crea l'istanza di Secure Web Proxy utilizzando il
gcloud network-services gateways importcomando:gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
Testare la connettività
Per testare la connettività, utilizza il comando curl da qualsiasi istanza di macchina virtuale (VM) all'interno della rete Virtual Private Cloud (VPC):
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Se tutto funziona correttamente, l'istanza di Secure Web Proxy restituisce un codice di stato 403 Forbidden. Questo errore conferma quanto segue:
L'istanza di Secure Web Proxy è stata eseguita correttamente e riceve attivamente il traffico.
La policy di Secure Web Proxy applica correttamente la postura di sicurezza predefinita di rifiuto di tutto il traffico finché non definisci regole
allowspecifiche nelle sezioni successive.
Creare un account di servizio e concedere ruoli IAM
Crea un service account: utilizza il
gcloud iam service-accounts createcomando per creare un account di servizio denominatomy-swp-sanel tuo Google Cloud progetto.gcloud iam service-accounts create my-swp-sa \ --display-name="Secure Web Proxy service account" \ --description="Service account for Secure Web Proxy instances"
Concedi i ruoli IAM al service account: utilizza il
gcloud projects add-iam-policy-bindingcomando per concedere i ruoli IAM necessari al account di servizio in modo che possa gestire o utilizzare le risorse nel tuo Google Cloud progetto.Ad esempio, per consentire al account di servizio di utilizzare le risorse di rete, concedigli il ruolo Utente rete Compute (
roles/compute.networkUser).gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:my-swp-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
Sostituisci
PROJECT_IDcon l'ID del tuo Google Cloud progetto.
Creare una regola di Secure Web Proxy
Console
Nella Google Cloud console, vai alla pagina Policy SWP.
Fai clic sul nome della policy che hai creato in precedenza, ad esempio
myswppolicy.Fai clic su Aggiungi regola.
Per ogni regola, procedi nel seguente modo:
Nel campo Priorità, inserisci un ordine di valutazione numerico per la regola. Le regole vengono valutate dalla priorità più alta a quella più bassa, dove
0è la priorità più alta.Nel campo Nome, inserisci un nome per la regola.
Nel campo Descrizione, inserisci una descrizione per la regola.
In Azione, seleziona una delle seguenti opzioni:
- Consenti: per consentire le richieste di connessione che corrispondono alla regola.
- Nega: per negare le richieste di connessione che corrispondono alla regola.
Nel campo Stato, seleziona una delle seguenti opzioni per l'applicazione della regola:
- Attivato: per applicare la regola all'istanza di Secure Web Proxy.
- Disattivato: per non applicare la regola all'istanza di Secure Web Proxy.
Nella sezione Corrispondenza sessione, specifica l'indirizzo email del account di servizio che hai creato in precedenza. Ad esempio:
sessionMatcher: "source.matchServiceAccount(SERVICE_ACCOUNT) && host() == 'example.com'"Per ulteriori informazioni sulla sintassi di
SessionMatcher, consulta il riferimento al linguaggio del matcher CEL.Nella sezione Corrispondenza applicazione, specifica i criteri per la corrispondenza della richiesta.
Fai clic su Aggiungi regola.
Per aggiungere un'altra regola, fai clic su Aggiungi regola.
Cloud Shell
Utilizza l'editor di testo che preferisci per creare il file
rule.yaml.Per consentire l'accesso a un URL dal account di servizio appropriato, aggiungi quanto segue al file
rule.yamlche hai creato:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWSostituisci quanto segue:
RULE_NAME: nome di questa regolaRULE_DESCRIPTION: descrizione della regolaRULE_PRIORITY: priorità di questa regola; un numero inferiore corrisponde a una priorità più altaCEL_EXPRESSION: un'espressione CEL (Common Expression Language). Per ulteriori informazioni, consulta il riferimento al linguaggio del matcher CEL.
Ad esempio, per consentire l'accesso a
example.comdalla risorsa con il account di servizio richiesto, aggiungi quanto segue al file YAML che hai creato persessionMatcher:```yaml sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'" ```Sostituisci
SERVICE_ACCOUNTcon il account di servizio che vuoi consentire. Deve essere l'indirizzo email del account di servizio.Importa le regole che hai creato utilizzando il
gcloud network-security gateway-security-policies rules importcomando:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Testare la connettività
Puoi testare di nuovo la connettività per verificare che l'intera configurazione di Secure Web Proxy, inclusi il account di servizio, le regole della policy di sicurezza e il gateway, funzioni come previsto.
Per testare la connettività, utilizza il comando curl dalla risorsa, ad esempio un'istanza VM, con SERVICE_ACCOUNT collegato:
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
Sostituisci IPv4_ADDRESS con l'indirizzo IPv4 dell'istanza di Secure Web Proxy.
Se tutto funziona correttamente, ricevi un codice di stato 200 OK. Questo codice di stato conferma i seguenti risultati chiave:
Autorizzazione riuscita: dimostra che il traffico proveniente dalla risorsa viene identificato correttamente dal account di servizio assegnato e che questa identità corrisponde correttamente alla
allowregola che hai aggiunto alla policy di sicurezza.Funzionalità end-to-end: convalida che il traffico scorra correttamente lungo il percorso configurato: dalla risorsa > all' istanza di Secure Web Proxy > passando per la policy di sicurezza > e raggiungendo la destinazione esterna.