管理回應政策和規則

本頁面說明如何管理回應政策和回應政策規則。

您可以使用 Cloud DNS 私人區域建立回應政策,以便根據回應政策規則修改解析器行為。不過,每個網路只能附加一項回應政策。

您可以在單一回應政策中建立多個規則,每個規則可執行下列任一操作:

  • 提供特定資源記錄,變更所選查詢名稱 (包括萬用字元) 的結果。
  • 觸發passthru 行為,略過回應政策,並豁免原本會相符的名稱。舉例來說,針對萬用字元回應,這項功能可讓私人 DNS 查詢比對繼續進行,就好像從未遇到萬用字元一樣。

如要瞭解 VPC Service Controls 如何讓客戶從私人虛擬私有雲網路強制執行 API 存取權控管,請參閱「設定私人連線,以便存取 Google API 和服務」。

管理回應政策

建立回應政策

如要建立回應政策,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下「回應政策可用區」分頁標籤。

  3. 按一下「建立回應政策」

  4. 輸入要建立的回應政策名稱,例如 myresponsepolicy

  5. 輸入回應政策的說明,例如 My new response policy

  6. 從「Networks」下拉式選單中,選取要與回應政策建立關聯的一或多個網路。

  7. 按一下 [建立]。

    您可以在建立的每個回應政策區域中建立回應政策規則。如需操作說明,請參閱「建立回應政策規則」。

gcloud

執行 gcloud dns response-policies create 指令:

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

更改下列內容:

  • RESPONSE_POLICY_NAME:您要建立的回應政策名稱或 ID,例如 myresponsepolicy
  • NETWORK:以半形逗號分隔的清單,當中列有要與回應政策建立關聯的網路名稱,例如 network1, network2
  • DESCRIPTION:回應政策的說明,例如 My new response policy

API

使用 responsePolicies.create 方法傳送 POST 要求:

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

PROJECT_ID 替換為您要在其中建立回應政策的專案名稱或 ID。

查看回應政策

如要查看特定專案中的所有回應政策清單,或查看特定回應政策的說明,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下「回應政策可用區」分頁標籤。

  3. 「回應政策清單」頁面會列出您建立的回應政策。

gcloud

  • 如要查看專案中所有回應政策的清單,請執行 gcloud dns response-policies list 指令:

    gcloud dns response-policies list
    
  • 您可以使用 --limit 標記限制回應政策的數量。舉例來說,如要查看前十個回應政策的清單,請執行下列指令:

    gcloud dns response-policies list \
      --limit=10
    
  • 如要查看回應政策的詳細說明,請執行 gcloud dns response-policies describe 指令:

    gcloud dns response-policies describe RESPONSE_POLICY_NAME
    

    RESPONSE_POLICY_NAME 替換為您要查看說明的回應政策名稱或 ID。

API

如要查看回應政策的詳細說明,請使用 responsePolicies.get 方法傳送 GET 要求:

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

更改下列內容:

  • PROJECT_ID:您建立回應政策的專案 ID
  • RESPONSE_POLICY_NAME:您要查看說明的回應政策名稱或 ID,例如 myresponsepolicy

更新回應政策

如要更新回應政策,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要編輯的回覆政策。您也可以點選回應政策名稱列中的 「更多」

  3. 按一下「編輯回應政策」

  4. 進行必要更新。

  5. 按一下 [儲存]

gcloud

請執行 gcloud dns response-policies update 指令。

gcloud dns response-policies update RESPONSE_POLICY_NAME

RESPONSE_POLICY_NAME 替換為您要更新的回應政策名稱或 ID,例如 myresponsepolicy

使用與 create 指令相同的語法更新任何欄位。

API

  • 如要將部分更新套用至回應政策,請使用 responsePolicies.patch 方法傳送 PATCH 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:您要更新的回應政策名稱或 ID,例如 myresponsepolicy
  • 如要更新回應政策,請使用 responsePolicies.update 方法傳送 UPDATE 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:您要更新的回應政策名稱或 ID,例如 myresponsepolicy

刪除回應政策

如要刪除回應政策,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下回應政策名稱列中的「更多」圖示

  3. 點選「刪除」。

gcloud

請執行 gcloud dns response-policies delete 指令。

gcloud dns response-policies delete RESPONSE_POLICY_NAME

RESPONSE_POLICY_NAME 替換為要刪除的回應政策名稱或 ID。

API

使用 responsePolicies.delete 方法傳送 DELETE 要求:

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

更改下列內容:

  • PROJECT_ID:您建立回應政策的專案 ID
  • RESPONSE_POLICY_NAME:要刪除的回應政策名稱或 ID,例如 myresponsepolicy

管理回應政策規則

網站的 DNS 回應政策包含 DNS 解析器在查詢期間參照的規則。如果回應政策中的規則會影響傳入的查詢,系統會處理該規則;否則,查詢會照常進行。

建立回應政策規則

如要建立回應政策規則,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下「回應政策可用區」分頁標籤。

  3. 在回應政策區域清單中,按一下要建立規則的回應政策區域。

  4. 按一下「建立回應政策規則」

  5. 輸入要建立的回應政策規則名稱,例如 myresponsepolicyrule

  6. 在「Selector」下拉式選單中,選擇要套用此規則的選取器類型。

  7. 輸入要套用規則的 DNS 名稱 (萬用字元或完整名稱),例如 www.googleapis.com

  8. 選擇回應政策規則的動作。舉例來說,如要變更回應政策的行為,請選擇「行為」;否則請選擇「本機資料」

    • 如果您選擇「行為」,請從下拉式選單中選取規則的行為。

    • 如果您選擇「本機資料」,則必須新增資源記錄集。如要瞭解如何新增資源記錄集,請參閱「建立資源記錄集」。

  9. 按一下 [建立]。

gcloud

  • 如要變更所選查詢名稱的行為,請執行 gcloud dns response-policies rules create 指令,並指定 --type 標記:

    gcloud 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"
    

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy
    • DNS_NAME:DNS 或網域名稱,例如 www.googleapis.com
    • TTL:回應政策的存留時間,例如 21600
    • RRTYPE:資源記錄類型,例如 A
    • RRDATA:資源記錄資料,例如 1.2.3.4。使用 | 分隔多個項目,例如 1.2.3.4|5.6.7.8
  • 如要建立略過規則,請執行 gcloud dns response-policies rules create 指令,並將 --behavior 標記設為 bypassResponsePolicy

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

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy
    • DNS_NAME:DNS 或網域名稱,例如 www.googleapis.com

API

  • 如要建立新的回應政策規則,請使用 responsePolicyRules.create 方法傳送 POST 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:您要為其建立回應政策的名稱或 ID,例如 myresponsepolicy

查看回應政策規則

如要查看特定回應政策中的所有回應政策規則清單,或查看特定回應政策規則的說明,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 在「回應政策區域」分頁中,按一下要查看相關規則的回應政策名稱。「回應政策詳細資料」頁面會列出與回應政策相關聯的規則。

  3. 如要查看特定回應政策規則的詳細資料,請按一下規則名稱。您也可以點選回應政策規則名稱列中的「更多」

gcloud

  • 如要查看回應政策中的 Cloud DNS 回應政策規則清單,請執行 gcloud dns response-policies rules list 指令:

    gcloud dns response-policies rules list RESPONSE_POLICY_NAME
    

    RESPONSE_POLICY_NAME 替換為回應政策名稱,例如 myresponsepolicy

  • 如要查看特定回應政策規則的詳細資料,請執行 gcloud dns response-policies rules describe 指令:

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

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy

API

如要查看回應政策中規則的詳細說明,請使用 responsePolicyRules.get 方法傳送 GET 要求:

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

更改下列內容:

  • PROJECT_ID:您建立回應政策的專案 ID
  • RESPONSE_POLICY_NAME:您要為其建立回應政策的名稱或 ID,例如 myresponsepolicy
  • RESPONSE_POLICY_RULE:您想查看詳細資料的回應政策規則

更新回應政策規則

如要編輯或更新回應政策規則,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要編輯規則的回應政策名稱。

  3. 按一下要編輯的回應政策規則名稱。

  4. 在「回應政策規則詳細資料」頁面中,按一下要編輯的規則名稱。

  5. 進行必要更新。

  6. 按一下 [儲存]

gcloud

請執行 gcloud dns response-policies rules update 指令。

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

更改下列內容:

  • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
  • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy

    使用與 create 指令相同的語法更新任何欄位。

API

  • 如要將部分更新套用至回應政策規則,請使用 responsePolicyRules.patch 方法傳送 PATCH 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:要更新規則的回應政策名稱或 ID,例如 myresponsepolicy
    • RESPONSE_POLICY_RULE:您要更新的回應政策規則
  • 如要更新回應政策規則,請使用 responsePolicyRules.update 方法傳送 UPDATE 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:要更新規則的回應政策名稱或 ID,例如 myresponsepolicy
    • RESPONSE_POLICY_RULE:您要更新的回應政策規則

刪除回應政策規則

如要刪除回應政策規則,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要編輯規則的回應政策名稱。

  3. 按一下要刪除的回應政策規則名稱。

  4. 在「回應政策規則詳細資料」頁面中,按一下回應政策規則名稱列中的 「更多」

  5. 按一下 [Delete] (刪除),您也可以按一下要刪除的規則:在「回應政策規則詳細資料」頁面中,按一下「刪除回應政策規則」

gcloud

  • 如要刪除 Cloud DNS 回應政策規則,請執行 gcloud dns response-policies rules delete 指令:

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

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy

API

  • 如要刪除回應政策規則,請使用 responsePolicyRules.delete 方法傳送 DELETE 要求:

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

    更改下列內容:

    • PROJECT_ID:您建立回應政策的專案 ID
    • RESPONSE_POLICY_NAME:您要從中刪除規則的回應政策名稱或 ID,例如 myresponsepolicy
    • RESPONSE_POLICY_RULE:您要刪除的回應政策規則

用途

本節提供設定回應政策規則的用途範例。

將特定名稱導向受限制的 VIP 地址

您可以設定回應政策,為每個區域提供本機 CNAME 資料,將 Google API 要求轉譯為受限 Google API。未指定的名稱會繼續使用一般 DNS 解析。

舉例來說,您可以為 pubsub.googleapis.com 建立回應政策,該政策包含區域的本機 CNAME 資料,可將 Google API 要求轉譯為 restricted.googleapis.com。在此同時,未指定的 www.googleapis.com 會繼續使用一般 DNS 進行解析。

在下列範例設定中,您會建立政策並套用至特定虛擬私有雲網路。

gcloud

  1. 如要建立回應政策,請執行 gcloud dns response-policies create 指令:

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

    更改下列內容:

    • RESPONSE_POLICY_NAME:要建立的回應政策名稱或 ID,例如 myresponsepolicy
    • NETWORK:以半形逗號分隔的網路名稱清單,用於與回應政策建立關聯,例如 network1,network2
    • DESCRIPTION:回應政策的說明,例如 My new response policy
  2. 如果您只使用 restricted.googleapis.com 的 IPv4 位址範圍,請在政策中加入規則,其中包含 IPv4 位址範圍的記錄集。

    gcloud dns response-policies rules create 指令:

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

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy
    • DNS_NAME:您要建立規則的 DNS 名稱,例如 pubsub.googleapis.com.;請注意結尾的句點
  3. 如果您同時使用 restricted.googleapis.com 的 IPv4 和 IPv6 位址範圍,請在政策中加入規則,其中包含 IPv4 和 IPv6 位址範圍的記錄集。

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME. \
        --local-data=name="DNS_NAME.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7" \
        --local-data=name="DNS_NAME.",type="AAAA",ttl=300,rrdatas="2600:2d00:0002:1000::"
    

API

  1. 依網址建立回應政策:

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

    更改下列內容:

    • RESPONSE_POLICY_NAME:回應政策的名稱
    • RESPONSE_POLICY_DESCRIPTION:回應政策的說明
    • URL_TO_NETWORK:您要建立回應政策的網址

  2. 如果您只使用 restricted.googleapis.com 的 IPv4 位址範圍,請在政策中加入規則,其中包含 IPv4 位址範圍的記錄集。

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

    更改下列內容:

    • RULE_NAME:您要建立的規則名稱,例如 pubsub
    • DNS_NAME:您要建立規則的 DNS 名稱,例如 pubsub.googleapis.com.;請注意結尾的句點
  3. 如果您同時使用 IPv4 和 IPv6 位址範圍的 restricted.googleapis.com,請在政策中加入規則,其中包含 IPv4 和 IPv6 位址範圍的記錄集。

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "DNS_NAME.",
          type: "A",
          ttl: 300,
          rrdata: [""199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7""]
        }
      ],
      local_data: [
        {
          name: "DNS_NAME.",
          type: "AAAA",
          ttl: 300,
          rrdata: ["2600:2d00:0002:1000::"]
        }
      ]
    }
    

    更改下列內容:

    • RULE_NAME:您要建立的規則名稱,例如 pubsub
    • DNS_NAME:您要建立規則的 DNS 名稱,例如 pubsub.googleapis.com.;請注意結尾的句點

將所有名稱 (部分名稱除外) 導向受限制的 VIP 地址

您可以設定規則,將部分 DNS 回應排除在涵蓋整個網域或大型 IP 位址區塊的政策規則之外。這種概念稱為直通行為。透過使用傳遞行為,您可以允許缺少服務控制項支援的名稱,透過萬用字元名稱傳遞。

舉例來說,您可以讓 www.googleapis.com 在範例 *.googleapis.com 中允許通配符名稱。www 的完全比對優先於萬用字元 *

在以下範例設定中,您會建立具有指定名稱的政策,並套用至特定 VPC 網路。這項規則可讓 www.googleapis.com 略過萬用字元 *.googleapis.com

gcloud

  1. 如要建立回應政策,請執行 gcloud dns response-policies create 指令:

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

    更改下列內容:

    • RESPONSE_POLICY_NAME:要建立的回應政策名稱或 ID,例如 myresponsepolicy
    • NETWORK:以半形逗號分隔的網路名稱清單,用於與回應政策建立關聯,例如 network1,network2
    • DESCRIPTION:回應政策的說明,例如 My new response policy
  2. 如要為政策新增略過規則,請執行 gcloud dns response-policies rules create 指令,並將 --behavior 旗標設為 bypassResponsePolicy

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

    更改下列內容:

    • RESPONSE_POLICY_RULE_NAME:要建立的回應政策規則名稱,例如 myresponsepolicyrule
    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 myresponsepolicy
    • DNS_NAME:DNS 或網域名稱,例如 www.googleapis.com

API

  1. 建立回應政策:

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

    更改下列內容:

    • RESPONSE_POLICY_NAME:回應政策的名稱,例如 my-response-policy
    • RESPONSE_POLICY_DESCRIPTION:回應政策的說明,例如 my response policy
    • URL_TO_NETWORK:您要建立回應政策的網址
  2. 新增政策規則:

    {
      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
    }
    

    更改下列內容:

    • RULE_NAME:您要建立的規則名稱,例如 googleapis
    • DNS_NAME:您要建立規則的萬用字元 DNS 名稱,例如 *.googleapis.com.;請注意結尾的句點

後續步驟