Puoi assegnare indirizzi IP esterni statici alle istanze di macchine virtuali (VM). Puoi anche modificare, elencare e rilasciare indirizzi IP statici per le tue VM. Per prenotare un indirizzo IP esterno statico, consulta Prenotare un indirizzo IP esterno statico.
Gli indirizzi IP esterni possono essere statici o temporanei. Se una VM richiede un indirizzo IP esterno fisso che non cambia:
- Ottieni un indirizzo IP esterno statico. Puoi prenotare nuovi indirizzi IP esterni o promuovere indirizzi IP esterni temporanei esistenti.
- Assegna l'indirizzo IP riservato a una VM esistente o durante la creazione di una nuova VM.
Se hai bisogno di un indirizzo IP statico sulla tua rete Compute Engine interna, consulta Prenotare un indirizzo IP interno statico.
Prima di iniziare
- Ulteriori informazioni sugli indirizzi IP.
- Ulteriori informazioni su quote e limiti per indirizzi IP esterni statici.
- Scopri di più sui prezzi degli indirizzi IP esterni.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Terraform
Per utilizzare gli esempi Terraform in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare e gestire gli indirizzi IP statici, chiedi all'amministratore di concederti i seguenti ruoli IAM per il tuo progetto:
-
Per creare e aggiornare le VM:
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per configurare e gestire gli indirizzi IP statici. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per configurare e gestire gli indirizzi IP statici sono necessarie le seguenti autorizzazioni:
-
compute.instances.update
sull'istanza VM -
compute.instances.updateNetworkInterface
sull'istanza VM -
compute.instances.addAccessConfig
sull'istanza VM -
compute.instances.deleteAccessConfig
sull'istanza VM -
compute.networks.list
sulla rete -
compute.subnetworks.use
sulla subnet -
compute.subnetworks.list
sulla subnet -
Per creare delle VM:
compute.instances.create
sul progetto- Per utilizzare un'immagine personalizzata per creare la VM&:
compute.images.useReadOnly
nell'immagine - a utilizzare uno snapshot per creare la VM con i due punti
compute.snapshots.useReadOnly
nello snapshot - a utilizzare un modello di istanza per creare la VM&:
compute.instanceTemplates.useReadOnly
nel modello di istanza - ad assegnare una rete legacy alla VM e ai due punti
compute.networks.use
del progetto - Per specificare un indirizzo IP statico per la VM&:
compute.addresses.use
nel progetto - Per assegnare un indirizzo IP esterno alla VM quando si utilizza una rete legacy&due punti
compute.networks.useExternalIp
nel progetto - Per specificare una subnet per la VM&:
compute.subnetworks.use
nel progetto o nella subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC&;
compute.subnetworks.useExternalIp
nel progetto o nella subnet scelta - a impostare i metadati dell'istanza VM per VM&:
compute.instances.setMetadata
nel progetto - a impostare i tag per la VM con i due punti
compute.instances.setTags
sulla VM - a impostare le etichette per la VM con i due punti
compute.instances.setLabels
sulla VM - Per impostare un account di servizio affinché la VM utilizzi i due punti
compute.instances.setServiceAccount
sulla VM - a creare un nuovo disco per la VM&:
compute.disks.create
nel progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura&due punti,
compute.disks.use
sul disco - Per collegare un disco esistente in modalità di sola lettura&due punti
compute.disks.useReadOnly
sul disco
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
Solo una risorsa alla volta può utilizzare un indirizzo IP esterno statico.
Non è possibile verificare se un indirizzo IP è statico o temporaneo dopo che è stato assegnato a una risorsa. Puoi confrontare l'indirizzo IP con l'elenco di indirizzi IP esterni statici riservati al progetto. Utilizza il sottocomando
gcloud compute addresses list
per visualizzare un elenco di indirizzi IP esterni statici disponibili per il progetto.Ogni VM può avere più interfacce di rete e a ogni interfaccia possono essere assegnati i seguenti indirizzi IP:
- Un indirizzo IPv4 interno (obbligatorio)
- Un indirizzo IPv4 esterno
- Un intervallo di indirizzi IPv6
/96
, interno o esterno, non entrambi
Non puoi modificare il nome di un indirizzo IP statico.
Gli indirizzi IP esterni assegnati si trovano sullo stesso host fisico della VM e si trovano nella stessa regione della VM per tutti gli scopi, inclusi routing, latenza e prezzi. Ciò vale indipendentemente dalle informazioni di ricerca di geolocalizzazione internet.
Nota: le interfacce di rete possono ricevere traffico da più
regole di forwarding, che potrebbero gestire altri indirizzi IP esterni. Qualsiasi numero di indirizzi IP esterni può fare riferimento a un'interfaccia di rete tramite queste regole di forwarding, ma a ogni interfaccia di rete può essere assegnato un solo indirizzo IPv4 esterno e un intervallo di indirizzi IPv6 /96
esterno.
Per ulteriori informazioni sul bilanciamento del carico e sulle regole di forwarding, leggi la documentazione sul bilanciamento del carico.
Visualizza gli indirizzi IP esterni statici disponibili
Per elencare gli indirizzi IP esterni statici che hai prenotato per il tuo progetto, segui questi passaggi.
Console
Nella console Google Cloud, vai alla pagina Indirizzi IP.
Fai clic su Indirizzi IP esterni.
gcloud
Utilizza il comando gcloud compute addresses list
:
Per elencare tutti gli indirizzi IP, utilizza il seguente comando:
gcloud compute addresses list
Per elencare tutti gli indirizzi IP globali, utilizza il seguente comando:
gcloud compute addresses list --global
Per elencare tutti gli indirizzi IP a livello di regione in una determinata regione, utilizza il seguente comando:
gcloud compute addresses list \ --regions=REGION
Sostituisci
REGION
con la regione per cui vuoi elencare gli indirizzi. Puoi elencare gli indirizzi di più regioni specificando nomi di regioni separati da virgole:gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
API
Per elencare gli indirizzi IPv4 o IPv6 a livello di regione, chiama il metodo
addresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiestaREGION
: il nome della regione per questa richiesta
Per elencare tutti gli indirizzi in tutte le regioni, chiama il metodo
addresses.aggregatedList
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Per elencare gli indirizzi IPv4 o IPv6 globali, chiama il metodo
globalAddresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiesta
Configura indirizzi IP esterni statici
Le seguenti sezioni descrivono come configurare indirizzi IP esterni statici per le VM.
Crea una VM che utilizza un indirizzo IP esterno statico
Dopo aver prenotato un indirizzo IP esterno statico, puoi assegnarlo a una VM.
Console
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica i dettagli della VM.
Espandi la sezione Opzioni avanzate.
Espandi la sezione Networking.
Nella sezione Interfacce di rete, espandi un'interfaccia di rete per modificarla.
Per assegnare un indirizzo IPv4, segui questi passaggi:
- Seleziona una rete.
- Seleziona l'indirizzo IP dall'elenco Indirizzo IPv4 esterno.
Per assegnare un indirizzo IPv6, segui questi passaggi:
- Seleziona una rete contenente una subnet IPv6.
- Seleziona una subnet a doppio stack dall'elenco Subnet.
- Per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
- Seleziona l'indirizzo IPv6 esterno riservato appena prenotato dall'elenco Indirizzo IPv6 esterno. In alternativa, seleziona CREA INDIRIZZO IP e prenota un nuovo indirizzo IPv6 esterno statico.
- In Network Service Tiers, seleziona Premium.
Per completare la modifica dell'interfaccia di rete predefinita, fai clic su Fine.
Continua con il processo di creazione della VM.
gcloud
Puoi creare una VM e assegnare un indirizzo IP esterno a livello di regione statico che hai già prenotato.
Per assegnare un indirizzo IPv4 esterno statico:
gcloud compute instances create VM_NAME --address=IP_ADDRESS
Sostituisci quanto segue:
VM_NAME
: il nome della VM.IP_ADDRESS
: l'indirizzo IP da assegnare alla VM. Utilizza l'indirizzo IP esterno statico riservato, non il nome dell'indirizzo.
Per assegnare un indirizzo IPv6 esterno statico:
gcloud compute instances create VM_NAME \ --subnet=SUBNET \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUM \ --zone=ZONE
Terraform
Puoi utilizzare la risorsa google_compute_instance
per assegnare un indirizzo IP esterno.
REST
Per assegnare un indirizzo IPv4 esterno statico a una nuova VM:
Nella richiesta di creazione di una nuova VM, fornisci esplicitamente la proprietà networkInterfaces[].accessConfigs[].natIP
e l'indirizzo IPv4 esterno che vuoi utilizzare. Ad esempio:
{ "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "IPV4_ADDRESS" }], "network": "global/networks/default" }], "disks": [{ "autoDelete": "true", "boot": "true", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" } }] }
Per assegnare un indirizzo IPv6 esterno statico a una nuova VM:
Nella richiesta di creazione di una nuova VM, fornisci esplicitamente la proprietà networkInterfaces[].ipv6AccessConfigs[].externalIpv6
e l'indirizzo IPv6 esterno che vuoi utilizzare. Ad esempio:
{ "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "accessConfigs": [{ "name": "external-nat", "type": "ONE_TO_ONE_NAT" }], "ipv6AccessConfigs": [{ "externalIpv6": "IOV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "IPV4_IPV6", "subnetwork":"SUBNETWORK }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }
Modificare o assegnare un indirizzo IP esterno a una VM esistente
Puoi modificare o assegnare un indirizzo IP esterno, temporaneo o statico, a una VM esistente.
Una VM può avere più interfacce e ciascuna può avere un indirizzo IP esterno. Se la VM ha già un indirizzo IP esterno, devi prima rimuovere quell'indirizzo. Poi puoi assegnare un nuovo indirizzo IP esterno alla VM esistente.
Console
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Fai clic sul nome della VM a cui vuoi assegnare un IP esterno. Viene visualizzata la pagina Dettagli istanza.
Nella pagina Dettagli istanza, completa i seguenti passaggi:
- Fai clic su Modifica.
- Espandi Interfacce di rete.
- Seleziona l'indirizzo IP esterno richiesto da assegnare alla VM:
- Per Indirizzo IPv4 esterno, seleziona Temporaneo o un indirizzo IPv4 esterno statico.
- Per Indirizzo IPv6 esterno, seleziona Temporaneo o un indirizzo IPv6 esterno statico.
- Fai clic su Fine.
Fai clic su Salva.
gcloud
(Facoltativo) Prenota un indirizzo IP esterno statico.
Se vuoi assegnare un indirizzo IP esterno statico, devi prenotare un indirizzo e assicurarti che l'indirizzo non sia utilizzato da un'altra risorsa. Se necessario, segui le istruzioni per prenotare un nuovo indirizzo IP esterno statico o per annullare l'assegnazione di un indirizzo IP esterno statico.
Se intendi utilizzare un indirizzo IP esterno temporaneo, puoi saltare questo passaggio e Compute Engine assegna in modo casuale un indirizzo IP esterno temporaneo.
Rimuovi qualsiasi assegnazione di indirizzi IP esistente, come descritto in Annullare l'assegnazione di un indirizzo IP esterno statico.
Assegna il nuovo indirizzo IP esterno.
Per assegnare un indirizzo IPv4, utilizza il sottocomando
instances add-access-config
:Nota: non sostituireIP_ADDRESS
con il nome dell'indirizzo IP statico. Devi usare l'indirizzo IP effettivo.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Sostituisci quanto segue:
VM_NAME
: il nome della VM.ACCESS_CONFIG_NAME
: il nome per chiamare questa configurazione di accesso. Assicurati di inserire il nome completo tra virgolette.IP_ADDRESS
: l'indirizzo IP da aggiungere.
Se vuoi che Compute Engine assegni un indirizzo IP esterno temporaneo anziché utilizzare un indirizzo IP esterno statico, ometti la proprietà
--address IP_ADDRESS
:gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Per assegnare un intervallo di indirizzi IPv6, utilizza il sottocomando
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface==NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.NIC
: il nome dell'interfaccia di rete.IPV6_ADDRESS
: l'indirizzo IPv6 da assegnare alla VM. Specifica il primo indirizzo IPv6 nell'intervallo/96
.ZONE
: la zona della VM.
REST
Puoi modificare l'indirizzo IPv4 o IPv6 esterno di una VM aggiungendo una nuova configurazione di accesso per quella VM.
Rimuovi qualsiasi assegnazione di indirizzi IP esistente, come descritto in Annullare l'assegnazione di un indirizzo IP esterno statico.
Elimina la configurazione di accesso esistente inviando una richiesta
POST
al metodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Aggiungi una nuova configurazione di accesso all'interfaccia di rete della VM effettuando una richiesta
POST
al metodoinstances.addAccessConfig
.Per gli indirizzi IPv4, effettua la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Per gli indirizzi IPv6, aggiorna la proprietà
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
e l'indirizzo IPv6 esterno che vuoi utilizzare.Vedi Assegnare un indirizzo IP esterno statico a una nuova VM
Limita gli indirizzi IP esterni a VM specifiche
Per determinati carichi di lavoro, potresti avere requisiti essenziali che includono limitazioni di sicurezza e di rete. Ad esempio, potresti voler limitare gli indirizzi IP esterni in modo che possano essere utilizzati solo da VM specifiche. Questa opzione può aiutare a prevenire l'esfiltrazione di dati o a mantenere l'isolamento della rete. Utilizzando un criterio dell'organizzazione, puoi limitare gli indirizzi IP esterni a VM specifiche con vincoli per controllare l'utilizzo degli indirizzi IP esterni delle VM all'interno di un'organizzazione o di un progetto.
Il vincolo per controllare l'indirizzo IP esterno sulle VM è:
constraints/compute.vmExternalIpAccess
Per utilizzare il vincolo, devi specificare un criterio con un allowedList
di VM che
possono avere indirizzi IP esterni. Se non specifichi un criterio, tutti gli indirizzi IP esterni sono consentiti per tutte le VM. Se il criterio viene applicato, è possibile assegnare un indirizzo IP esterno (temporaneo o statico) solo alle VM elencate nell'elenco allowedValues
. Inoltre, alle altre VM di Compute Engine nell'organizzazione o nel progetto non esplicitamente definite nel criterio è vietato l'utilizzo di indirizzi IP esterni.
Le VM sono identificate nelle liste di autorizzazione e di negazione utilizzando l'URI della VM:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Specifiche per la limitazione degli indirizzi IP esterni
- Puoi applicare questo vincolo dell'elenco solo alle VM.
- Non puoi applicare il vincolo in modo retroattivo. Tutte le VM che hanno indirizzi IP esterni prima dell'abilitazione del criterio conservano gli indirizzi IP esterni.
- Questo vincolo accetta un
allowedList
o undeniedList
, ma non entrambi nello stesso criterio. - Spetta a te o a un amministratore con le autorizzazioni necessarie gestire e mantenere l'integrità e il ciclo di vita della VM. Il vincolo verifica solo l'URI della VM e non impedisce che le VM nella lista consentita vengano modificate, eliminate o ricreate.
Autorizzazioni necessarie per la limitazione degli indirizzi IP esterni
Per impostare un vincolo a livello di progetto o di organizzazione, devi aver ricevuto il ruolo orgpolicy.policyAdmin
nell'organizzazione.
Imposta il vincolo del criterio a livello di organizzazione
Console
- Vai alla pagina Criteri dell'organizzazione.
- Se necessario, seleziona l'organizzazione richiesta dal menu a discesa del progetto.
- Fai clic su Definisci IP esterni consentiti per le istanze VM.
- Fai clic su Modifica per modificare il criterio IP esterno. Se non riesci ad accedere allo strumento Modifica, non disponi delle autorizzazioni corrette.
Seleziona Personalizza per impostare il criterio dell'organizzazione per VM specifiche.
Seleziona le opzioni Applicazione delle norme e Tipo di criterio obbligatorie.
In Valori del criterio, seleziona Personalizzato.
Inserisci un URI per una VM e premi Invio. L'URI deve essere nel seguente formato:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Fai clic su Nuovo valore del criterio e inserisci gli URI delle VM in base alle tue esigenze.
Fai clic su Salva per applicare il vincolo.
gcloud
Per impostare un vincolo per l'accesso IP esterno, devi prima disporre dell'ID organizzazione. Per trovare l'ID organizzazione, esegui il comando organizations list
e cerca l'ID numerico nella risposta:
gcloud organizations list
Gcloud CLI restituisce un elenco di organizzazioni nel seguente formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Utilizza il comando gcloud resource-manager org-policies set-policy
per impostare il criterio. Devi fornire il criterio come file JSON.
Crea un file JSON nel seguente formato:
{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiesta, ad esempioexample-project
. Tieni presente che questa operazione è diversa dalla configurazione dei criteri dell'organizzazione, che richiedono l'ID numerico dell'organizzazione.ZONE
: la zona della VMVM_NAME
: il nome della VM
In alternativa, puoi specificare un elenco deniedValues
per indicare alle VM per cui vuoi vietare esplicitamente di avere un indirizzo IP esterno.
Qualsiasi VM non presente nell'elenco sarebbe implicitamente autorizzata ad avere un
indirizzo IP esterno. Puoi specificare solo allowedValues
o
deniedValues
, ma non entrambi.
Quindi, trasmetti il file con la tua richiesta:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Sostituisci ORGANIZATION_ID
con l'ID numerico dell'organizzazione.
Se non vuoi che nessuna VM abbia accesso IP esterno, puoi impostare un criterio con allValues
impostato su DENY
:
{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } }
REST
Utilizza l'API setOrgPolicy()
per definire il vincolo. Le VM nell'elenco allowedValue
da te specificato sono autorizzate ad avere indirizzi IP esterni. In alternativa, puoi specificare un elenco deniedValues
per indicare le VM a cui vuoi vietare esplicitamente di avere un indirizzo IP esterno. Qualsiasi VM non presente nell'elenco sarebbe implicitamente autorizzata ad avere un indirizzo IP esterno. Puoi
specificare solo allowedValues
o deniedValues
, ma non entrambi.
Ad esempio, di seguito è riportata una richiesta per applicare il vincolo compute.vmExternalIpAccess
a un'organizzazione in cui le VM di determinati progetti all'interno dell'organizzazione possono avere indirizzi IP esterni:
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
dove ORGANIZATION_ID
è l'ID numerico
dell'organizzazione.
Ora, nel corpo della richiesta, indica il criterio per questo vincolo:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME", "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
Se non vuoi che nessuna VM abbia accesso IP esterno, puoi impostare un criterio con allValues
impostato su DENY
:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
Imposta il criterio a livello di progetto
L'impostazione di un criterio a livello di progetto sostituisce il criterio a livello di organizzazione. Ad esempio, se a livello di organizzazione example-vm-1
è presente nell'elenco allowedValues
, ma il criterio a livello di progetto include la stessa VM nell'elenco deniedValues
, la VM non può avere un indirizzo IP esterno.
Console
Segui la stessa procedura documentata in Impostare un vincolo del criterio a livello di organizzazione, ma scegli il tuo progetto dal selettore di progetti anziché dall'organizzazione.
gcloud
Utilizza il comando gcloud resource-manager org-policies set-policy
per impostare il criterio. Devi fornire il criterio come file JSON. Crea un
file JSON nel seguente formato:
{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiesta, ad esempioexample-project
. Tieni presente che questa operazione è diversa dalla configurazione dei criteri dell'organizzazione, che richiedono l'ID numerico dell'organizzazione.ZONE
: la zona della VM.VM_NAME
: il nome della VM.
In alternativa, puoi specificare un elenco deniedValues
di VM per le quali
vuoi esplicitamente di vietare l'uso di un indirizzo IP esterno. Qualsiasi VM non presente nell'elenco potrebbe avere implicitamente un indirizzo IP esterno.
Puoi specificare solo allowedValues
o deniedValues
, ma non entrambi.
Quindi, trasmetti il file con la tua richiesta:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
Utilizza l'API setOrgPolicy
per definire il vincolo. Le VM nell'elenco allowedValue
specificato
sono autorizzate ad avere indirizzi IP esterni. In alternativa, puoi specificare un elenco deniedValues
per indicare le VM a cui vuoi vietare esplicitamente di avere un indirizzo IP esterno. A qualsiasi VM non presente nell'elenco
è implicitamente consentito avere un indirizzo IP esterno. Puoi specificare solo
allowedValues
o deniedValues
, ma non entrambi.
Ad esempio, di seguito è riportata una richiesta per impostare il vincolo compute.vmExternalIpAccess
su un progetto per consentire a VM specifiche di avere indirizzi IP esterni:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
Sostituisci PROJECT_ID
con l'ID progetto per questa richiesta.
Il corpo della richiesta contiene il criterio per questo vincolo:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
Best practice per la limitazione degli indirizzi IP esterni
Evita di utilizzare l'elenco
deniedValues
con questo vincolo. Se definisci valori nell'elencodeniedValues
, significa che solo le VM nell'elencodeniedValues
non possono utilizzare indirizzi IP esterni. Questo potrebbe rappresentare un rischio per la sicurezza se vuoi controllare esattamente quali VM possono avere indirizzi IP esterni. Se vuoi rimuovere determinate VM dall'elencoallowedValues
, aggiorna il criterio esistente per rimuovere le VM daallowedList
anziché inserirle nell'elencodeniedValues
a una gerarchia inferiore.Se vuoi impostare un criterio su gran parte della gerarchia delle risorse, ma escludere determinati progetti, ripristina il criterio predefinito utilizzando il metodo
setOrgPolicy
specificando l'oggettorestoreDefault
per consentire a tutte le VM nei progetti di essere associate a indirizzi IP esterni. L'impostazione predefinita non influisce sui criteri attuali per i progetti.Utilizza il criterio dell'organizzazione insieme ai ruoli IAM per controllare meglio il tuo ambiente. Questo criterio si applica solo alle VM, ma se vuoi controllare e limitare meglio gli indirizzi IP esterni sui dispositivi di rete, puoi concedere il ruolo
compute.networkAdmin
alle parti appropriate.Tutti i servizi e prodotti in esecuzione su Compute Engine all'interno dell'organizzazione o del progetto con il criterio abilitato sono soggetti a questo criterio dell'organizzazione. In particolare, servizi come Google Kubernetes Engine, Dataflow, Dataproc e Cloud SQL sono interessati da questo criterio. Se si tratta di un problema, Google consiglia di configurare altri servizi e prodotti in un progetto diverso a cui non è applicato il criterio dell'organizzazione e di utilizzare il VPC condiviso, se necessario.
Gestisci indirizzi IP esterni statici
Le seguenti sezioni descrivono come gestire gli indirizzi IP esterni statici per le VM.
Determinare se un indirizzo IP interno è temporaneo o statico
Gli indirizzi IP interni statici e temporanei si comportano e vengono visualizzati allo stesso modo nella maggior parte dei contesti. Tuttavia, con gli indirizzi IP interni statici, puoi utilizzare lo stesso indirizzo IP per la stessa risorsa anche se la elimini e ricrei. In generale, un indirizzo IP temporaneo viene rilasciato se arresti o elimini la risorsa.
Per determinare se un indirizzo è statico o temporaneo:
Nella console Google Cloud, vai alla pagina Indirizzi IP.
Trova l'indirizzo nell'elenco e verifica il tipo di indirizzo IP nella colonna Type (Tipo).
Annullare l'assegnazione di un indirizzo IP esterno statico
L'annullamento dell'assegnazione di un indirizzo IP ne comporta la rimozione dalla risorsa, ma l'indirizzo IP rimane riservato. Dopo l'annullamento dell'assegnazione dell'indirizzo IP, puoi riassegnarlo a un'altra risorsa.
Puoi anche annullare l'assegnazione dell'indirizzo IPv4 o IPv6 eliminando la VM.
Console
Nella console Google Cloud, vai alla pagina Indirizzi IP.
Fai clic su Indirizzi IP esterni.
Seleziona l'indirizzo IP statico di cui vuoi annullare l'assegnazione.
Fai clic su Cambia per aprire la finestra di dialogo Allega indirizzo IP.
Nell'elenco a discesa Allega a, seleziona Nessuno.
Fai clic su Ok.
gcloud
Controlla se è in uso un indirizzo IP statico utilizzando il comando
gcloud compute addresses list
:gcloud compute addresses list
L'output è simile al seguente:
NAME REGION ADDRESS STATUS example-address-ipv4 REGION 198.51.100.1 RESERVED example-address-new-ipv4 REGION 203.0.113.1 IN_USE example-address-ipv6 REGION 2001:db8:1:1:1:1:1:1 RESERVED example-address-new-ipv6 REGION 2001:db8:4:4:4:4:4:4 IN_USE
- Se l'indirizzo IP non è in uso, lo stato è
RESERVED
. - Se l'indirizzo IP è in uso, lo stato è
IN_USE
.
- Se l'indirizzo IP non è in uso, lo stato è
Recupera il nome della VM che utilizza l'indirizzo IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Sostituisci quanto segue:
ADDRESS_NAME
: il nome della risorsa indirizzo IPv6.REGION
: la regione della risorsa di indirizzo IPv6.
L'output è simile al seguente:
address: IP_ADDRESS addressType: EXTERNAL ... region: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/addresses/ADDRESS_NAME status: IN_USE subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET users: - https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME
Il campo
users
mostra il nome della VM che utilizza l'indirizzo IP.Annulla l'assegnazione dell'indirizzo IP alla VM.
Per annullare l'assegnazione di un indirizzo IPv4, elimina il file di configurazione dell'accesso della VM:
Recupera il nome della configurazione di accesso da eliminare. Per recuperarlo, utilizza il comando
gcloud compute instances describe
. SostituisciVM_NAME
con il nome della VM.gcloud compute instances describe VM_NAME
La configurazione dell'accesso viene visualizzata nel seguente formato:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
Elimina la configurazione dell'accesso utilizzando il comando
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Sostituisci quanto segue:
VM_NAME
: il nome della VM.ACCESS_CONFIG_NAME
: il nome della configurazione di accesso da eliminare. Ricorda di inserire il nome completo tra virgolette.
Per annullare l'assegnazione di un intervallo di indirizzi IPv6, utilizza il comando
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM che utilizza l'indirizzo IP.ZONE
: la zona della VM.
Controlla che il tuo indirizzo IP esterno statico sia ora disponibile e contrassegnato come
RESERVED
anzichéIN_USE
.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Sostituisci quanto segue:
ADDRESS_NAME
: il nome della risorsa dell'indirizzo IP.REGION
: la regione della risorsa indirizzo IP.
Ora che il tuo indirizzo IP esterno statico è disponibile, puoi scegliere di assegnarlo a un'altra VM.
REST
Per annullare l'assegnazione di un indirizzo IPv4 o IPv6 esterno statico, segui questi passaggi:
Per gli indirizzi IPv4, elimina la configurazione dell'accesso collegata alla VM che utilizza l'indirizzo.
Per controllare i dettagli di configurazione dell'accesso di una VM, effettua una richiesta
GET
al metodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Elimina la configurazione di accesso esistente inviando una richiesta
POST
al metodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiestaZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM
Per gli indirizzi IPv6, aggiorna il tipo di stack dell'interfaccia di rete per la VM a cui è collegato l'indirizzo IPv6.
Invia una richiesta
PATCH
al metodoinstances.updateNetworkInterface
.Nel corpo della richiesta, aggiorna il valore del campo
stackType
inIPV4_ONLY
.Ad esempio:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
Rilascia un indirizzo IP esterno statico
Se non hai più bisogno di un indirizzo IPv4 o IPv6 esterno statico, puoi rilasciare l'indirizzo IP eliminando la risorsa indirizzo IP. L'eliminazione di una VM non rilascia automaticamente un indirizzo IP esterno statico. Devi rilasciare manualmente gli indirizzi IP esterni statici quando non sono più necessari.
Per rilasciare un indirizzo IP esterno statico, consulta Rilasciare un indirizzo IP esterno statico nella documentazione di VPC.
Passaggi successivi
- Scopri di più sugli indirizzi IP.
- Scopri di più su reti e firewall.
- Scopri come gestire le VM utilizzando il DNS interno.
- Esamina i prezzi di VPC.