Pode atribuir endereços IP externos estáticos à sua máquina virtual (VM) e instâncias bare metal. Também pode alterar, listar e libertar endereços IP estáticos para as suas instâncias. Para reservar um endereço IP externo estático, consulte o artigo Reserve um endereço IP externo estático.
Os endereços IP externos podem ser estáticos ou efémeros. Se uma instância precisar de um endereço IP externo fixo que não se altere, faça o seguinte:
- Obtenha um endereço IP externo estático. Pode reservar novos endereços IP externos ou promover endereços IP externos efémeros existentes.
- Atribua o endereço IP reservado a uma instância existente ou atribua-o quando criar uma nova instância.
Se precisar de um endereço IP estático na sua rede interna do Compute Engine, consulte o artigo Reserve um endereço IP interno estático.
Para obter informações sobre como reservar um endereço IP externo estático ou criar um endereço IP externo global, consulte o artigo Reserve um endereço IP externo estático.
Antes de começar
- Leia acerca dos endereços IP.
- Leia acerca das quotas e dos limites para endereços IP externos estáticos.
- Leia acerca dos preços dos endereços IP externos.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Terraform
Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Funções necessárias
Para receber as autorizações de que precisa para configurar e gerir endereços IP estáticos, peça ao seu administrador para lhe conceder as seguintes funções da IAM no seu projeto:
-
Para criar e atualizar instâncias:
Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para configurar e gerir endereços IP estáticos. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para configurar e gerir endereços IP estáticos:
-
compute.instances.update
na instância -
compute.instances.updateNetworkInterface
na instância -
compute.instances.addAccessConfig
na instância -
compute.instances.deleteAccessConfig
na instância -
compute.networks.list
na rede -
compute.subnetworks.use
na sub-rede -
compute.subnetworks.list
na sub-rede -
Para criar instâncias:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnly
no instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.use
no projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIp
no projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir etiquetas para a VM:
compute.instances.setTags
na VM - Para definir etiquetas para a VM:
compute.instances.setLabels
na VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Para criar um novo disco para a VM:
compute.disks.create
no projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.use
no disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnly
no disco
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Limitações
Apenas um recurso de cada vez pode usar um endereço IP externo estático.
Não existe forma de verificar se um endereço IP é estático ou efémero depois de ter sido atribuído a um recurso. Pode 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 de acordo com o respetivo tipo de pilha:
- Interfaces apenas IPv4:
- Um endereço IPv4 interno (obrigatório)
- Um endereço IPv4 externo (opcional)
- Interfaces de pilha dupla (IPv4 e IPv6):
- Um endereço IPv4 interno (obrigatório)
- Um endereço IPv4 externo (opcional)
- Um intervalo de endereços IPv6, interno ou externo, mas não ambos (obrigatório)
/96
- Interfaces apenas IPv6:
- Um intervalo de endereços IPv6, interno ou externo, mas não ambos (obrigatório)
/96
- Um intervalo de endereços IPv6, interno ou externo, mas não ambos (obrigatório)
- Interfaces apenas IPv4:
Não pode anular a atribuição nem alterar o endereço IPv6 externo de uma VM com uma interface de rede apenas IPv6. No entanto, pode promover um endereço IP externo efémero de um recurso para um endereço IP externo estático, para que o endereço permaneça reservado mesmo após a eliminação do recurso.
Não pode alterar o nome de um endereço IP estático.
Nota: as interfaces de rede podem receber tráfego de várias regras de encaminhamento, que podem publicar outros endereços IP externos. Qualquer número de endereços IP externos pode fazer referência a uma interface de rede através destas regras de encaminhamento, mas só pode ser atribuído um endereço IPv4 externo e um intervalo de endereços IPv6 externos a cada interface de rede.
/96
Para mais informações sobre o balanceamento de carga e as regras de encaminhamento, leia a documentação sobre o balanceamento de carga.
Veja os endereços IP externos estáticos disponíveis
Para listar os endereços IP externos estáticos que reservou para o seu projeto, siga estes passos.
Consola
Na Google Cloud consola, aceda à página Endereços IP.
Clique em Endereços IP externos.
gcloud
Use o comando
gcloud compute addresses list
:Para apresentar uma lista de todos os endereços IP, use o seguinte comando:
gcloud compute addresses list
Para apresentar uma lista de todos os endereços IP globais, use o seguinte comando:
gcloud compute addresses list --global
Para apresentar uma lista de todos os endereços IP regionais numa determinada região, use o seguinte comando:
gcloud compute addresses list \ --regions=REGION
Substitua
REGION
pela região para a qual quer apresentar uma lista de moradas. Pode 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_
API
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 o seguinte:
PROJECT_ID
: o ID do projeto para este pedidoREGION
: o nome da região para este pedido
Para apresentar uma lista de todas as moradas 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 o seguinte:
PROJECT_ID
: o ID do projeto para este pedido
Go
Java
Python
Configure endereços IP externos estáticos
As secções seguintes descrevem como configurar endereços IP externos estáticos para as suas instâncias.
Crie uma instância que use um endereço IP externo estático
Depois de reservar um endereço IP externo estático, pode atribuí-lo a uma instância.
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
Para atribuir um endereço IP externo estático à instância, faça o seguinte:
No menu de navegação, clique em Rede.
Na secção Interfaces de rede, especifique as interfaces de rede que quer para a instância através das seguintes opções:
Para adicionar uma interface de rede, clique em Adicionar uma interface de rede. Em seguida, na lista Rede, selecione uma rede.
Para eliminar uma interface de rede, clique em
Eliminar.
Selecione uma das seguintes opções:
Para atribuir um endereço IPv4 externo estático, faça o seguinte:
- Expanda uma interface de rede.
- Selecione o endereço IP na lista Endereço IPv4 externo.
Para atribuir um endereço IPv6 externo estático, faça o seguinte:
- Expanda uma interface de rede que contenha uma sub-rede com um intervalo de endereços IPv6 externos.
- Selecione essa sub-rede na lista Sub-rede.
- Para Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla) ou IPv6 (pilha única).
- Selecione o endereço IPv6 externo reservado recentemente na lista Endereço IPv6 externo. Em alternativa, selecione Reservar endereço IPv6 externo estático e reserve um novo endereço IPv6 externo estático.
- Para o Nível de serviço de rede, selecione Premium.
Para terminar a modificação da interface de rede, clique em Concluído.
Continue com o processo de criação da instância.
gcloud
Pode criar uma instância e atribuir-lhe um endereço IP externo regional estático que já reservou.
Para atribuir um endereço IPv4 externo estático, faça o seguinte:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --address=IPV4_ADDRESS
Para atribuir um endereço IPv6 externo estático, faça o seguinte:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --subnet=SUBNET \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier=PREMIUM
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância do Compute.ZONE
: a zona na qual criar a instânciaIPV4_ADDRESS
: o endereço IPv4 a atribuir à instância. Use o endereço IP externo estático reservado, não o nome do endereço.SUBNET
: uma sub-rede que contém endereços IPv6 externosSTACK_TYPE
: o tipo de pilha para a instância,IPV4_IPV6
(dupla pilha) ouIPV6_ONLY
IPV6_ADDRESS
: o endereço IPv6 a atribuir à instância. Use o endereço IP externo estático reservado, não o nome do endereço.
Terraform
Pode usar 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 instância de computação, faça o seguinte:
No seu pedido para criar uma nova instância, indique explicitamente a propriedade
networkInterfaces[].accessConfigs[].natIP
e o endereço IPv4 externo que quer usar, por exemplo:{ "name": "INSTANCE_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" } }] }
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância de computaçãoZONE
: a zona na qual criar a instânciaMACHINE_TYPE
: Opcional: um URL completo ou parcial do recurso de tipo de máquina a usar quando criar a instância, no formato:zones/ZONE/machineTypes/MACHINE_TYPE
IPV4_ADDRESS
: o endereço IPv4 a atribuir à instância. Use o endereço IP externo estático reservado, não o nome do endereço.SOURCE_IMAGE
: uma versão específica de uma imagem pública, comoprojects/debian-cloud/global/images/debian-10-buster-v20200309
ou uma família de imagens, comoprojects/debian-cloud/global/images/family/debian-10
Para atribuir um endereço IPv6 externo estático a uma nova instância, faça o seguinte:
No seu pedido para criar uma nova instância, forneça explicitamente a propriedade
networkInterfaces[].ipv6AccessConfigs[].externalIpv6
e o endereço IPv6 externo que quer usar, por exemplo:{ "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "networkInterfaces": [{ "ipv6AccessConfigs": [{ "externalIpv6": "IPV6_ADDRESS", "externalIpv6PrefixLength": 96, "name": "external-ipv6-access-config", "networkTier": "PREMIUM", "type": "DIRECT_IPV6" }], "stackType": "STACK_TYPE", "subnetwork":"SUBNETWORK" }], "disks": [{ "autoDelete": "true", "boot": "true", "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, }], }
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância de computaçãoZONE
: a zona na qual criar a instânciaMACHINE_TYPE
: Opcional: um URL completo ou parcial do recurso de tipo de máquina a usar quando criar a instância, no formato:zones/ZONE/machineTypes/MACHINE_TYPE
IPV6_ADDRESS
: o endereço IPv6 a atribuir à instância. Use o endereço IP externo estático reservado, não o nome do endereço.STACK_TYPE
: o tipo de pilha para a instância,IPV4_IPV6
(dupla pilha) ouIPV6_ONLY
SUBNET
: uma sub-rede que contém endereços IPv6 externosSOURCE_IMAGE
: uma versão específica de uma imagem pública, como"projects/debian-cloud/global/images/debian-10-buster-v20200309"
ou uma família de imagens, como"projects/debian-cloud/global/images/family/debian-10"
Go
Java
Python
Altere ou atribua um endereço IP externo a uma instância existente
Pode alterar ou atribuir um endereço IP externo, quer seja efémero ou estático, a uma instância existente apenas IPv4 ou de pilha dupla. Este procedimento não é suportado para instâncias apenas IPv6.
Uma instância de computação pode ter várias interfaces. Uma interface de pilha única pode ter um endereço IP externo. Uma interface de pilha dupla pode ter um endereço IPv4 externo e um endereço IPv6 externo. Se a instância já tiver um endereço IP externo, tem de remover esse endereço primeiro. Em seguida, pode atribuir um novo endereço IP externo à instância existente.
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique no nome da instância à qual quer atribuir um IP externo. É apresentada a página Detalhes da instância.
Na página Detalhes da instância, conclua os seguintes passos:
- Clique em Edit.
- Expanda Interfaces de rede.
- Selecione o endereço IP externo necessário para atribuir à instância.
Se a instância for apenas IPv4 e quiser atribuir um endereço IPv6,
primeiro, tem de alterar o tipo de pilha para pilha dupla.
- Para Endereço IPv4 externo, selecione Efémero ou um endereço IPv4 externo estático.
- Para o endereço IPv6 externo, selecione Efémero (automático), Efémero (personalizado) ou um endereço IPv6 externo estático.
- Clique em Concluído.
Clique em Guardar.
gcloud
Opcional: reserve um endereço IP externo estático.
Se quiser atribuir um endereço IP externo estático, tem de reservar um endereço e certificar-se de que o endereço não está a ser usado por outro recurso. Se necessário, siga as instruções para reservar um novo endereço IP externo estático ou para anular a atribuição de um endereço IP externo estático.
Se pretender usar um endereço IP externo efémero, pode ignorar este passo e o Compute Engine atribui aleatoriamente um endereço IP externo efémero.
Remova qualquer atribuição de endereço IP existente, conforme descrito no artigo Desatribua 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
:Nota: não substituaIP_ADDRESS
pelo nome do endereço IP estático. Tem de usar o endereço IP real.gcloud compute instances add-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.ACCESS_CONFIG_NAME
: o nome a atribuir a esta configuração de acesso. Certifique-se de que inclui o nome completo entre aspas.IP_ADDRESS
: o endereço IP a adicionar.
Se quiser que o Compute Engine atribua um endereço IP externo efémero em vez de usar um endereço IP externo estático, omita a propriedade
--address IP_ADDRESS
:gcloud compute instances add-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Para alterar uma instância para pilha dupla e atribuir-lhe um endereço IPv6, use o subcomando
instance network-interfaces update
:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=NIC \ --ipv6-network-tier=PREMIUM \ --stack-type=STACK_TYPE \ --external-ipv6-address=IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.NIC
: o nome da interface de rede.STACK_TYPE
: o tipo de pilha para a instância, que tem de serIPV4_IPV6
. Não pode alterar o tipo de pilha para IPV6_ONLY.IPV6_ADDRESS
: o endereço IPv6 a atribuir à instância. Especifique o primeiro endereço IPv6 no intervalo/96
.ZONE
: a zona da instância.
REST
Pode alterar o endereço IPv4 ou IPv6 externo de uma instância adicionando uma nova configuração de acesso para essa instância.
Remova qualquer atribuição de endereço IP existente, conforme descrito no artigo Desatribua um endereço IP externo estático.
Elimine a configuração de acesso existente fazendo um pedido
POST
ao métodoinstances.deleteAccessConfig
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Adicione uma nova configuração de acesso à interface de rede da instância enviando um pedido
POST
ao métodoinstances.addAccessConfig
.Para endereços IPv4, faça o seguinte pedido:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig { "natIP": "IPV4_ADDRESS", "name": "ACCESS_CONFIG_NAME" }
Para endereços IPv6, atualize o
stackType
da interface de rede paraIPV4_IPV6
e atualize a propriedadenetworkInterfaces[].ipv6AccessConfigs[].externalIpv6
e o endereço IPv6 externo que quer usar.Para mais informações, consulte o artigo Atribua um endereço IP externo estático a uma nova instância.
Go
Java
Python
Restrinja endereços IP externos a instâncias específicas
Para determinadas cargas de trabalho, pode ter requisitos essenciais que incluem restrições de segurança e de rede. Por exemplo, pode querer restringir endereços IP externos para que apenas instâncias de computação específicas os possam usar. Esta opção pode ajudar a evitar a exfiltração de dados ou a manter o isolamento da rede. Através de uma política da organização, pode restringir endereços IP externos a instâncias específicas com restrições para controlar a utilização de endereços IP externos para as suas instâncias numa organização ou num projeto.
A restrição para controlar o endereço IP externo nas instâncias é:
constraints/compute.vmExternalIpAccess
Para usar a restrição, especifica uma política com um
allowedList
de instâncias que podem ter endereços IP externos. Se não especificar uma política, todos os endereços IP externos são permitidos para todas as instâncias. Quando a política está em vigor, apenas as instâncias listadas na listaallowedValues
podem ser atribuídas a um endereço IP externo, quer seja efémero ou estático, e outras instâncias do Compute Engine na organização ou no projeto que não estão explicitamente definidas na política estão proibidas de usar endereços IP externos.As instâncias são identificadas nas listas de permissões e negações através do URI da instância:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Especificações para restringir endereços IP externos
- Só pode aplicar esta restrição de lista a instâncias.
- Não pode aplicar a restrição retroativamente. Todas as instâncias que tenham endereços IP externos antes de ativar a política mantêm os respetivos endereços IP externos.
- Esta restrição aceita um
allowedList
ou umdeniedList
, mas não ambos na mesma política. - É da sua responsabilidade ou da responsabilidade de um administrador com as autorizações necessárias gerir e manter o ciclo de vida e a integridade da instância. A restrição apenas valida o URI da instância e não impede que as instâncias na lista de autorizações sejam alteradas, eliminadas ou recriadas.
Autorizações necessárias para restringir endereços IP externos
Para definir uma restrição ao nível do projeto ou da organização, tem de lhe ter sido atribuída a função
orgpolicy.policyAdmin
na organização.Defina a restrição de política ao nível da organização
Consola
- Aceda à página Políticas organizacionais.
- Se necessário, selecione a organização necessária no menu pendente do projeto.
- Clique em Defina IPs externos permitidos para instâncias de VM.
- Clique em Editar para editar a política de IP externo. Se não conseguir aceder à ferramenta Editar, não tem as autorizações corretas.
Selecione Personalizar para definir a política da organização para instâncias específicas.
Selecione a Aplicação de políticas e o Tipo de política necessários.
Para Valores da política, selecione Personalizado.
Introduza um URI para uma instância. O URI tem de estar no seguinte formato:
projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Clique em Novo valor da política e introduza os URIs para instâncias, conforme necessário.
Clique em Guardar para aplicar a restrição.
gcloud
Para definir uma restrição para o acesso de IP externo, primeiro precisa do ID da sua organização. Pode encontrar o ID da organização executando o comando
organizations list
e procurando o ID numérico na resposta:gcloud organizations list
A CLI gcloud devolve 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. Tem de fornecer a sua política como um ficheiro JSON. Crie um ficheiro JSON no seguinte formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para este pedido, comoexample-project
. Tenha em atenção que isto é diferente da configuração das políticas da organização, que requerem o ID numérico da organização.ZONE
: a zona da instânciaINSTANCE_NAME
: o nome da instância
Em alternativa, pode especificar uma lista
deniedValues
para indicar instâncias que quer explicitamente proibir de ter um endereço IP externo. Qualquer instância que não esteja na lista tem implicitamente permissão para ter um endereço IP externo. Só pode especificarallowedValues
oudeniedValues
, mas não ambos.Em seguida, transmita o ficheiro com o seu pedido:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --organization=ORGANIZATION_ID
Substitua
ORGANIZATION_ID
pelo ID numérico da organização.Se não quiser que nenhuma instância tenha acesso a IP externo, pode definir 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 instâncias na listaallowedValue
que especificar podem ter endereços IP externos. Em alternativa, pode especificar uma lista dedeniedValues
para expressar instâncias que quer proibir explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista tem implicitamente autorização para ter um endereço IP externo. Só pode especificarallowedValues
oudeniedValues
, mas não ambos.Por exemplo, o seguinte é um pedido para aplicar a restrição
compute.vmExternalIpAccess
a uma organização onde as instâncias de determinados projetos na organização podem ter endereços IP externos:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy
onde
ORGANIZATION_ID
é o ID numérico da organização.Agora, no corpo do pedido, indique a política para esta restrição:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME", "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } } }
Se não quiser que nenhuma instância tenha acesso a IP externo, pode definir uma política com
allValues
definido comoDENY
:{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allValues": "DENY" } } }
Defina a política ao nível do projeto
A definição de uma política ao nível do projeto substitui a política ao nível da organização. Por exemplo, se o nível da organização tiver
example-vm-1
na listaallowedValues
, mas a política ao nível do projeto tiver a mesma instância na listadeniedValues
, a instância não pode ter um endereço IP externo.Consola
Siga o mesmo processo documentado em Defina uma restrição de política ao nível da organização, mas escolha o seu 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. Tem de fornecer a sua política como um ficheiro JSON. Crie um ficheiro JSON no seguinte formato:{ "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para este pedido, comoexample-project
. Tenha em atenção que isto é diferente da configuração das políticas da organização, que requerem o ID numérico da organização.ZONE
: a zona da instância.INSTANCE_NAME
: o nome da instância.
Em alternativa, pode especificar uma
deniedValues
lista de instâncias que quer proibir explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista tem implicitamente permissão para ter um endereço IP externo. Só pode especificarallowedValues
oudeniedValues
, mas não ambos.Em seguida, transmita o ficheiro com o seu pedido:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=example-project
REST
Use a API
setOrgPolicy
para definir a restrição. As instâncias na listaallowedValue
que especificar podem ter endereços IP externos. Em alternativa, pode especificar uma listadeniedValues
para expressar instâncias que quer explicitamente proibir de ter um endereço IP externo. Qualquer instância que não esteja na lista tem implicitamente permissão para ter um endereço IP externo. Pode especificar apenasallowedValues
oudeniedValues
, mas não ambos.Por exemplo, o seguinte é um pedido para definir a restrição
compute.vmExternalIpAccess
num projeto para permitir que instâncias 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 este pedido.O corpo do pedido contém a política para esta restrição:
{ "policy": { "constraint": "constraints/compute.vmExternalIpAccess", "listPolicy": { "allowedValues": [ "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME" ] } } }
Práticas recomendadas para restringir endereços IP externos
Evite usar a lista
deniedValues
com esta restrição. Se definir valores na listadeniedValues
, significa que apenas as instâncias na listadeniedValues
estão restritas de usar endereços IP externos. Isto pode ser um problema de segurança se quiser controlar exatamente que instâncias podem ter endereços IP externos. Se quiser remover determinadas instâncias da listaallowedValues
, atualize a política existente para remover as instâncias da listaallowedList
, em vez de colocar as instâncias na listadeniedValues
numa hierarquia inferior.Se quiser definir uma política numa grande parte da hierarquia de recursos, mas isentar determinados projetos, restaure a política predefinida através do método
setOrgPolicy
, especificando o objetorestoreDefault
para permitir que todas as instâncias nos projetos sejam associadas a endereços IP externos. As políticas atuais para projetos não são afetadas pela predefinição.Use a política da organização juntamente com as funções IAM para controlar melhor o seu ambiente. Esta política aplica-se apenas a instâncias, mas se quiser controlar e restringir melhor os endereços IP externos em dispositivos de rede, pode conceder a função
compute.networkAdmin
às partes adequadas.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 esta política organizacional. Especificamente, os serviços como o Google Kubernetes Engine, o Dataflow, o Dataproc e o Cloud SQL são afetados por esta política. Se isto for um problema, a Google recomenda que configure outros serviços e produtos num projeto diferente que não tenha a política da organização aplicada e use a VPC partilhada, se necessário.
Faça a gestão de endereços IP externos estáticos
As secções seguintes descrevem como gerir endereços IP externos estáticos para as suas instâncias.
Determine se um endereço IP interno é efémero ou estático
Os endereços IP internos estáticos e efémeros comportam-se e aparecem da mesma forma na maioria dos contextos. No entanto, com endereços IP internos estáticos, pode usar o mesmo endereço IP para o mesmo recurso, mesmo que elimine e recrie o recurso. Em geral, um endereço IP efémero é libertado se parar ou eliminar o recurso.
Para determinar se um endereço é estático ou efémero, faça o seguinte:
Na Google Cloud consola, aceda à página Endereços IP.
Encontre o endereço na lista e verifique a coluna Tipo para saber o tipo de endereço IP.
Anule a atribuição de um endereço IP externo estático
A anulação da atribuição de um endereço IP remove-o do recurso, mas mantém o endereço IP reservado. Depois de anular a atribuição do endereço IP, pode voltar a atribuí-lo a outro recurso. Este procedimento é suportado para instâncias de pilha dupla, mas não para instâncias apenas de IPv6.
Também pode anular a atribuição do endereço IPv4 ou IPv6 eliminando a instância.
Consola
Na Google Cloud consola, aceda à página Endereços IP.
Clique em Endereços IP externos.
Selecione o endereço IP estático cuja atribuição quer remover.
Clique em
Ver ações e selecione a opção Reatribuir a outro recurso.Na lista pendente Anexar a, selecione Nenhum.
Clique em OK.
gcloud
Verifique se está a ser usado um endereço IP estático através do comando
gcloud compute addresses list
:gcloud compute addresses list
O resultado é semelhante ao seguinte:
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 utilização, o estado é
RESERVED
. - Se o endereço IP estiver em utilização, o estado é
IN_USE
.
- Se o endereço IP não estiver em utilização, o estado é
Recupere o nome da instância que está a usar o endereço IP:
gcloud compute addresses describe ADDRESS_NAME \ --region=REGION
Substitua o seguinte:
ADDRESS_NAME
: o nome do recurso de endereço IPv6.REGION
: a região do recurso de endereço IPv6.
O resultado é semelhante ao seguinte:
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/INSTANCE_NAME
O campo
users
apresenta o nome da instância que está a usar o endereço IP.Desassocie o endereço IP da instância.
Para anular a atribuição de um endereço IPv4, elimine o ficheiro de configuração de acesso da instância:
Obtenha o nome da configuração de acesso a eliminar. Para obter o nome, use o comando
gcloud compute instances describe
. SubstituaINSTANCE_NAME
pelo nome da instância.gcloud compute instances describe INSTANCE_NAME
A configuração de acesso é apresentada no seguinte formato:
networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 203.0.113.1 type: ONE_TO_ONE_NAT
Elimine a configuração de acesso através do comando
gcloud compute instances delete-access-config
:gcloud compute instances delete-access-config INSTANCE_NAME \ --access-config-name="ACCESS_CONFIG_NAME"
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.ACCESS_CONFIG_NAME
: o nome da configuração de acesso a eliminar. Certifique-se de que inclui o nome completo entre aspas.
Para anular a atribuição de um intervalo de endereços IPv6, use o comando
instance network-interfaces update
:gcloud compute instances network-interfaces update INSTANCE_NAME \ --network-interface=nic0 \ --stack-type=IPV4_ONLY \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância que está a usar o endereço IP.ZONE
: a zona da instância.
Verifique se o seu endereço IP externo estático está agora disponível e marcado como
RESERVED
em vez deIN_USE
.gcloud compute addresses list \ --filter="ADDRESS_NAME AND region=REGION"
Substitua o seguinte:
ADDRESS_NAME
: o nome do recurso de endereço IP.REGION
: a região do recurso de endereço IP.
Agora que o seu endereço IP externo estático está disponível, pode optar por atribuí-lo a outra instância.
REST
Para anular a atribuição de um endereço IPv4 ou IPv6 externo estático, siga os seguintes passos:
Para endereços IPv4, elimine a configuração de acesso anexada à instância que está a usar o endereço.
Para verificar os detalhes da configuração de acesso de uma instância, faça um pedido
GET
ao métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Elimine a configuração de acesso existente fazendo um pedido ao
instances.deleteAccessConfig
método.POST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/deleteAccessConfig
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para este pedidoZONE
: a zona onde a instância está localizadaINSTANCE_NAME
: o nome da instância
Para endereços IPv6, atualize o tipo de pilha da interface de rede para a instância onde o endereço IPv6 está associado.
Faça um pedido
PATCH
ao métodoinstances.updateNetworkInterface
.No corpo do pedido, atualize o valor do campo
stackType
paraIPV4_ONLY
.Por exemplo:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface { "networkInterfaces": [{ ... "stackType" : "IPV4_ONLY" ... }] }
Java
Python
Libertar um endereço IP externo estático
Se já não precisar de um endereço IPv4 ou IPv6 externo estático, pode libertar o endereço IP eliminando o recurso de endereço IP. A eliminação de uma instância não liberta automaticamente um endereço IP externo estático. Tem de libertar manualmente os endereços IP externos estáticos quando já não precisar deles.
Para libertar um endereço IP externo estático, consulte o artigo Libertar um endereço IP externo estático na documentação da VPC.
O que se segue?
- Saiba mais sobre endereços IP.
- Saiba mais sobre redes e firewalls.
- Saiba como aceder a instâncias do Compute Engine através do DNS interno.
- Reveja os preços da VPC.
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 2025-09-19 UTC.
-