Reservar um endereço IP externo estático

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

É possível reservar endereços IP externos estáticos para sua instância 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 exige um endereço IP externo fixo que não muda, é possível conseguir 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.

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.

No Compute Engine, cada instância de VM pode ter várias interfaces de rede. Cada interface pode ter endereços IP internos e externos. As regras de encaminhamento podem ter endereços IP externos para balanceamento de carga externo ou endereços internos para balanceamento de carga interno. Saiba mais sobre endereços IP estáticos em Endereços IP externos.

Antes de começar

Especificações para o uso de endereços IP externos estáticos

  • 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 compute addresses list para ver uma lista de endereços IP externos estáticos disponíveis para o projeto.

  • Cada instância de VM pode ter várias interfaces de rede, mas cada interface de rede pode ter apenas um endereço IP externo temporário ou estático.

  • 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 instância de 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.

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 referir-se a uma interface de rede com essas regras de encaminhamento, mas cada interface de rede pode ter apenas um endereço IP externo.

Para mais informações sobre balanceamento de carga e regras de encaminhamento, leia a documentação sobre o balanceamento de carga.

Endereços IP externos estáticos

Um endereço IP externo estático é o endereço reservado para seu projeto até que você decida liberá-lo. Se você tiver um endereço IP que os clientes ou usuários usam para acessar seu serviço, reserve-o para que apenas seu projeto possa usá-lo. Também é possível promover um endereço IP externo temporário para um endereço IP externo estático.

Use estas instruções para reservar um dos seguintes endereços IP externos:

  • Um endereço IPv4 ou IPv6 global que possa ser usado em balanceadores de carga globais

  • Um endereço IPv4 regional que possa ser usado por instâncias de VM com uma ou mais interfaces de rede ou por balanceadores de carga regionais.

    Para uma lista de balanceadores de carga regionais e globais, consulte o Resumo de balanceadores de carga do Google Cloud.

Para reservar um endereço IPv6 externo regional (prévia) para VMs, consulte Endereço IPv6 externo regional estático.

Reservar um novo endereço IP externo estático.

Depois disso, atribua-o a uma nova instância durante a criação ou a uma instância existente.

Console

  1. Acesse a página Reservar um endereço estático

    Acessar "Reservar um endereço estático"

  2. Escolha um nome para o novo endereço.

  3. Especifique se o endereço é IPv4 ou IPv6. Endereços IPv6 globais só podem ser usados com balanceadores de carga globais.

  4. Especifique se esse endereço IP é regional ou global. Se você estiver reservando um endereço IP estático para uma instância ou para um balanceador de carga regional, escolha Regional. Se estiver reservando um endereço IP estático para um balanceador de carga global, escolha Global.

  5. Se o endereço IP for regional, selecione a região para criar o endereço.

  6. Opcional: selecione um recurso para anexar o IP.

  7. Clique em Reservar para reservar o IP.

gcloud

Para reservar um endereço IP externo estático usando gcloud compute, use o comando compute addresses create.

Se você quiser reservar um endereço IP global, use os campos --global e --ip-version. No campo --ip-version, especifique IPV4 ou IPV6. Endereços IPv6 globais só podem ser usados com balanceadores de carga globais.

Substitua ADDRESS_NAME pelo nome escolhido para chamar esse endereço.

gcloud compute addresses create ADDRESS_NAME \
    --global \
    --ip-version [IPV4 | IPV6]

Se você quiser reservar um endereço IP regional, use o campo --region:

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

Substitua:

  • ADDRESS_NAME: o nome que você quer atribuir a esse endereço.
  • REGION: a região em que você quer reservar o endereço. Ela precisa ser a mesma região do recurso ao qual o endereço IP será anexado; Todos os endereços IP regionais são IPv4.

Use o comando compute addresses describe para ver o resultado:

gcloud compute addresses describe ADDRESS_NAME

Terraform

É possível usar o recurso google_compute_address para criar um endereço IP externo regional.

resource "google_compute_address" "default" {
  name   = "my-test-static-ip-address"
  region = "us-central1"
}

Veja na amostra a seguir como usar o recurso google_compute_global_address para criar um endereço IPv6 externo global:

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

API

Para criar um endereço IPv4 regional, chame o método addresses.insert regional:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

O corpo da sua solicitação precisa ter:

{
  "name": "ADDRESS_NAME"
}

Substitua:

  • ADDRESS_NAME: o nome que você quer atribuir ao endereço;
  • REGION: o nome da região para essa solicitação;
  • PROJECT_ID: o ID do projeto desta solicitação;

Para endereços IPv4 estáticos globais, chame o método globalAddresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

O corpo da sua solicitação precisa ter:

{
  "name": "ADDRESS_NAME"
}

Para endereços IPv6 estáticos globais, chame o método globalAddresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

O corpo da sua solicitação precisa ter:

{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6"
}

Use o método addresses.get para ver o resultado.

Atribuir um endereço IP externo estático a uma nova instância de VM

Quando você cria uma instância de VM, um endereço IP externo temporário é atribuído automaticamente. Se você não quiser um endereço IP externo temporário, atribua explicitamente um estático à instância.

Console

  1. Acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Especifique os detalhes da VM.

  3. Expanda a seção Rede, discos, segurança, gerenciamento, locação individual.

  4. Expanda a seção Networking e faça o seguinte:

    1. Na seção Interfaces de rede, expanda uma interface de rede para editá-la.
    2. Na lista IP externo, selecione o endereço IP externo estático que você reservou.
    3. Para concluir a modificação da interface de rede padrão, clique em Concluído.
  5. Continue com o processo de criação da VM.

gcloud

Para atribuir um endereço IP externo estático, use a sinalização --address durante a criação da instância e informe o endereço IP externo estático:

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.

Terraform

Use o recurso google_compute_instance para atribuir um endereço IP externo.

resource "google_compute_instance" "default" {
  name         = "dns-proxy-nfs"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-1404-trusty-v20160627"
    }
  }

  network_interface {
    network = "default"
    access_config {
      nat_ip = google_compute_address.default.address
    }
  }
}

API

Na solicitação para criar uma instância nova, informe explicitamente a propriedade networkInterfaces[].accessConfigs[].natIP e o IP 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": "IP_ADDRESS"
     }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

Alterar ou atribuir um endereço IP externo a uma instância atual

Atribua ou altere um endereço IP externo, temporário ou estático, a uma instância atual modificando a configuração de acesso da instância.

Uma instância pode ter várias interfaces e cada interface pode ter um endereço IP externo. Se ela já tiver um, remova esse endereço primeiro excluindo a configuração de acesso antiga. Depois adicione uma nova configuração de acesso com o novo endereço IP externo.

Console

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

  2. Clique no nome da instância à qual pretende atribuir um IP externo. A página de detalhes da instância é aberta.
  3. Na página "Detalhes da instância", siga estas etapas:

    1. Clique em Editar.
    2. Em Interfaces de rede, clique no botão de edição.

      Seção "Interface de rede" com o botão "Editar" em destaque.

    3. Em IP externo, selecione um endereço IP externo temporário ou estático para atribuir à instância.

      Seção de interface de rede expandida com a opção "IP externo" destacada.

    4. Clique em Concluir.

  4. Clique em Salvar.

gcloud

  1. [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.

  2. Exclua configurações de acesso atuais.

    É possível definir uma configuração de acesso para cada instância. Antes de tentar atribuir uma nova configuração de acesso a uma instância, faça uma solicitação gcloud compute instances describe para verificar se a instância tem uma configuração de acesso:

    gcloud compute instances describe VM_NAME
    

    Se já houver uma configuração de acesso, ela aparecerá no formato a seguir:

    networkInterfaces:
    - accessConfigs:
      - kind: compute#accessConfig
        name: external-nat
        natIP: 203.0.113.1
        type: ONE_TO_ONE_NAT
    

    Antes de adicionar uma nova configuração de acesso, use o subcomando instances delete-access-config para excluir a configuração atual:

    gcloud compute instances delete-access-config VM_NAME \
        --access-config-name="ACCESS_CONFIG_NAME"
    

    Substitua:

    • VM_NAME: o nome da VM.
    • ACCESS_CONFIG_NAME: a configuração de acesso a ser excluída. Inclua o nome completo entre aspas.
  3. Adicione o novo endereço IP externo.

    Use o subcomando instances add-access-config para adicionar um novo endereço IP externo:

    Observação: não substitua IP_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"
    

API

You can change the external IP address of a VM by adding a new access
configuration for that VM.
  1. Verifique se a VM tem uma configuração de acesso atual. Para verificar os detalhes da VM, faça uma solicitação GET para o GET métodoinstances.get .

     GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
     

    Substitua:

    • PROJECT_ID: o ID do projeto desta solicitação;
    • ZONE: é a zona em que a VM está localizada
    • VM_NAME: o nome da VM Se já houver uma configuração de acesso, a resposta será semelhante à seguinte:
    "networkInterfaces": [
      {
        "network":
        ...
        "networkIP": "192.0.2.1",
        "name": "nic0",
        "accessConfigs": [
          {
            "type": "ONE_TO_ONE_NAT",
            "name": "External NAT",
            "natIP": "203.0.113.1",
            "networkTier": "PREMIUM",
            "kind": "compute#accessConfig"
          }
        ],
        ...
      }
    ]
    

    O campo networkInterfaces[].accessConfigs[].natIP retorna o endereço IP externo estático da instância de VM.

  2. 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
    
  3. Adicione uma nova configuração de acesso à interface de rede da instância de VM fazendo uma solicitação POST ao métodoinstances.addAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig
    {
    "natIP": "IP_ADDRESS",
    "name": "ACCESS_CONFIG_NAME"
    }
    

    Substitua:

    • IP_ADDRESS: o endereço IP externo a ser associado à instância. Especifique um endereço IP externo estático reservado não utilizado disponível para o projeto.
    • ACCESS_CONFIG_NAME: o nome da configuração de acesso. O nome padrão e recomendado é external-nat.

Promover um endereço IP externo temporário

Se a instância tiver um endereço IP externo temporário e você quiser atribuir o IP permanentemente ao projeto, promova o endereço IP externo temporário a um endereço IP externo estático. Promover um endereço IP externo temporário a reservado não faz com que o Google Cloud ignore pacotes enviados para a instância. Isso inclui pacotes enviados para a instância diretamente ou por meio de um balanceador de carga.

Console

  1. Acesse a página Endereços IP externos.

    Acessar Endereços IP externos

  2. Na mesma linha do endereço IP que você quer promover para estático, clique em Reservar.
  3. Atribua um nome ao novo endereço IP estático e clique em Reservar.

gcloud

Para promover um endereço IP externo temporário para um estático, forneça o endereço IP externo temporário usando a sinalização --addresses com o comando compute addresses create. Use a sinalização region para promover um endereço IP regional temporário ou a sinalização global para promover um endereço IP global temporário.

gcloud compute addresses create ADDRESS_NAME --addresses=IP_ADDRESS \
  [--region=REGION | --global]

Substitua:

  • ADDRESS_NAME: o nome que você quer atribuir a esse endereço;
  • IP_ADDRESS: o endereço IP que você quer promover.
  • REGION: a região a que o endereço IP regional pertence.

API

Para promover um endereço IP regional temporário, chame o método addresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Para promover um endereço IP global temporário, faça uma solicitação POST para o URI a seguir:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

O corpo da sua solicitação precisa ter:

{
  "name": "ADDRESS_NAME",
  "address": "IP_ADDRESS"
}

Substitua:

  • ADDRESS_NAME: o nome que você quer atribuir a esse endereço;
  • IP_ADDRESS: o endereço IP que você quer promover.
  • REGION: a região à qual o endereço IP pertence.
  • PROJECT_ID: o ID do projeto desta solicitação;

O endereço IP externo permanece anexado à instância, mesmo depois de ser sido promovido para um endereço IP externo estático. Se você precisar atribuir o endereço estático recém-promovido a outro recurso, cancele a atribuição do endereço IP externo estático da instância existente.

Listar endereços IP externos estáticos

Para listar endereços IP externos estáticos que você reservou para o projeto, use o console, execute compute addresses list ou faça uma solicitação GET para a API.

Console

Para ver uma lista de endereços IP do seu projeto, acesse a página Endereços IP externos.

Acessar Endereços IP externos

gcloud

Use o comando compute addresses list.

gcloud compute addresses list

API

Chame o método addresses.list:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Substitua:

  • REGION: o nome da região para essa solicitação;
  • PROJECT_ID: o ID do projeto desta solicitação;

Para listar todos os endereços em todas as regiões, chame o método aggregatedList.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses

Descrever um endereço IP externo estático

Para informações sobre um endereço IP externo estático, use o console, a CLI gcloud ou a API.

Console

  1. Acesse a página Endereços IP externos.

    Acessar Endereços IP externos

  2. Clique em um endereço IP para ver mais informações sobre ele.

gcloud

Use o comando addresses describe e substitua ADDRESS_NAME pelo nome do endereço IP externo que você quer descrever.

gcloud compute addresses describe ADDRESS_NAME

API

Chame o método addresses.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME

Substitua:

  • ADDRESS_NAME: o nome do endereço IP
  • REGION: o nome da região para essa solicitação
  • PROJECT_ID: o ID do projeto para a solicitação.

Cancelar a atribuição de um endereço IP externo estático

É possível cancelar a atribuição de um endereço IP externo estático alterando a atribuição de endereço IP usando o console do Google Cloud ou excluindo a configuração de acesso anexada à VM que está usando o endereço. Também é possível cancelar a atribuição do endereço IP excluindo a instância. O cancelamento da atribuição de um endereço IP externo estático permite que você reatribua o endereço IP externo estático a outro recurso.

O cancelamento da atribuição de um endereço IP remove-o do recurso, mas mantém o endereço IP reservado para o projeto.

Console

  1. Acesse a página Endereços IP externos.

    Acessar Endereços IP externos

  2. Selecione o endereço IP estático para o qual você quer cancelar a atribuição.
  3. Clique em Alterar para abrir a caixa de diálogo Anexar endereço IP.
  4. Na lista suspensa Anexar a, selecione Nenhuma.
  5. Clique em OK.

gcloud

É possível verificar se um endereço IP estático está em uso executando o comando gcloud compute addresses list:

gcloud compute addresses list

A resposta será semelhante a:

NAME                 REGION    ADDRESS            STATUS
example-address      REGION    198.51.100.1       RESERVED
example-address-new  REGION    203.0.113.1        IN_USE

Neste exemplo, example-address-new está em uso no momento.

Para excluir uma configuração de acesso à instância e cancelar a atribuição de um endereço IP externo estático, siga estas etapas:

  1. Encontre o nome da configuração de acesso a ser excluída. Para encontrar o nome, use o comando gcloud compute instances describe. Substitua VM_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
    
  2. Exclua a configuração de acesso.

    Use o comando gcloud compute instances delete-access-config (em inglês).

    gcloud compute instances delete-access-config VM_NAME \
    --access-config-name="ACCESS_CONFIG_NAME"
    

    Substitua:

    • VM_NAME: o nome da instância da máquina virtual;
    • ACCESS_CONFIG_NAME: o nome da configuração de acesso a ser excluída. Inclua o nome completo entre aspas.
  3. Verifique se o endereço IP externo estático está disponível e marcado como RESERVED vez de IN_USE.

    gcloud compute addresses list
    

    Exemplo:

    NAME                 REGION      ADDRESS           STATUS
    example-address      REGION      198.51.100.1      RESERVED
    example-address-new  REGION      203.0.113.1       RESERVED
    

Agora que o endereço IP externo estático está disponível, atribua-o a outra instância.

API

É possível cancelar a atribuição de um endereço IP externo estático excluindo a configuração de acesso anexada à VM que está usando o endereço.

  1. Para verificar os detalhes de configuração de acesso de uma VM, faça uma solicitação GET ao GETmétodo instances.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    
  2. 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 desta solicitação;
    • ZONE: é a zona em que a VM está localizada
    • VM_NAME: O nome da VM.

Liberar um endereço IP externo estático

Se o endereço IP externo estático não for mais necessário, libere-o para que ele retorne ao pool geral de IPs para outros usuários do Google Compute Engine.

Console

  1. Acesse a página Endereços IP externos.

    Acessar Endereços IP externos

  2. Marque a caixa ao lado do endereço IP a ser liberado.
  3. Clique em Liberar endereço IP.

gcloud

Use o comando compute addresses delete.

gcloud compute addresses delete ADDRESS_NAME

Substitua ADDRESS_NAME pelo nome do endereço IP a ser liberado.

API

Chame o método addresses.delete:

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME

Substitua:

  • ADDRESS_NAME: o nome do endereço IP
  • REGION: o nome da região para essa solicitação;
  • PROJECT_ID: o ID do projeto desta solicitação;

Endereços IPv6 externos regionais estáticos

Se você tem uma sub-rede de pilha dupla com um intervalo de IPv6 externo, é possível reservar endereços IPv6 estáticos dessa sub-rede.

Quando você reserva um endereço IPv6 externo regional, um intervalo de endereços IPv6 /96 é alocado da sub-rede especificada. Em seguida, use o endereço reservado para configurar uma VM de pilha dupla com um endereço IPv6 regional estático. A configuração de endereços IPv6 estáticos só é compatível com nic0.

Veja o que acontece quando você configura uma VM com um endereço IPv6 estático:

Os procedimentos a seguir permitem configurar e gerenciar endereços IPv6 externos regionais estáticos:

Limitações

Se a rede VPC estiver em um projeto de serviço da VPC compartilhada, não será possível reservar um endereço IPv6 externo estático de uma sub-rede compartilhada no projeto host. Só é possível reservar um endereço IPv6 externo estático de uma sub-rede na sua própria rede VPC.

Reservar um novo endereço IPv6 externo regional estático

Quando você reserva um endereço IPv6 externo regional, um intervalo /96 é atribuído da sub-rede especificada.

gcloud alpha compute addresses create ADDRESS_NAME  \
    --region=REGION \
    --subnet=SUBNET \
    --ip-version=IPV6 \
    --endpoint-type=VM

Substitua:

Listar endereços IPv6 externos regionais estáticos

Endereços IPv6 externos regionais estáticos não aparecem no console do Google Cloud como endereços reservados. Use a CLI do Google Cloud para ver os endereços.

gcloud compute addresses list \
    --regions=REGION

Substitua REGION pela região em que você quer listar os endereços.

Descrever endereços IPv6 externos regionais estáticos

Endereços IPv6 externos regionais estáticos não aparecem no console do Google Cloud como endereços reservados. Use a CLI do Google Cloud para ver o intervalo de endereços IPv6 /96 atribuído.

gcloud compute addresses describe ADDRESS_NAME \
    --region=REGION

Substitua:

  • ADDRESS_NAME: o nome do endereço
  • REGION: a região do endereço.

Atribuir um endereço IPv6 externo regional estático a uma nova instância de VM

Crie uma VM e atribua um endereço IPv6 externo regional estático já reservado. A VM precisa ser configurada com a mesma região e sub-rede que o endereço IPv6 reservado.

gcloud alpha compute instances create VM_NAME \
    --subnet=SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-address=IPV6_ADDRESS \
    --ipv6-prefix-length=96 \
    --ipv6-network-tier=PREMIUM \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome da VM.
  • SUBNET: a sub-rede que contém o endereço reservado.
  • IPV6_ADDRESS: o endereço IPv6 que será atribuído à VM. Especifique o primeiro endereço IPv6 no intervalo /96.
  • ZONE: a zona para a VM.

Promover um endereço IPv6 externo regional temporário

Para promover um endereço IPv6 externo regional temporário a um endereço IPv6 externo estático, forneça o endereço IP externo temporário usando a sinalização --addresses com o comando compute addresses create.

gcloud alpha compute addresses create ADDRESS_NAME \
    --region=REGION \
    --addresses=IPV6_ADDRESS \
    --prefix-length=96

Substitua:

  • ADDRESS_NAME: um nome para o recurso de endereço IP.
  • REGION: a região do recurso de endereço IPv6.
  • IPV6_ADDRESS: o endereço IPv6 que você está promovendo.

Alterar a configuração do endereço IPv6 externo das instâncias existentes

É possível modificar uma VM existente para adicionar ou remover uma configuração de endereço IPv6 externo.

  • Para visualizar a configuração do IPv6, descreva a VM:

    Verifique se a instância tem uma configuração IPv6 fazendo uma solicitação gcloud compute instances describe:

    gcloud compute instances describe VM_NAME \
        --region=REGION
    

    Substitua:

    • VM_NAME: O nome da VM.
    • ZONE: a zona da VM;

    Se um endereço IPv6 externo já tiver sido atribuído a nic0, a configuração será exibida no seguinte formato:

    networkInterfaces:
      ...
      ipv6AccessConfigs:
      - externalIpv6: 2001:db8:4000:15:0:0:0:0
        externalIpv6PrefixLength: 96
        kind: compute#accessConfig
        name: external-ipv6
        networkTier: PREMIUM
        type: DIRECT_IPV6
      ipv6AccessType: EXTERNAL
      kind: compute#networkInterface
      name: nic0
    
  • Para remover a configuração do IPv6 externo, mude o tipo de pilha de pilha dupla para pilha única.

    Remova a configuração do endereço IPv6 usando o subcomando instance network-interfaces update:

    gcloud alpha compute instances network-interfaces update VM_NAME \
        --network-interface=nic0 \
        --stack-type=IPV4_ONLY \
        --zone=ZONE
    

    Substitua:

    • VM_NAME: O nome da VM.
    • ZONE: a zona da VM;
  • Para atribuir um endereço IPv6 externo regional estático, mude o tipo de pilha de pilha única para pilha dupla. Verifique se a VM ainda não tem uma configuração IPv6 externa antes de atribuir o endereço.

    1. Reserve um endereço IPv6 externo estático.

      Para atribuir um endereço IPv6 externo regional estático, reserve um endereço e verifique se ele não está sendo usado por outro recurso. O endereço IPv6 reservado precisa estar na mesma região e sub-rede que a VM.

    2. Para adicionar um endereço IPv6 regional estático, faça o seguinte:

      Use o subcomando instance network-interfaces update para adicionar um novo endereço IP externo:

      gcloud alpha compute instances network-interfaces update VM_NAME \
        --network-interface=nic0 \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --ipv6-address=IPV6_ADDRESS \
        --ipv6-prefix-length=96 \
        --zone=ZONE
      

      Substitua:

      • VM_NAME: o nome da VM
      • IPV6_ADDRESS: o endereço IPv6 que será atribuído à VM. Especifique o primeiro endereço IPv6 no intervalo /96.
      • ZONE: a zona da VM;

Cancelar a atribuição de um endereço IPv6 externo regional estático

Cancele a atribuição de um endereço IPv6 externo regional excluindo a instância ou alterando o tipo de pilha da instância para apenas IPv4. Cancelar a atribuição de um endereço IP estático remove o endereço do recurso, mas mantém o endereço IP reservado.

Se você quiser remover a reserva, Libere um endereço IPv6 externo regional estático.

  1. Verifique o status do recurso de endereço IP usando o comando compute addresses describe.

    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: IPV6_ADDRESS
    addressType: EXTERNAL
    creationTimestamp: 'TIMESTAMP'
    description: 'DESCRIPTION'
    id: ID
    ipVersion: IPV6
    kind: compute#address
    name: ADDRESS_NAME
    networkTier: PREMIUM
    prefixLength: 96
    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
    
    • Se o endereço IP não estiver em uso, status será RESERVED.
    • Se o endereço IP estiver em uso, status será IN_USE e o campo users exibirá a VM que está usando o endereço IP.
  2. Se o endereço IP estiver em uso, remova a atribuição do endereço IPv6 externo regional estático da VM usando o comando instance network-interfaces update.

    gcloud alpha compute instances network-interfaces update VM_NAME \
        --network-interface=nic0 \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_ONLY \
        --zone=ZONE
    

    Substitua:

    • VM_NAME: o nome da instância da máquina virtual que está usando o endereço IP.
    • ZONE: a zona da instância;
  3. Verifique se o endereço IPv6 externo estático está disponível e marcado como RESERVED vez de IN_USE.

    gcloud compute addresses list \
        --filter="ADDRESS_NAME AND region=REGION"
    

    Substitua:

    • ADDRESS_NAME: o nome do recurso de endereço IPv6.
    • REGION: a região do recurso de endereço IPv6.

Liberar um endereço IPv6 externo regional estático

Se você não precisar mais do endereço IPv6 reservado, é possível liberá-lo. O endereço liberado é retornado para o pool de endereços temporários na sub-rede e está disponível para uso por outros recursos.

Use o comando compute addresses delete.

gcloud compute addresses delete ADDRESS_NAME

Substitua ADDRESS_NAME pelo nome do endereço IPv6 a ser liberado.

Como 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 instâncias de VM 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 lista allowedValues 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

  • É 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 uma deniedList, 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 instância. A restrição apenas verifica o URI da instância e não impede que as VMs da lista de permissões sejam alteradas, excluídas ou recriadas.

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

  1. Acesse a página Políticas da organização.

    Acessar as políticas organizacionais

  2. Se necessário, selecione a organização no menu suspenso do projeto.
  3. Clique em Definir os IPs externos para instâncias de VM permitidas.
  4. Clique em Editar para editar a política de IP externo. É necessário ter as permissões corretas para poder acessar a ferramenta Editar.
  5. Selecione Personalizar para definir a política da organização para VMs específicas.

    Opção personalizada na página "Editar política da organização".

  6. Selecione as opções Aplicação da política e Tipo de política.

  7. Em Valores da política, selecione Personalizada.

  8. 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
    
  9. Clique em Novo valor de política e digite URIs para as VMs, conforme necessário.

  10. Clique em Salvar para aplicar a restrição.

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:

  • PROJECT_ID: o ID do projeto para esta solicitação, como example-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 instância;
  • VM_NAME: o nome da instância da máquina virtual;

Como alternativa, é possível especificar uma lista de deniedValues para expressar instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificar allowedValues ou deniedValues, 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 instância tenha acesso de IP externo, configure uma política com allValues definido como DENY:

{
  "constraint": "constraints/compute.vmExternalIpAccess",
  "listPolicy": {
    "allValues": "DENY"
  }
}

API

Use a API setOrgPolicy() para definir a restrição. As VMs na lista allowedValue especificada podem ter endereços IP externos. Como alternativa, é possível especificar uma lista de deniedValues para expressar instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificar allowedValues ou deniedValues, mas não ambos.

Por exemplo, a seguir há uma solicitação para definir a restrição compute.vmExternalIpAccess em uma organização em que as instâncias de VM 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 desejada 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 instância tenha acesso de IP externo, configure uma política com allValues definido como DENY:

{
  "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 lista allowedValues, mas a política no projeto tiver a mesma VM na lista deniedValues, a instância de VM não poderá 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 desejado no seletor de projetos, em vez da organização.

Seletor de projetos.

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:

  • PROJECT_ID: o ID do projeto para esta solicitação, como example-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 instância.
  • VM_NAME: o nome da instância da máquina virtual;

Como alternativa, é possível especificar uma deniedValues de instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista poderia, implicitamente, ter um endereço IP externo. É possível especificar allowedValues ou deniedValues, 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

API

Use a API setOrgPolicy para definir a restrição. As VMs na lista allowedValue especificada podem ter endereços IP externos. Como alternativa, é possível especificar uma lista de deniedValues para expressar instâncias de VM proibidas explicitamente de ter um endereço IP externo. Qualquer instância que não esteja na lista está implicitamente autorizada a ter um endereço IP externo. É possível especificar allowedValues ou deniedValues, 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 pretendida 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

  • Evite usar a lista deniedValues com essa restrição. Se você definir valores na lista deniedValues, significa que apenas as instâncias de VM na lista deniedValues 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 lista allowedValues, atualize a política atual para remover as VMs da allowedList em vez de colocar as VMs na lista deniedValues 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 o restoreDefault para permitir que todas as VMs nos projetos sejam associadas a endereços IP externos. As políticas atualmente em vigor para projetos não são afetadas pela configuração padrão.

  • Use esta política organizacional com os papéis do IAM para controlar melhor o ambiente. Essa política se aplica apenas a VMs, mas se você quiser controlar e restringir melhor os endereços IP externos 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 for 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 Rede de projetos cruzados.

A seguir