Serviço de endereço IP público

O serviço de rede de endereços IP (externo) públicos permite que você se conecte a uma máquina virtual (VM) de carga de trabalho, a um dispositivo de gerenciamento ou a um balanceador de carga executado na nuvem privada usando a Internet. Por exemplo, se você executa um servidor da Web na VM de carga de trabalho, pode veicular o tráfego da Web usando um endereço IP público na Internet. Por padrão, o serviço de rede de IP público está desativado.

A alocação de um endereço IP público para um recurso também oferece os seguintes benefícios:

  • Prevenção contra ataques distribuídos de negação de serviço (DDoS, na sigla em inglês). Essa proteção é ativada automaticamente para o endereço IP público.
  • Monitoramento de tráfego sempre ativado e mitigação de ataques comuns no nível da rede.
  • Proteção e mitigação de ataques em toda a escala da rede global. A rede pode ser usada para distribuir e reduzir o tráfego de ataque entre regiões.

Comportamento

Um endereço IP público só pode ser atribuído a um endereço IP particular, e esse endereço é dedicado a esse endereço até que você cancele a atribuição. Um recurso associado a um endereço IP público sempre usa o endereço IP público para acessar a Internet. É possível reservar até 100 endereços IP públicos para a rede VPC principal conectada ao VMware Engine.

Por padrão, o tráfego de entrada em um endereço IP público é negado e somente o acesso à Internet de saída é permitido. Para permitir o tráfego de entrada, crie uma regra de firewall para o endereço IP público da porta específica.

gcloud e pré-requisitos da API

Para usar a ferramenta de linha de comando gcloud ou a API para gerenciar os recursos do VMware Engine, recomendamos configurar as ferramentas conforme descrito abaixo.

gcloud

  1. Defina o ID do projeto padrão:

    gcloud config set project PROJECT_ID
    
  2. Defina uma região e/ou uma zona padrão:

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

Para mais informações sobre a ferramenta gcloud vmware, consulte os documentos de referência do SDK do Cloud.

API

Os exemplos de API neste conjunto de documentação usam a ferramenta de linha de comando cURL para consultar a API. Um token de acesso válido é necessário como parte da solicitação cURL. Há muitas maneiras de conseguir um token de acesso válido. As etapas a seguir usam a ferramenta gcloud para gerar um token de acesso:

  1. Fazer login no Google Cloud

    gcloud auth login
    
  2. Gerar token de acesso e exportar para TOKEN

    export TOKEN=`gcloud auth print-access-token`
    
  3. Verificar se o TOKEN está definido corretamente

    echo $TOKEN
    
    Output:
    TOKEN
    

Use agora o token de autorização nas solicitações para a API. Exemplo:

curl -X GET -H "Authorization: Bearer \"$TOKEN\""  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

Os exemplos de código Python nesta documentação usam a biblioteca do VMware Engine para se comunicar com a API. Para usar essa abordagem, a biblioteca precisa estar instalada e o Application Default Credentials precisa estar configurado.

  1. Fazer o download e instalar a biblioteca Python

     pip install google-cloud-vmwareengine
    
  2. Execute os comandos no shell para configurar as informações do ADC

      gcloud auth application-default login
    

    ou use um arquivo de chave da conta de serviço

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Para mais informações sobre a biblioteca, acesse a página de referência ou veja os exemplos de código no GitHub.

Como ativar o serviço de rede IP pública em uma região

Antes de alocar um endereço IP público a uma VM de carga de trabalho, ative o serviço de rede IP público na região:

Console

  1. Acesse o portal do VMware Engine.
  2. Acesse Rede > Configurações regionais.
  3. Na linha correspondente à região de interesse, selecione Editar. Se a região não estiver listada na tabela de resumo, adicione-a clicando em Adicionar região.
  4. Alterne o Serviço IP público para Ativado.
    • Para ativar o serviço de IP público, também é necessário ativar o serviço de rede de acesso à Internet.
    • É possível ativar o serviço de acesso à Internet e deixar o serviço de IP público desativado. Se você fizer isso, a VPN de ponto a site e a alocação de IP público não estarão disponíveis.
  5. No campo CIDR dos serviços de borda, insira o intervalo de endereços a ser usado ao se direcionar ao gateway de IP público do VMware Engine (intervalo de endereços /26).
  6. Clique em Enviar.

O status do serviço de rede é alterado para Ativado quando a operação é concluída, geralmente depois de vários minutos.

gcloud

Usando a ferramenta gcloud, execute o seguinte comando para criar uma política de rede:

gcloud vmware network-policies create NETWORK_POLICY_NAME \
    --vmware-engine-network NETWORK_NAME --edge-services-cidr IP_RANGE \
    --location REGION --external-ip-access --internet-access

Substitua:

  • NETWORK_POLICY_NAME: o nome da política de rede.
  • NETWORK_NAME: a rede dessa solicitação, precisa estar no formato REGION-default.
  • IP_RANGE: o intervalo CIDR a ser usado para gateways de acesso à Internet e de IP externo, em notação CIDR. É necessário um bloco CIDR RFC 1918 com um prefixo "/26".
  • REGION: a região da rede

API

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME -d '{
  "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME",
  "edgeServiceCidr":IP_RANGE,
  "internetAccess: {
    "enabled": true
   },
   "externalIp": {
     "enabled": true
   }
 }

Substitua:

  • NETWORK_POLICY_NAME: o nome da política de rede.
  • PROJECT_ID: o ID do projeto desta solicitação
  • REGION: a região da rede
  • IP_RANGE: o intervalo CIDR a ser usado para gateways de acesso à Internet e gateways de acesso IP externo, em notação CIDR. É necessário um bloco CIDR RFC 1918 com um prefixo "/26".
  • NETWORK_NAME: a rede a que essa política de rede se aplica, precisa estar no formato >REGION-default.

Python

Crie uma nova política de rede com external_ip e internet_access definidas como True usando a seguinte função:

from google.api_core import operation
from google.cloud import vmwareengine_v1


def create_network_policy(
    project_id: str,
    region: str,
    ip_range: str,
    internet_access: bool,
    external_ip: bool,
) -> operation.Operation:
    """
    Creates a new network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1"
        ip_range: the CIDR range to use for internet access and external IP access gateways,
            in CIDR notation. An RFC 1918 CIDR block with a "/26" suffix is required.
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.

    Raises:
        ValueError if the provided ip_range doesn't end with /26.
    """
    if not ip_range.endswith("/26"):
        raise ValueError(
            "The ip_range needs to be an RFC 1918 CIDR block with a '/26' suffix"
        )

    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.edge_services_cidr = ip_range
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request = vmwareengine_v1.CreateNetworkPolicyRequest()
    request.network_policy = network_policy
    request.parent = f"projects/{project_id}/locations/{region}"
    request.network_policy_id = f"{region}-default"

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_network_policy(request)

Como alocar um endereço IP público

Para alocar um endereço IP público para uma VM de carga de trabalho, faça o seguinte:

  1. Acesse o portal do Google Cloud VMware Engine
  2. Acesse Rede > IPs públicos.
  3. Clique em Alocar.
  4. No campo Nome, digite um nome para identificar a entrada de endereço IP público.
  5. Selecione a Nuvem privada que contém a VM da carga de trabalho.
  6. Selecione o Local em que você quer exibir o IP público alocado.
  7. No campo Endereço local anexado, insira o endereço IP local da VM que você quer atribuir a esse endereço.
  8. Clique em Enviar para iniciar a tarefa de alocação do endereço IP público.

Verifique o status da tarefa na página Atividade > Tarefas. Quando a alocação for concluída, a nova entrada aparecerá na página IPs públicos com o status Operacional.