É possível atribuir endereços IP externos estáticos às instâncias de máquina virtual (VM). Também é possível alterar, listar e liberar endereços IP estáticos da sua VM. Os endereços IP externos podem ser estáticos ou temporários.
Se uma VM exigir um endereço IP externo fixo que não é alterado, faça o seguinte:
- Consiga um endereço IP externo estático. É possível reservar novos endereços IP externos ou promover endereços IP externos temporários já existentes.
- Atribua o endereço IP reservado a uma VM atual ou ao criar uma nova VM.
Se você precisa de um endereço IP estático na rede interna do Compute Engine, leia Como reservar um endereço interno estático.
Para informações sobre como reservar um endereço IP externo estático ou criar um endereço IP externo global, consulte Reservar um endereço IP externo estático.
Antes de começar
- Leia sobre endereços IP.
- Leia sobre cotas e limites de endereços IP externos estáticos.
- Leia sobre preços de endereço IP externo.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Para criar e atualizar VMs:
Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) -
compute.instances.update
na instância de VM -
compute.instances.updateNetworkInterface
na instância de VM -
compute.instances.addAccessConfig
na instância de VM -
compute.instances.deleteAccessConfig
na instância de VM -
compute.networks.list
na rede -
compute.subnetworks.use
na sub-rede -
compute.subnetworks.list
na sub-rede -
Para criar VMs:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Usar um snapshot para criar a VM:
compute.snapshots.useReadOnly
no snapshot - Usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Atribuir uma rede legada à VM:
compute.networks.use
no projeto - Especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Atribuir um endereço IP externo à VM ao usar uma rede legada:
compute.networks.useExternalIp
no projeto - Especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Atribuir um endereço IP externo à VM ao usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Definir tags para a VM:
compute.instances.setTags
na VM - Definir rótulos para a VM:
compute.instances.setLabels
na VM - Definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Criar um disco para a VM:
compute.disks.create
no projeto - Anexar um disco atual no modo somente leitura ou de leitura e gravação:
compute.disks.use
no disco - Anexar um disco atual no modo somente leitura:
compute.disks.useReadOnly
no disco
Apenas um recurso por vez usa um endereço IP externo estático.
Não há como verificar se um endereço IP é estático ou efêmero depois que ele é atribuído a um recurso. É possível comparar o endereço IP com a lista de endereços IP externos estáticos reservados para esse projeto. Use o subcomando
gcloud compute addresses list
para ver uma lista de endereços IP externos estáticos disponíveis para o projeto.Cada VM pode ter várias interfaces de rede e cada interface pode ter os seguintes endereços IP atribuídos:
- Um endereço IPv4 interno (obrigatório)
- Um endereço IPv4 externo
- Um intervalo de endereços IPv6
/96
, interno ou externo, mas não ambos
Não é possível alterar o nome de um endereço IP estático.
Os endereços IP externos atribuídos existem no mesmo host físico que a VM e existem na mesma região que a VM para todos os fins, incluindo roteamento, latência e preços. Isso ocorre independentemente das informações de pesquisa de geolocalização na Internet.
No console do Google Cloud, acesse a página Endereços IP.
Clique em Endereços IP externos.
Para listar todos os endereços IP, use o seguinte comando:
gcloud compute addresses list
Para listar todos os endereços IP globais, use o seguinte comando:
gcloud compute addresses list --global
Para listar todos os endereços IP regionais em uma determinada região, use o seguinte comando:
gcloud compute addresses list \ --regions=REGION
Substitua
REGION
pela região em que você quer listar os endereços. É possível listar endereços de várias regiões especificando nomes de regiões separados por vírgulas:gcloud compute addresses list \ --regions=REGION1,REGION2,..REGION_n_
Para listar endereços IPv4 ou IPv6 regionais, chame o método
addresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
Substitua:
PROJECT_ID
: o ID do projeto desta solicitaçãoREGION
: o nome da região para essa solicitação;
Para listar todos os endereços em todas as regiões, chame o método
addresses.aggregatedList
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses
Para listar endereços IPv4 ou IPv6 globais, chame o método
globalAddresses.list
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
Substitua:
PROJECT_ID
: o ID do projeto desta solicitaçãoNo console do Google Cloud, acesse a página Criar uma instância.
Especifique os detalhes da VM.
Expanda a seção Opções avançadas.
Expanda a seção Rede.
Na seção Interfaces de rede, expanda uma interface de rede para editá-la.
Para atribuir um endereço IPv4, faça o seguinte:
- Selecione uma rede.
- Selecione o endereço IP na lista Endereço IPv4 externo.
Para atribuir um endereço IPv6, faça o seguinte:
- Selecione uma rede que contenha uma sub-rede IPv6.
- Selecione uma sub-rede de pilha dupla na lista Sub-rede.
- Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Selecione o endereço IPv6 externo recém-reservado na lista Endereço IPv6 externo. Como alternativa, selecione CRIAR ENDEREÇO IP e reserve um novo endereço IPv6 externo estático.
- Em Nível de serviço de rede, selecione Premium.
Para concluir a modificação da interface de rede padrão, clique em Concluído.
Continue com o processo de criação da VM.
Para atribuir um endereço IPv4 externo estático, faça o seguinte:
gcloud compute instances create VM_NAME --address=IP_ADDRESS
Substitua:
VM_NAME
: o nome da VM.IP_ADDRESS
: o endereço IP a ser atribuído à instância. Use o endereço IP externo estático reservado, não o nome do endereço.
Para atribuir um endereço IPv6 externo estático, faça o seguinte:
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
- No console do Google Cloud, acesse a página Instâncias de VMs.
- Clique no nome da VM a que você quer atribuir um IP externo. A página de detalhes da instância é aberta.
Na página "Detalhes da instância", siga estas etapas:
- Clique em Editar.
- Abra Interfaces de rede.
- Selecione o endereço IP externo necessário para atribuir à VM:
- Em Endereço IPv4 externo, selecione Temporário ou um endereço IPv4 externo estático.
- Em Endereço IPv6 externo, selecione Temporário ou um endereço IPv6 externo estático.
- Clique em Concluído.
Clique em Salvar.
Opcional: reserve um endereço IP externo estático.
Para atribuir um endereço IP externo estático, reserve um endereço e verifique se ele não está em uso. Se necessário, siga as instruções para reservar um novo endereço IP externo estático ou para cancelar a atribuição de um endereço desse tipo.
Se você pretende usar um endereço IP externo temporário, pule esta etapa e um endereço IP externo temporário será atribuído aleatoriamente pelo Compute Engine.
Remova qualquer atribuição de endereço IP atual, conforme descrito em Cancelar atribuição de um endereço IP externo estático.
Atribua o novo endereço IP externo.
Para atribuir um endereço IPv4, use o subcomando
instances add-access-config
:Observação: não substituaIP_ADDRESS
pelo nome do IP estático. É necessário usar o endereço IP real.gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Substitua:
VM_NAME
: o nome da VM.ACCESS_CONFIG_NAME
: o nome a ser atribuído a essa configuração de acesso. Inclua o nome completo entre aspas.IP_ADDRESS
: o endereço IP a ser adicionado.
Se você quiser que o Compute Engine atribua um endereço IP externo temporário em vez de usar um endereço IP externo estático, omita a propriedade
--address IP_ADDRESS
:gcloud compute instances add-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Para atribuir um intervalo de endereços IPv6, use o subcomando
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
Substitua:
VM_NAME
: o nome da VM.NIC
: o nome da interface de redeIPV6_ADDRESS
: o endereço IPv6 que será atribuído à VM. Especifique o primeiro endereço IPv6 no intervalo/96
.ZONE
: a zona da VM.
Remova qualquer atribuição de endereço IP atual, conforme descrito em Cancelar atribuição de um endereço IP externo estático.
Exclua a configuração de acesso atual fazendo uma solicitação
POST
ao métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Adicione uma nova configuração de acesso à interface de rede da instância de VM fazendo uma solicitação
POST
ao métodoinstances.addAccessConfig
.Para endereços IPv4, faça a seguinte solicitação:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Para endereços IPv6, atualize a propriedade
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
e o endereço IPv6 externo que você quer usar.Consulte Atribuir um endereço IP externo estático a uma nova VM
- É possível aplicar essa restrição de lista apenas às VMs.
- Não é possível aplicar a restrição retroativamente. Todas as VMs que têm endereços IP externos antes da ativação da política mantêm os endereços IP externos.
- Essa restrição aceita uma
allowedList
ou umadeniedList
, mas não ambas na mesma política. - Cabe a você ou a um administrador com as permissões solicitadas gerenciar e manter o ciclo de vida e a integridade da VM. A restrição apenas verifica o URI da VM e não impede que as VMs na lista de permissões sejam alteradas, excluídas ou recriadas.
- Acesse a página Políticas da organização.
- Se necessário, selecione a organização no menu suspenso do projeto.
- Clique em Definir os IPs externos para instâncias de VM permitidas.
- Clique em Editar para editar a política de IP externo. Se não for possível acessar a ferramenta Editar, você não tem as permissões corretas.
Selecione Personalizar para definir a política da organização para VMs específicas.
Selecione as opções Aplicação da política e Tipo de política.
Em Valores da política, selecione Personalizada.
Insira um URI para uma instância de VM e pressione enter. O URI precisa estar no seguinte formato:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Clique em Novo valor de política e digite URIs para as VMs, conforme necessário.
Clique em Salvar para aplicar a restrição.
PROJECT_ID
: o ID do projeto para esta solicitação, comoexample-project
. Observe que isso é diferente de configurar políticas da organização, que exigem o ID numérico da organização.ZONE
: a zona da VMVM_NAME
: o nome da VMPROJECT_ID
: o ID do projeto para esta solicitação, comoexample-project
. Observe que isso é diferente de configurar políticas da organização, que exigem o ID numérico da organização.ZONE
: a zona da VM.VM_NAME
: o nome da VM.Evite usar a lista
deniedValues
com essa restrição. Se você definir valores na listadeniedValues
, significa que apenas as VM na listadeniedValues
estarão restritas de usar endereços IP externos. Essa pode ser uma preocupação de segurança se você quer controlar exatamente quais VMs podem ter endereços IP externos. Se você quiser remover determinadas VMs da listaallowedValues
, atualize a política atual para remover as VMs daallowedList
em vez de colocar as VMs na listadeniedValues
em uma hierarquia inferior.Se você quiser definir uma política em grande parte da hierarquia de recursos, mas excluir determinados projetos, restaure a política padrão usando a
setOrgPolicy
, especificando orestoreDefault
para permitir que todas as VMs nos projetos sejam associadas a endereços IP externos. As políticas atuais para projetos não são afetadas pela configuração padrão.Use a política da organização com os papéis do IAM para controlar melhor o ambiente. Essa política se aplica apenas a VMs, mas se você quiser controlar melhor e restringir endereços IP externo em dispositivos de rede, conceda o papel
compute.networkAdmin
às partes apropriadas.Todos os serviços e produtos em execução no Compute Engine na organização ou no projeto com a política ativada estão sujeitos a essa política organizacional. Especificamente, serviços como o Google Kubernetes Engine, Dataflow, Dataproc e Cloud SQL são afetados por essa política. Se isso é um problema, recomendamos configurar outros serviços e produtos em um projeto diferente sem a aplicação da política da organização. Se necessário, use a VPC compartilhada.
No console do Google Cloud, acesse a página Endereços IP.
Localize o endereço na lista e verifique o tipo de endereço IP na coluna Tipo.
No console do Google Cloud, acesse a página Endereços IP.
Clique em Endereços IP externos.
Selecione o endereço IP estático para o qual você quer cancelar a atribuição.
Clique em
Mostrar ações e selecione a opção Reatribuir a outro recurso.Na lista suspensa Anexar a, selecione Nenhuma.
Clique em OK.
Verifique se um endereço IP estático está em uso usando o comando
gcloud compute addresses list
:gcloud compute addresses list
O resultado será assim:
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 o endereço IP não estiver em uso, o status será
RESERVED
. - Se o endereço IP estiver em uso, o status será
IN_USE
.
- Se o endereço IP não estiver em uso, o status será
Recupere o nome da VM que está usando o endereço IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Substitua:
ADDRESS_NAME
: o nome do recurso de endereço IPv6.REGION
: a região do recurso de endereço IPv6.
O resultado será assim:
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
O campo
users
exibe o nome da VM que está usando o endereço IP.Cancele a atribuição do endereço IP da VM.
Para cancelar a atribuição de um endereço IPv4, exclua o arquivo de configuração de acesso da VM:
Encontre o nome da configuração de acesso a ser excluída. Para encontrar o nome, use o comando
gcloud compute instances describe
. SubstituaVM_NAME
pelo nome da VM.gcloud compute instances describe VM_NAME
A configuração de acesso aparece no formato a seguir:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
Exclua a configuração de acesso usando o comando
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config VM_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Substitua:
VM_NAME
: o nome da VM.ACCESS_CONFIG_NAME
: o nome da configuração de acesso a ser excluída. Inclua o nome completo entre aspas.
Para cancelar a atribuição de um intervalo de endereços IPv6, use o comando
instance network-interfaces update
:gcloud compute instances network-interfaces update VM_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Substitua:
VM_NAME
: o nome da VM que está usando o endereço IP.ZONE
: a zona da VM.
Verifique se o endereço IP externo estático está disponível e marcado como
RESERVED
vez deIN_USE
.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Substitua:
ADDRESS_NAME
: o nome do recurso de endereço IP.REGION
: a região do recurso de endereço IP.
Para endereços IPv4, exclua a configuração de acesso anexada à VM que está usando o endereço.
Para verificar os detalhes de configuração de acesso de uma VM, faça uma solicitação
GET
ao métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Exclua a configuração de acesso atual fazendo uma solicitação
POST
ao métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
Substitua:
PROJECT_ID
: o ID do projeto para essa solicitação.ZONE
: é a zona em que a VM está localizadaVM_NAME
: o nome da VM
Para endereços IPv6, atualize o tipo de pilha da interface de rede da VM em que o endereço IPv6 está anexado.
Faça uma solicitação
PATCH
ao métodoinstances.updateNetworkInterface
.No corpo da solicitação, atualize o valor do campo
stackType
paraIPV4_ONLY
.Exemplo:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
- Saiba mais sobre endereços IP.
- Saiba mais sobre redes e firewalls.
- Saiba como tratar VMs usando DNS interno.
- Revise os preços da VPC.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para receber as permissões necessárias a fim de configurar e gerenciar endereços IP estáticos, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos têm as permissões necessárias para configurar e gerenciar endereços IP estáticos. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para reservar e gerenciar endereços IP estáticos:
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Limitações
Observação: as interfaces de rede podem receber tráfego de várias regras de encaminhamento, que também disponibilizam outros endereços IP externos. Qualquer número de endereços IP externos pode se referir a uma interface de rede por meio dessas regras de encaminhamento, mas cada interface de rede pode receber apenas um endereço IPv4 externo e um intervalo de endereços IPv6
/96
externo.Para mais informações sobre balanceamento de carga e regras de encaminhamento, leia a documentação sobre o balanceamento de carga.
Conferir endereços IP externos estáticos disponíveis
Para listar endereços IP externos estáticos que você reservou para o projeto, siga as etapas a seguir.
Console
gcloud
Use o comando
gcloud compute addresses list
:API
Go
Java
Python
Configurar endereços IP externos estáticos
As seções a seguir descrevem como configurar endereços IP externos estáticos para suas VMs.
Criar uma VM que use um endereço IP externo estático
Depois de reservar um endereço IP externo estático, ele pode ser atribuído a uma VM.
Console
gcloud
Crie uma VM e atribua um endereço IP externo regional estático já reservado.
Terraform
Use o recurso
google_compute_instance
para atribuir um endereço IP externo.REST
Para atribuir um endereço IPv4 externo estático a uma nova VM, faça o seguinte:
Na solicitação para criar uma VM nova, informe explicitamente a propriedade
networkInterfaces[].accessConfigs[].natIP
e o endereço IPv4 externo que pretende usar. Exemplo:{ "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" } }] }
Para atribuir um endereço IPv6 externo estático a uma nova VM, faça o seguinte:
Na solicitação para criar uma VM nova, informe explicitamente a propriedade
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
e o endereço IPv6 externo que pretende usar. Exemplo:{ "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" }, }], }
Go
Java
Python
Alterar ou atribuir um endereço IP externo a uma VM
É possível alterar ou atribuir um endereço IP externo, temporário ou estático, a uma VM atual.
Uma VM pode ter várias interfaces e cada interface pode ter um endereço IP externo. Se a VM já tiver um endereço IP externo, será necessário remover esse endereço primeiro. Em seguida, atribua um novo endereço IP externo à VM.
Console
gcloud
REST
É possível alterar o endereço IPv4 ou IPv6 externo de uma VM adicionando uma nova configuração de acesso a ela.
Go
Java
Python
Restringir endereços IP externos a VMs específicas
Determinadas cargas de trabalho podem exigir requisitos essenciais que incluam restrições de segurança e rede. Por exemplo, é possível restringir os endereços IP externos para que somente VMs específicas possam usá-los. Essa opção pode ajudar a evitar a exfiltração de dados ou a manter o isolamento da rede. É possível usar uma política da organização para restringir endereços IP externos a instâncias de VM específicas com limitações para controlar o uso de endereços IP externos para suas VMs dentro de uma organização ou um projeto.
A restrição para controlar o endereço IP externo nas VMs é:
constraints/compute.vmExternalIpAccess
Para usar a restrição, especifique uma política com uma
allowedList
de VMs que podem ter endereços IP externos. Se você não especificar uma política, todos os endereços IP externos serão permitidos para todas as VMs. Quando a política estiver em vigor, somente as instâncias de VM relacionadas na listaallowedValues
poderão ser atribuídas a um endereço IP externo, instável ou estático. As instâncias de VM do Compute Engine que não forem definidas explicitamente na política não poderão usar endereços IP externos.As VMs são identificadas nas listas de permissão e negação usando o URI da instância:
projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Especificações para restringir endereços IP externos
Permissões necessárias para restringir endereços IP externos
Para definir uma restrição no nível do projeto ou da organização, você precisa ter recebido o papel
orgpolicy.policyAdmin
na organização.Definir a restrição de política no nível da organização
Console
gcloud
Para definir uma restrição de acesso de IP externo, você precisa saber o código da organização. Encontre o ID da organização executando o comando
organizations list
e procurando pelo ID numérico na resposta:gcloud organizations list
A CLI gcloud retorna uma lista de organizações no seguinte formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Use o comando
gcloud resource-manager org-policies set-policy
para definir a política. Será preciso fornecer a política como um arquivo JSON. Crie um arquivo JSON no seguinte 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" ] } }
Substitua:
Como alternativa, é possível especificar uma lista de
deniedValues
para expressar VMs proibidas explicitamente de ter um endereço IP externo. Qualquer VM que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificarallowedValues
oudeniedValues
, mas não ambos.Depois, passe o arquivo com sua solicitação :
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Substitua
ORGANIZATION_ID
pelo ID numérico da organização.Se você não quiser que nenhuma VM tenha acesso de IP externo, defina uma política com
allValues
definido comoDENY
:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } }
REST
Use a API
setOrgPolicy()
para definir a restrição. As VMs na listaallowedValue
especificada podem ter endereços IP externos. Como alternativa, é possível especificar uma lista dedeniedValues
para expressar instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer VM que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificarallowedValues
oudeniedValues
, mas não ambos.Por exemplo, a seguir há uma solicitação para aplicar a restrição
compute.vmExternalIpAccess
em uma organização em que as VMs de determinados projetos dentro da organização têm permissão para ter endereços IP externos:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
ORGANIZATION_ID
é o ID numérico da organização.No corpo da solicitação, forneça a política para essa restrição:
{ "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 você não quiser que nenhuma VM tenha acesso de IP externo, defina uma política com
allValues
definido comoDENY
:{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
Definir a política para envolvidos no projeto
A definição de uma política no nível do projeto substitui a política no nível da organização. Por exemplo, se o nível da organização tiver
example-vm-1
na listaallowedValues
, mas a política no projeto tiver a mesma VM na listadeniedValues
, a VM não será pode ter um endereço IP externo.Console
Siga o mesmo processo documentado em Definir a restrição de política no nível da organização, mas escolha o projeto no seletor de projetos, em vez da organização.
gcloud
Use o comando
gcloud resource-manager org-policies set-policy
para definir a política. Será preciso fornecer a política como um arquivo JSON. Crie um arquivo JSON no seguinte formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } }
Substitua:
Como alternativa, é possível especificar uma
deniedValues
de instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer VM que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificarallowedValues
oudeniedValues
, mas não ambos.Depois, passe o arquivo com sua solicitação :
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
Use a API
setOrgPolicy
para definir a restrição. As VMs na listaallowedValue
especificada podem ter endereços IP externos. Como alternativa, é possível especificar uma lista dedeniedValues
para expressar instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer VM que não esteja na lista está implicitamente autorizada a ter um endereço IP externo. É possível especificarallowedValues
oudeniedValues
, mas não ambos.Por exemplo, a seguir há uma solicitação para definir a restrição
compute.vmExternalIpAccess
em um projeto para permitir que instâncias de VM específicas tenham endereços IP externos:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy
Substitua
PROJECT_ID
pelo ID do projeto para esta solicitação.O corpo da solicitação contém a política para esta restrição:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME" ] } } }
Práticas recomendadas para restringir endereços IP externos
Gerenciar endereços IP externos estáticos
As seções a seguir descrevem como gerenciar endereços IP externos estáticos para suas VMs.
Determinar se um endereço IP interno é temporário ou estático
Os endereços IP internos estáticos e temporários se comportam e aparecem da mesma forma na maioria dos contextos. No entanto, com endereços IP internos estáticos, é possível usar o mesmo endereço IP para o mesmo recurso, mesmo que ele seja excluído e recriado. Em geral, um endereço IP temporário é liberado ao interromper ou excluir o recurso.
Para determinar se um endereço é estático ou temporário, faça o seguinte:
Cancelar a atribuição de um endereço IP externo estático
O cancelamento da atribuição de um endereço IP o remove do recurso, mas mantém o endereço reservado. Depois de cancelar a atribuição do endereço IP, você poderá reatribuir o endereço IP a outro recurso.
Também é possível cancelar a atribuição do endereço IPv4 ou IPv6 excluindo a VM.
Console
gcloud
Agora que o endereço IP externo estático está disponível, atribua-o a outra VM.
REST
Para cancelar a atribuição de um endereço IPv4 ou IPv6 estático, siga estas etapas:
Java
Python
Liberar um endereço IP externo estático
Se você não precisar mais de um endereço IPv4 ou IPv6 externo estático, libere o endereço IP excluindo o recurso de endereço IP. A exclusão de uma VM não libera automaticamente um endereço IP externo estático. Será necessário liberá-los manualmente se você não precisar mais deles.
Para liberar um endereço IP externo estático, consulte Liberar um endereço IP externo estático na documentação da VPC.
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.
-