Como gerenciar políticas e regras de resposta

Nesta página, você encontra informações sobre como gerenciar políticas de resposta e as regras dela.

Com as zonas particulares do Cloud DNS, é possível criar uma única política de resposta por rede para modificar o comportamento do resolvedor de acordo com a política criada. Também é possível criar regras como parte das políticas de resposta.

É possível criar uma única regra de política de resposta por rede, que pode:

  • alterar os resultados dos nomes das consultas selecionadas (incluindo caracteres curinga) fornecendo registros de recurso específicos;
  • acionar o comportamento de passthru que ignora a política de resposta, isentando nomes que seriam correspondentes. Por exemplo, em respostas de caractere curinga, permitir que a correspondência de consulta de DNS particular continue como se não houvesse um caractere curinga.

Para informações sobre como o VPC Service Controls permite que os clientes apliquem controles sobre o acesso à API das redes VPC particulares, consulte Como configurar a conectividade particular com APIs e serviços do Google.

Como gerenciar políticas de resposta

Como criar uma política de resposta

Para criar uma nova política de resposta, siga estas etapas.

gcloud

Execute o comando gcloud beta dns response-policies create:

gcloud beta dns response-policies create RESPONSE_POLICY_NAME \
     --networks=NETWORK \
    [--description=DESCRIPTION]

Substitua:

  • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer criar, como myresponsepolicy.
  • NETWORK: uma lista separada por vírgulas de nomes de rede para associar à política de resposta, como network1, network2.
  • DESCRIPTION: uma descrição da política de resposta, como My new response policy.

API

Envie uma solicitação POST usando o método responsePolicies.create:

POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies

Substitua PROJECT_ID pelo nome ou ID do projeto em que você quer criar a política de resposta.

Como visualizar políticas de resposta

Para ver a lista de todas as políticas de resposta em um determinado projeto ou a descrição de uma política de resposta específica, siga estas etapas:

gcloud

  • Para ver a lista de todas as políticas de resposta em um projeto, execute o comando gcloud beta dns response-policies list:

    gcloud beta dns response-policies list
    
  • É possível limitar o número de políticas de resposta usando a sinalização --limit. Por exemplo, para ver uma lista das dez primeiras políticas de resposta, execute o seguinte comando:

    gcloud beta dns response-policies list \
      --limit=10
    
  • Para ver uma descrição detalhada de uma política de resposta, execute o comando gcloud beta dns response-policies describe:

    gcloud beta dns response-policies describe RESPONSE_POLICY_NAME
    

    Para visualizar a descrição de uma política de resposta, substitua RESPONSE_POLICY_NAME pelo nome ou ID dela.

API

Para ver a descrição detalhada de uma política de resposta, envie uma solicitação GET usando o método responsePolicies.get:

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
  • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta de que você quer ver a descrição, como myresponsepolicy.

Como atualizar uma política de resposta

Para atualizar uma política de resposta, siga estas etapas:

gcloud

Execute o comando gcloud beta dns response-policies update:

gcloud beta dns response-policies update RESPONSE_POLICY_NAME

Substitua RESPONSE_POLICY_NAME pelo nome ou ID da política de resposta que você quer atualizar, como myresponsepolicy.

Use a mesma sintaxe do comando create para todos os campos atualizados.

API

  • Para aplicar uma atualização parcial a uma política de resposta, envie uma solicitação PATCH usando o método responsePolicies.patch:

    PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer atualizar, como myresponsepolicy.
  • Para atualizar uma política de resposta, envie uma solicitação UPDATE usando o método responsePolicies.update:

    UPDATE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer atualizar, como myresponsepolicy.

Como excluir uma política de resposta

Para excluir uma política de resposta, siga estas etapas:

gcloud

Execute o comando gcloud beta dns response-policies delete:

gcloud beta dns response-policies delete RESPONSE_POLICY_NAME

Substitua RESPONSE_POLICY_NAME pelo nome ou ID da política de resposta que você quer excluir.

API

Envie uma solicitação DELETE usando o método responsePolicies.delete:

DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
  • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer excluir, como myresponsepolicy.

Como gerenciar regras de política de resposta

A política de resposta DNS de um local consiste de regras que um resolvedor de DNS consulta durante as pesquisas. Se uma regra na política de resposta afetar a consulta recebida, ela será processada. Caso contrário, a pesquisa continuará normalmente.

Para gerenciar regras, siga estas etapas.

gcloud

  • Para alterar o comportamento dos nomes de consulta selecionados, execute o comando gcloud beta dns response-policies rules create e especifique a sinalização --type:

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
       --response-policy=RESPONSE_POLICY_NAME \
       --dns-name=DNS_NAME \
       --local-data=name="DNS_NAME.",type="RRTYPE",ttl=TTL,rrdatas="RRDATA"
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.
    • DNS_NAME: o DNS ou nome de domínio, como www.googleapis.com.
    • TTL: tempo de vida para a política de resposta, como 21600.
    • RRTYPE: o tipo de registro de recurso, como A.
    • RRDATA: os dados de registro de recurso, como 1.2.3.4. Separe várias entradas com |, como 1.2.3.4|5.6.7.8.
  • Para criar uma regra para ignorar, execute o comando gcloud beta dns response-policies rules create e defina a sinalização --behavior como bypassResponsePolicy:

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
       --response-policy=RESPONSE_POLICY_NAME \
       --dns-name=DNS_NAME \
       --behavior=bypassResponsePolicy
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.
    • DNS_NAME: o DNS ou nome de domínio, como www.googleapis.com.
  • Para ver os detalhes sobre uma regra de política de resposta, execute o comando gcloud beta dns response-policies rules describe:

    gcloud beta dns response-policies rules describe RESPONSE_POLICY_RULE_NAME \
      --response-policy=RESPONSE_POLICY_NAME
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.
  • Para ver a lista de regras de política de resposta do Cloud DNS em uma política de resposta, use o comando gcloud beta dns response-policies rules list:

    gcloud beta dns response-policies rules list RESPONSE_POLICY_NAME
    

    Substitua RESPONSE_POLICY_NAME pelo nome da política de resposta, como myresponsepolicy.

  • Para atualizar uma nova regra de política de resposta do Cloud DNS, use o comando gcloud beta dns response-policies rules update:

    gcloud beta dns response-policies rules update RESPONSE_POLICY_RULE_NAME \
       --response-policy=RESPONSE_POLICY_NAME
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.

    Use a mesma sintaxe do comando create para todos os campos atualizados.

  • Para excluir uma regra de política de resposta do Cloud DNS, use o comando gcloud beta dns response-policies rules delete:

    gcloud beta dns response-policies rules delete RESPONSE_POLICY_RULE_NAME \
      --response-policy=RESPONSE_POLICY_NAME
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.

API

  • Para criar uma nova regra de política de resposta, envie uma solicitação POST usando o método responsePolicyRules.create:

    POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta para a qual você quer criar uma regra, como myresponsepolicy.
  • Para ver a descrição detalhada de uma regra em uma política de resposta, envie uma solicitação GET usando o método responsePolicyRules.get:

    GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta para a qual você quer criar uma regra, como myresponsepolicy.
    • RESPONSE_POLICY_RULE: a regra de política de resposta de que você quer ver os detalhes.
  • Para aplicar uma atualização parcial a uma regra de política de resposta, envie uma solicitação PATCH usando o método responsePolicyRules.patch:

    PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer atualizar a regra, como myresponsepolicy.
    • RESPONSE_POLICY_RULE: a regra da política de resposta que você quer atualizar.
  • Para atualizar uma regra de política de resposta, envie uma solicitação UPDATE usando o método responsePolicyRules.update:

    UPDATE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer atualizar a regra, como myresponsepolicy.
    • RESPONSE_POLICY_RULE: a regra da política de resposta que você quer atualizar.
  • Para excluir uma regra de política de resposta, envie uma solicitação DELETE usando o método responsePolicyRules.delete:

    DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME/rules/RESPONSE_POLICY_RULE
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a política de resposta.
    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta de onde você quer excluir a regra, como myresponsepolicy.
    • RESPONSE_POLICY_RULE: a regra da política de resposta que você quer excluir.

Casos de uso

Nesta seção, fornecemos exemplos de casos de uso de configuração de regras de políticas de resposta.

Como direcionar nomes específicos para os endereços VIP restritos

É possível configurar uma política de resposta que tenha dados CNAME locais de cada zona para converter solicitações de APIs do Google para APIs restritas do Google. Os nomes não especificados continuarão sendo resolvidos usando o DNS regular.

Por exemplo, é possível criar uma política de resposta para pubsub.googleapis.com, que tem dados CNAME locais de uma zona, para converter solicitações da API do Google para restricted.googleapis.com. Enquanto isso, www.googleapis.com, que não foi especificado, continua sendo resolvido com o DNS regular.

No exemplo de configuração a seguir, você cria uma política e a aplica a uma rede VPC específica.

gcloud

  1. Para criar uma política de resposta, execute o comando gcloud beta dns response-policies create:

    gcloud beta dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    Substitua:

    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer criar, como myresponsepolicy.
    • NETWORK: uma lista separada por vírgulas com os nomes de rede para associar à política de resposta, como network1,network2.
    • DESCRIPTION: uma descrição da política de resposta, como My new response policy.
  2. Para adicionar uma regra à política, execute o comando gcloud beta dns response-policies rules create:

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=pubsub.googleapis.com. \
        --local-data=name="pubsub.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.

API

  1. Criar uma política de resposta por URL:

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    Substitua:

    • RESPONSE_POLICY_NAME: um nome para a política de resposta.
    • RESPONSE_POLICY_DESCRIPTION: uma descrição da política de resposta.
    • URL_TO_NETWORK: o URL para o qual você está criando a política de resposta.

  2. Adicionar uma regra à política:

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "pubsub.googleapis.com.",
          type: "A",
          ttl: 300,
          rrdata: ["199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7"]
        }
      ]
    }
    

    Substitua:

    • RULE_NAME: um nome para a regra que você está criando, como pubsub.
    • DNS_NAME: o nome do DNS para o qual você está criando a regra, como pubsub.googleapis.com.; observe o ponto final

Direcionar todos os nomes, exceto alguns, para endereços VIP restritos

É possível definir regras para ignorar algumas respostas DNS de uma regra de política que abranja um domínio inteiro ou um bloco de endereços IP grande. Esse conceito é chamado de comportamento de passthru. Ao usar o comportamento de passthru, você pode permitir que os nomes que não são compatíveis com os controles de serviço sejam permitidos depois do nome do caractere curinga.

Por exemplo, você pode deixar www.googleapis.com ser permitido depois do nome de caractere curinga no exemplo *.googleapis.com. A correspondência exata para www prevalece sobre o caractere curinga *.

No exemplo de configuração a seguir, você cria uma política com um nome especificado e a aplica a uma rede VPC específica. A regra permite que www.googleapis.com ignore o caractere curinga *.googleapis.com.

gcloud

  1. Para criar uma política de resposta, execute o comando gcloud beta dns response-policies create:

    gcloud beta dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    Substitua:

    • RESPONSE_POLICY_NAME: o nome ou ID da política de resposta que você quer criar, como myresponsepolicy.
    • NETWORK: uma lista separada por vírgulas com os nomes de rede para associar à política de resposta, como network1,network2.
    • DESCRIPTION: uma descrição da política de resposta, como My new response policy.
  2. Se você quiser adicionar uma regra para ignorar a política, execute o comando gcloud beta dns response-policies rules create e defina a sinalização --behavior como bypassResponsePolicy:

    gcloud beta dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME \
        --behavior=bypassResponsePolicy
    

    Substitua:

    • RESPONSE_POLICY_RULE_NAME: um nome para a regra da política de resposta que você quer criar, como myresponsepolicyrule.
    • RESPONSE_POLICY_NAME: o nome da política de resposta, como myresponsepolicy.
    • DNS_NAME: o DNS ou nome de domínio, como www.googleapis.com.

API

  1. Criar uma política de resposta:

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    Substitua:

    • RESPONSE_POLICY_NAME: um nome para a política de resposta, como my-response-policy.
    • RESPONSE_POLICY_DESCRIPTION: uma descrição da política de resposta, como my response policy.
    • URL_TO_NETWORK: o URL para o qual você está criando a política de resposta.
  2. Adicionar uma regra à política:

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "*.googleapis.com.",
          type: "A",
          ttl: 300,
          rrdata: ["restricted.googleapis.com."]
        }
      ]
    }
    {
      kind: "dns#responsePolicyRules",
      rule_name: "www-passthru",
      dns_name: "www.googleapis.com.",
      behavior: BYPASS_RESPONSE_POLICY
    }
    

    Substitua:

    • RULE_NAME: um nome para a regra que você está criando, como googleapis.
    • DNS_NAME: o nome do DNS curinga para o qual você está criando a regra, como *.googleapis.com.. Observe o ponto no final.

A seguir