Aggiungi reti autorizzate per l'accesso al piano di controllo


Questa pagina mostra come utilizzare le reti autorizzate per limitare le origini da cui puoi accedere ai piani di controllo dei tuoi cluster Google Kubernetes Engine (GKE). Le reti autorizzate concedono l'accesso al piano di controllo a un set specifico di indirizzi IP attendibili e offrono protezione e vantaggi aggiuntivi in termini di sicurezza per il tuo cluster GKE.

Come funzionano le reti autorizzate

Le reti autorizzate forniscono un firewall basato su IP che controlla l'accesso al piano di controllo GKE. L'accesso al piano di controllo dipende dal tipo di cluster GKE e dagli indirizzi IP di origine. Con le reti autorizzate, devi configurare gli indirizzi IP a cui vuoi consentire l'accesso all'endpoint del piano di controllo del cluster GKE come elenco di blocchi CIDR.

I termini seguenti vengono utilizzati per distinguere le regole firewall basate su IP che vengono applicate, a seconda del tipo di cluster:

Distinzioni degli indirizzi IP:

  • Indirizzi IP pubblici di tutte le VM di Compute Engine in Google Cloud: indirizzi IP pubblici assegnati a qualsiasi VM utilizzata da qualsiasi cliente ospitato su Google Cloud. Google Cloud è proprietario di questi indirizzi IP. Per saperne di più, consulta Dove posso trovare gli intervalli IP di Compute Engine?
  • Indirizzi IP della piattaforma Google Cloud: indirizzi IP utilizzati da prodotti Google Cloud come Cloud Run o Cloud Functions. Qualsiasi client ospitato su Google Cloud può creare un'istanza di questi indirizzi IP. Google Cloud è proprietario di questi indirizzi IP.
  • Indirizzi IP riservati da Google: indirizzi IP pubblici per la gestione dei cluster GKE. Questi indirizzi IP includono i processi gestiti di GKE e altri servizi Google di produzione. Google è proprietaria di questi indirizzi IP.
  • Indirizzi IP pubblici internet: indirizzi IP non conformi alla RFC 1918 e non Google. Né Google né i prodotti Google Cloud possiedono questi indirizzi IP pubblici.
  • Intervalli di indirizzi IP del cluster GKE: indirizzi IP assegnati al cluster che GKE utilizza per i nodi, i pod e i servizi del cluster.
  • Indirizzi IP utilizzati privatamente: indirizzi IP dalla rete VPC del cluster. Questi indirizzi IP possono includere l'indirizzo IP del cluster, le reti on-premise, gli intervalli RFC 1918 o gli indirizzi IP pubblici utilizzati privatamente (PUPI) che includono intervalli non RFC 1918.

Tipi di cluster:

  • Cluster pubblici legacy: cluster pubblici in esecuzione su reti legacy o reti VPC con indirizzi IP pubblici assegnati a nodi e di cui non è stata eseguita la migrazione all'architettura di Private Service Connect.
  • Cluster privati legacy: cluster basati sul peering di rete VPC per la connettività del piano di controllo solo da nodi con indirizzi IP privati.
  • Cluster basato su PSC creato come pubblico o privato: cluster che utilizzano l'architettura Private Service Connect per la comunicazione tra il piano di controllo e i nodi del cluster GKE. Per determinare se il cluster utilizza Private Service Connect, vedi il piano di controllo GKE.

Accesso agli endpoint del piano di controllo

La seguente tabella mostra lo stato della rete autorizzata predefinito al momento della creazione del cluster. In base al tipo di cluster GKE e di endpoint del piano di controllo, puoi determinare quanto segue:

  • Gli indirizzi IP preimpostati che possono sempre accedere al piano di controllo GKE.
  • Gli indirizzi IP che puoi configurare per accedere al piano di controllo del cluster con le reti autorizzate abilitate.

Gli indirizzi IP configurabili possono accedere al piano di controllo del cluster quando li inserisci nella lista consentita e abiliti le reti autorizzate.

Tipo di endpoint del cluster GKE e del piano di controllo Stato della rete autorizzato del piano di controllo predefinito Indirizzi IP preimpostati che possono accedere sempre al piano di controllo GKE.1 Indirizzo IP configurabile che può accedere al piano di controllo GKE con reti autorizzate abilitate2
Cluster pubblici legacy o privati in base al peering di rete VPC
Cluster pubblici legacy con un endpoint pubblico Disabilitato
  • Indirizzi IP pubblici di tutte le VM di Compute Engine in Google Cloud
  • Indirizzi IP della piattaforma Google Cloud
  • Indirizzi IP riservati da Google
  • Intervalli di indirizzi IP del cluster GKE
  • Indirizzi IP pubblici su internet inclusi nella lista consentita per accedere all'endpoint IP pubblico del cluster.
Cluster privati legacy con endpoint pubblici e privati Abilitato
  • Indirizzi IP riservati da Google
  • Intervalli di indirizzi IP dei cluster GKE (nodi, pod e servizi hanno solo indirizzi IP privati).
  • Indirizzi IP utilizzati privatamente nella lista consentita della rete del cluster per accedere all'endpoint privato del cluster.
  • Indirizzi IP pubblici su internet inclusi nella lista consentita per accedere all'endpoint pubblico del cluster se il flag --enable-private-endpoint è disabilitato.
Cluster che utilizzano Private Service Connect
Cluster creati come pubblici Disabilitato
  • Tutti gli indirizzi IP privati della rete del cluster (escluse le route di peering di rete VPC apprese).

Quando è impostato il flag –enable-google-cloud (predefinito), i seguenti indirizzi IP possono accedere al piano di controllo GKE:

  • Indirizzi IP pubblici di tutte le VM di Compute Engine in Google Cloud
  • Indirizzi IP della piattaforma Google Cloud
  • Indirizzi IP riservati da Google
  • Indirizzi IP pubblici dei nodi del cluster GKE.

Quando è impostato il flag –no-enable-google-cloud, i seguenti indirizzi IP possono accedere al piano di controllo GKE:

  • Indirizzi IP riservati da Google
  • Intervalli di indirizzi IP dei cluster GKE (nodi, pod e servizi hanno solo indirizzi IP privati).

Per saperne di più, consulta la sezione Modifica dell'isolamento del cluster.

  • Indirizzi IP pubblici su internet inclusi nella lista consentita per accedere all'endpoint pubblico del cluster
Cluster creati come privati Abilitato

Gli intervalli di indirizzi IP dei cluster GKE, come nodi, pod e servizi, hanno solo indirizzi IP privati.

Per impostazione predefinita, –enable-google-cloud è disabilitato quando viene creato il cluster. Tuttavia, quando è impostato il flag –enable-google-cloud, i seguenti indirizzi IP possono accedere al piano di controllo GKE:

  • Indirizzi IP pubblici di tutte le VM di Compute Engine in Google Cloud
  • Indirizzi IP della piattaforma Google Cloud
  • Indirizzi IP riservati da Google
  • Indirizzi IP pubblici dei nodi del cluster GKE.

Quando è impostato il flag –no-enable-google-cloud, i seguenti indirizzi IP possono accedere al piano di controllo GKE:

  • Indirizzi IP riservati da Google
  • Intervalli di indirizzi IP dei cluster GKE (nodi, pod e servizi hanno solo indirizzi IP privati).

Per saperne di più, consulta la sezione Modifica dell'isolamento del cluster.

  • Indirizzi IP pubblici su internet inclusi nella lista consentita per accedere all'endpoint pubblico del cluster se il flag --enable-private-endpoint è disabilitato.
  • Indirizzi IP utilizzati privatamente nella lista consentita della rete di cluster per accedere all'endpoint privato del cluster
  1. Gli indirizzi IP che possono sempre accedere al piano di controllo GKE, indipendentemente dal fatto che le reti autorizzate siano abilitate o disabilitate.

  2. Devi inserire nella lista consentita questi indirizzi IP configurabili per accedere al piano di controllo del cluster.

Limitazioni

  • Se espandi una subnet utilizzata da un cluster con reti autorizzate, devi aggiornare la configurazione della rete autorizzata in modo da includere l'intervallo di indirizzi IP espanso.
  • Il numero di intervalli di indirizzi IP autorizzati che puoi specificare per indirizzi IP pubblici e privati dipende dal tipo di cluster:

    • Cluster pubblico: 50 intervalli di indirizzi IP
    • Cluster privato: 100 intervalli di indirizzi IP
    • Cluster basati su PSC: 100 intervalli di indirizzi IP

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Crea un cluster con reti autorizzate

Puoi creare un cluster con una o più reti autorizzate utilizzando Google Cloud CLI, la console Google Cloud o l'API GKE.

gcloud

Esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • CIDR1,CIDR2,...: un elenco delimitato da virgole dei valori CIDR per le reti autorizzate. Ad esempio, 8.8.8.8/32,8.8.8.0/24.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Nella sezione Autopilot o Standard, fai clic su Configura.

  4. Configura il cluster in base alle tue esigenze.

  5. Nel menu di navigazione, fai clic su Networking.

  6. In Opzioni di rete avanzate, seleziona la casella di controllo Abilita reti autorizzate del piano di controllo.

  7. Fai clic su Aggiungi rete autorizzata.

  8. Inserisci un nome per la rete.

  9. In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al piano di controllo del cluster.

  10. Fai clic su Fine. Aggiungi altre reti autorizzate in base alle esigenze.

  11. Fai clic su Crea.

API

Specifica l'oggetto masterAuthorizedNetworksConfig nella richiesta create del cluster:

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
    {
      "displayName": string,
      "cidrBlock": string
    }
  ]
}

Per ulteriori informazioni, consulta MasterAuthorizedNetworksConfig.

Puoi configurare un cluster privato con una o più reti autorizzate. Per ulteriori informazioni, consulta Cluster privati.

Crea un cluster con accesso limitato al piano di controllo

GKE assegna un indirizzo IP pubblico (endpoint esterno) al piano di controllo nei cluster pubblici. Puoi impostare un ulteriore isolamento del cluster sui cluster pubblici che utilizzano Private Service Connect per connettere nodi e piano di controllo in privato. Per verificare se il cluster utilizza Private Service Connect, consulta Cluster pubblici con Private Service Connect.

Puoi creare un cluster e indicare a GKE di bloccare l'accesso dalle seguenti origini al piano di controllo:

Puoi creare un cluster e definire l'accesso al piano di controllo utilizzando Google Cloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME
    --no-enable-google-cloud-access

Sostituisci CLUSTER_NAME con il nome del cluster GKE.

Con questo comando, il flag no-enable-google-cloud-access impedisce che il piano di controllo sia accessibile dagli indirizzi IP di proprietà di Google Cloud.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Nella sezione Autopilot o Standard, fai clic su Configura.

  4. Configura il cluster in base alle tue esigenze.

  5. Nel menu di navigazione, fai clic su Networking.

  6. In Opzioni di rete avanzate, seleziona la casella di controllo Abilita reti autorizzate del piano di controllo.

  7. Deseleziona la casella di controllo Consenti accesso tramite indirizzi IP pubblici di Google Cloud per impedire l'accesso al piano di controllo dagli indirizzi IP di proprietà di Google Cloud.

  8. Fai clic su Aggiungi rete autorizzata.

  9. Inserisci un nome per la rete.

  10. In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al piano di controllo del cluster.

  11. Fai clic su Fine. Aggiungi altre reti autorizzate in base alle esigenze.

  12. Fai clic su Crea.

Aggiungi una rete autorizzata a un cluster esistente

Puoi aggiungere una rete autorizzata a un cluster esistente utilizzando gcloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster esistente.
  • CIDR1,CIDR2,...: un elenco delimitato da virgole dei valori CIDR per le reti autorizzate. Ad esempio, 8.8.8.8/32,8.8.8.0/24.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo, fai clic su Modifica reti autorizzate del piano di controllo.

  4. Seleziona la casella di controllo Abilita reti autorizzate piano di controllo.

  5. Fai clic su Aggiungi rete autorizzata.

  6. Inserisci un nome per la rete.

  7. In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al piano di controllo del cluster.

  8. Fai clic su Fine. Aggiungi altre reti autorizzate in base alle esigenze.

  9. Fai clic su Salva modifiche.

API

Specifica il campo desiredMasterAuthorizedNetworksConfig nella richiesta update del cluster. Nel campo, specifica un oggetto MasterAuthorizedNetworksConfig:

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Verificare una rete autorizzata

Puoi verificare una rete autorizzata in un cluster esistente utilizzando gcloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters describe CLUSTER_NAME

L'output è simile al seguente:

...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
...

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo vengono visualizzati i CIDR consentiti.

API

Invia una richiesta get. Cerca i blocchi CIDR sotto il campo masterAuthorizedNetworksConfig. Ad esempio:

"masterAuthorizedNetworksConfig": {
"enabled": true,
 "cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

Disattiva reti autorizzate

Puoi disabilitare le reti autorizzate per un cluster esistente utilizzando gcloud CLI o la console Google Cloud.

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
  --no-enable-master-authorized-networks

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo, fai clic su Modifica reti autorizzate del piano di controllo.

  4. Deseleziona la casella di controllo Abilita reti autorizzate piano di controllo.

  5. Fai clic su Salva modifiche.

Rimuovi le reti autorizzate

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo, fai clic su Modifica reti autorizzate del piano di controllo.

  4. Fai clic su Elimina.

  5. Fai clic su Salva modifiche.

Risoluzione dei problemi

Le seguenti sezioni spiegano come risolvere i problemi comuni relativi alle reti autorizzate.

Troppi blocchi CIDR

gcloud restituisce il seguente errore quando tenta di creare o aggiornare un cluster con più di 50 blocchi CIDR:

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

Per risolvere il problema, se il cluster è pubblico, assicurati di non specificare più di 50 blocchi CIDR. Se il cluster è privato, non specificare più di 100 blocchi CIDR.

Impossibile connettersi al server

I comandi kubectl scadono a causa di blocchi CIDR configurati in modo errato:

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

Quando crei o aggiorni un cluster, assicurati di specificare i blocchi CIDR corretti.

Passaggi successivi