Puoi abilitare qualsiasi istanza di macchina virtuale (VM) in modo che sia raggiungibile dalla rete esterna o da un'altra organizzazione, operazione nota come ingresso VM. Un carico di lavoro VM in un progetto dell'organizzazione può raggiungere la rete esterna o la VM corrente esposta ai servizi in altre organizzazioni, noto come uscita VM.
Puoi utilizzare VirtualMachineExternalAccess
(VMEA) per controllare insieme l'ingresso e l'uscita delle VM. Puoi trovare gli indirizzi IP in entrata e in uscita che hai abilitato per un'istanza VM nell'API VMM dell'appliance air-gapped Google Distributed Cloud (GDC)
o tramite la console GDC.
Prima di iniziare
Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud
, assicurati di aver scaricato, installato e configurato la CLI gdcloud
.
Tutti i comandi per l'appliance GDC air-gapped utilizzano la CLI gdcloud
o
kubectl
e richiedono un ambiente del sistema operativo (OS).
Recupera il percorso del file kubeconfig
Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:
Individua il nome del server dell'API Management o chiedi all'amministratore della piattaforma (PA) qual è il nome del server.
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso per sostituire
MANAGEMENT_API_SERVER{"</var>"}}
in queste istruzioni.
Richiedere autorizzazioni e accesso
Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore
macchina virtuale progetto. Segui i passaggi per verificare o chiedere all'amministratore IAM progetto di assegnarti il ruolo Amministratore VirtualMachine progetto (project-vm-admin
) nello spazio dei nomi del progetto in cui si trova la VM.
Per le operazioni sulle VM che utilizzano la console GDC o gcloud CLI,
chiedi all'amministratore IAM del progetto di assegnarti sia il ruolo
Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer
).
Configura l'accesso esterno alla VM
VirtualMachineExternalAccess
(VMEA) controlla l'ingresso e l'uscita delle VM.
VMEA non può controllare separatamente l'ingresso e l'uscita delle VM. L'ingresso e l'uscita
di una VM devono essere abilitati o disabilitati contemporaneamente.
Puoi configurare e controllare VMEA dall'interfaccia utente o dall'API VMM dell'appliance GDC air-gapped. Una VM può avere un solo VMEA. Se una VM non ha un VMEA, sia l'ingresso che l'uscita sono disattivati per impostazione predefinita.
Attiva l'accesso esterno
Per abilitare una VM con accesso esterno per il trasferimento dei dati in entrata e in uscita, puoi configurare VMEA dalla console GDC o dall'appliance GDC air-gapped API Virtual Machine Manager.
Per impostazione predefinita, il traffico di rete intraprogetto è consentito e puoi accedere direttamente alla tua VM all'interno del progetto. Una policy di rete blocca tutto il traffico in entrata alla VM dall'esterno del progetto. Devi creare manualmente un nuovo criterio di rete per consentire all'indirizzo IP di origine di accedere alla VM tramite il trasferimento dei dati in entrata. Questa policy di rete può essere una policy di rete per il traffico tra progetti o una policy di rete per il traffico tra organizzazioni. La posizione dipende da dove vuoi accedere alla VM.
Puoi attivare e disattivare l'accesso esterno di una VM specificando true
o
false
nel campo enabled
della specifica VMEA. Per l'ingresso VM, puoi
configurare il trasferimento dei dati nelle porte specificando il nome, il protocollo e il numero di porta
per ogni porta che vuoi aggiungere nel campo ports
della specifica VMEA.
Per abilitare l'accesso esterno di una VM creando un nuovo VMEA, completa i seguenti passaggi:
Console
- Durante la procedura di creazione della VM utilizzando la console, vai alla pagina Dettagli di rete dalla pagina Crea istanza VM.
- Individua Rete nel menu di navigazione verticale della pagina.
- Seleziona Consenti accesso esterno per attivare l'accesso esterno sulla VM.
API
Esegui questo comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineExternalAccess
metadata:
name: VM_NAME
spec:
enabled: true
ports:
- name: PORT_NAME
protocol: PROTOCOL
port: PORT_NUMBER
EOF
Sostituisci le seguenti variabili:
- MANAGEMENT_API_SERVER: il file kubeconfig del server API di gestione.
- VM_NAME: il nome della VM.
- PORT_NAME: il nome della porta.
- PROTOCOL: il protocollo che vuoi che utilizzi il servizio
di ingresso. Il nome del protocollo deve essere scritto in maiuscolo e deve essere un protocollo supportato da Kubernetes, ad esempio
TCP
,UDP
oSCTP
. - PORT_NUMBER: il numero di porta.
Per abilitare l'accesso esterno di una VM modificando un VMEA esistente tramite l'API VMM, esegui questo comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Disattivare l'accesso esterno
Se una VM non ha un VMEA corrispondente, sia l'ingresso che l'uscita sono
disattivati. Se una VM ha un VMEA corrispondente, puoi disattivarlo impostando il campo enabled
su false
o eliminando direttamente il VMEA. Puoi eseguire
queste operazioni tramite l'API VMM dell'appliance GDC air-gapped.
Per disattivare l'accesso esterno, completa i seguenti passaggi:
API
Disattiva l'accesso esterno eliminando un VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Sostituisci quanto segue:
- MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
- VM_NAME: il nome della VM.
- PROJECT: il progetto dell'appliance GDC air-gapped in cui si trova la VM.
Disattiva l'accesso esterno modificando un VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Aggiorna il campo enabled
su false
.
In entrata
Visualizzare gli indirizzi IP in entrata
Se una VM è abilitata con Ingress, dopo la creazione viene visualizzato un indirizzo IP Ingress nella console GDC. Puoi trovare questo indirizzo IP di ingresso nella pagina Dettagli VM della console GDC.
Per recuperare l'indirizzo IP, utilizza l'API VMM dell'appliance air-gapped GDC. Completa i seguenti passaggi:
API
Recupera l'indirizzo IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.ingressIP}'
Per una VM con un sistema operativo diverso, utilizza il comando ssh
per
accedere alla VM con l'indirizzo IP di ingresso con la porta che hai attivato con
TCP.
Modifica Ingress
Dopo aver abilitato VMEA per una VM, puoi personalizzare l'ingresso modificando
VMEA. Puoi modificare direttamente la specifica dell'ingresso VM dalla console GDC. Puoi anche utilizzare l'interfaccia a riga di comando kubectl
per modificare l'ingresso VM dalle specifiche di VMEA.
Per modificare il VMEA per personalizzare l'ingresso, completa i seguenti passaggi:
Ad esempio, utilizza i seguenti comandi per aggiungere la porta PORT_NUMBER a un ingresso VM esistente utilizzando il protocollo TCP:
Console
Modifica direttamente le porte nel servizio di ingresso VM dalla console GDC:
- Nel menu di navigazione verticale, fai clic su Istanze.
- Nella pagina, scorri fino a Dettagli della rete.
Fai clic sull'icona di modifica in Porte di ingresso per modificare la porta di ingresso.
API
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'
Sostituisci quanto segue:
- MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
- VM_NAME: il nome della VM.
- PROJECT: il progetto dell'appliance GDC air-gapped in cui si trova la VM.
- PORT_NAME: il nome della porta da aggiungere.
- PORT_NUMBER: il numero di porta.
Abilita Ingress con protocollo non TCP
L'appliance air-gap GDC consente di abilitare l'ingresso della VM con protocolli diversi. Per impostazione predefinita, un servizio di ingresso VM utilizza il protocollo TCP. Puoi aggiungere il tuo ingresso del protocollo non TCP per la tua VM. L'appliance GDC air-gapped supporta i seguenti protocolli:
- Transmission Control Protocol (TCP).
- User Datagram Protocol (UDP).
- Stream Control Transmission Protocol (SCTP).
Puoi abilitare il trasferimento dei dati in entrata con un protocollo non TCP specificando nomi di protocollo diversi durante la creazione di VMEA.
In uscita
Un workload VM in un progetto dell'organizzazione può raggiungere la rete esterna o essere esposto a servizi in altre organizzazioni. Se attivi il trasferimento dei dati in uscita per la VM, viene generato un indirizzo IP di uscita. La VM si connette ai servizi esterni con questo indirizzo IP.
Per eseguire il trasferimento dei dati in uscita da questo indirizzo IP dalla rete esterna, potresti dover applicare criteri di rete del progetto. Per ulteriori informazioni, consulta le norme di rete per il traffico in uscita tra organizzazioni.
Visualizzare l'indirizzo IP di uscita
Se una VM è abilitata con Egress, un indirizzo IP di uscita viene visualizzato nella console GDC dopo la creazione. Puoi trovare questo indirizzo IP di uscita anche nella pagina Dettagli VM.
Per visualizzare l'indirizzo IP di uscita:
API
Recupera l'indirizzo IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.egressIP}'
Sostituisci quanto segue:
- MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
- VM_NAME: il nome della VM.
- PROJECT: il progetto dell'appliance GDC air-gapped in cui si trova la VM.
Il traffico in uscita della VM si basa su un progetto. Le VM all'interno dello stesso progetto contengono lo stesso indirizzo IP in uscita.
Controllo del traffico in uscita
Nelle versioni precedenti dell'appliance air-gap GDC, era necessario riavviare la VM per riflettere le modifiche all'uscita di una VM in esecuzione. Nella versione 1.11, puoi attivare e disattivare l'uscita della VM senza riavviarla. Questa modifica ha effetto subito dopo l'aggiornamento del VMEA.