Como provisionar IPs NAT

Esta página se aplica à Apigee, mas não à Apigee híbrida.

Confira a documentação da Apigee Edge.

Esta seção descreve como gerenciar os IPs NAT para instâncias da Apigee.

A Apigee fornece IPs efêmeros e IPs dedicados. Em muitos casos, IPs temporários são suficientes. Se o back-end não exigir a listagem de permissões de IP, você não precisará gerenciar IPs NAT, e a Apigee alocará automaticamente IPs temporários para saída.

Se você precisar de uma lista de permissões de IP, poderá reservar e ativar IPs para que a Apigee use IPs estáticos para o tráfego de saída.

Configurar o provisionamento de IP NAT da Apigee

Para definir o provisionamento de IP NAT para sua instância do Apigee:

  1. Crie e preencha as seguintes variáveis de ambiente:

    Variáveis

    PROJECT_ID=YOUR_PROJECT_ID
    ORG_ID=YOUR_ORG_ID
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    NAT_ID=1st_NAT_IP_ID

    Exemplo

    PROJECT_ID=apigee-saas-prod
    ORG_ID=apigee-saas-prod
    INSTANCE_NAME=prod-us-west1-instance1
    NAT_ID=nat-1

    Em que:

    • YOUR_PROJECT_ID é o ID do projeto do Cloud que você criou como parte dos pré-requisitos. Se você não tiver certeza de qual é o ID do projeto, use o Console do Cloud ou o comando gcloud projects list para encontrá-lo.
    • YOUR_ORG_ID é o ID da organização da Apigee
    • YOUR_INSTANCE_NAME é o nome da instância da Apigee.
    • 1st_NAT_IP_ID é o nome que você está atribuindo a esse endereço IP NAT, por exemplo: nat-1.
  2. Reserve um IP NAT com os seguintes comandos:
    1. Na linha de comando, receba as credenciais de autenticação de gcloud. Veja o exemplo a seguir:

      TOKEN=$(gcloud auth print-access-token)

      Para verificar se o token foi preenchido, use echo, como mostra o exemplo a seguir:

      echo $TOKEN

      Isso exibirá seu token como uma string codificada.

      Para mais informações, consulte a visão geral da ferramenta de linha de comando gcloud.

    2. O comando para reservar o IP NAT retorna a operação de longa duração. Portanto, o comando como mostrado aqui atribui a saída a uma variável operation_name:
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses" \
        -X POST -H "content-type:application/json" -d "{\"name\":\"${NAT_ID}\"}" | jq -r '.name')
      
    3. Pesquise a operação de longa duração até que ela mostre o status done: true executando a seguinte solicitação:
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  3. Depois que a operação for concluída, ative o IP NAT com os seguintes comandos:
    1. Ative o IP e atribua o nome da operação de longa duração a operation_name:
      operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}:activate" \
        -X POST -H "content-type:application/json" -d "{}" | jq -r '.name')
    2. Pesquise a operação de longa duração até ver o status de done: true:
      curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"
  4. Repita este procedimento com um novo nome de IP NAT para cada IP NAT que você configurar.

Como buscar IPs NAT

Liste os IPs NAT de uma instância com o seguinte comando:

curl -H "Authorization: Bearer $TOKEN" \
  "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses"

Um exemplo de resposta seria:

{
  "natAddresses": [
    {
      "name": "nat-1",
      "ipAddress": "35.203.160.18",
      "state": "ACTIVE"
    },
    {
      "name": "nat-2",
      "ipAddress": "35.230.14.174",
      "state": "RESERVED"
    },
    {
      "name": "nat-3",
      "state": "CREATING"
    }
  ]
}

Estados de um IP NAT

  • CREATING : a criação do IP NAT está pendente. Não está pronto para ser usado
  • RESERVED: o IP NAT foi criado, mas não foi usado. Isso dá a oportunidade de permitir a listagem desse IP antes de ativá-lo.
  • ACTIVE: o IP NAT está sendo usado para enviar tráfego de saída.
  • DELETING: o IP NAT está sendo excluído.

Como excluir IPs NAT

Exclua IPs NAT com o comando a seguir:

  1. Exclua o IP e atribua a saída a "operation_name".
    operation_name=$(curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_ID}/instances/${INSTANCE_NAME}/natAddresses/${NAT_ID}" \
      -X DELETE | jq -r '.name')
  2. Pesquise a operação de longa duração até ver o status de done: true.
    curl -s -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/$operation_name"