管理回應政策和規則

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

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

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

  • 提供特定資源記錄,藉此變更所選查詢名稱 (包括萬用字元) 的結果。
  • 觸發略過回應政策的 passthru 行為,並排除原本會符合比對的名稱。舉例來說,如果是萬用字元回應,這可讓私人 DNS 查詢比對作業繼續進行,如同從未查詢到萬用字元。

想瞭解 VPC Service Controls 如何協助客戶強制控管私人虛擬私有雲網路的 API 存取權,請參閱「設定連至 Google API 和服務的私人連線」一文。

管理回應政策

建立回應政策

建立回應政策的步驟如下。

控制台

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

    前往 Cloud DNS 區域

  2. 點按「Response policy zones」(回應政策區域) 分頁標籤。

  3. 點按「Create response policy」(建立回應政策)

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

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

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

  7. 點按「Create」(建立)

    建立好回應政策區域後,您可以在當中建立回應政策規則。如需操作說明,請參閱「建立回應政策規則」一節。

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 點按「Response policy zones」(回應政策區域) 分頁標籤。

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

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

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

  3. 點按「Edit response policy」(編輯回應政策)

  4. 進行必要更新。

  5. 按一下「Save」(儲存)

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

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

  3. 點按「Delete」(刪除)

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 點按「Response policy zones」(回應政策區域) 分頁標籤。

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

  4. 點按「Create response policy rule」(建立回應政策規則)

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

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

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

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

    • 如果選擇「Behavior」(行為),請從下拉式選單中選取要指定規則執行的行為。

    • 如果選擇「Local data」(本機資料),則必須新增資源記錄集。如需新增資源記錄集的操作說明,請參閱這篇文章

  9. 點按「Create」(建立)

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

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

  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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

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

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

  4. 在「Response policy rule details」(回應政策規則詳細資料) 頁面中,點按要編輯的規則名稱。

  5. 進行必要更新。

  6. 按一下「Save」(儲存)

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 zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

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

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

  4. 在「Response policy rule details」(回應政策規則詳細資料) 頁面中,點按回應政策規則名稱列中的「更多」圖示

  5. 按一下「Delete」(刪除)。您也可以點按要刪除的規則,然後在「Response policy rule details」(回應政策規則詳細資料) 頁面中,按一下「Delete response policy rules」(刪除回應政策規則)

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. 如果您同時使用 IPv4 和 IPv6 位址範圍的 restricted.googleapis.com,請在政策中新增規則,並在規則中納入 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 位址

您可以設定規則,從涵蓋整個網域或大型 IP 位址模塊的政策規則中排除部分 DNS 回應。這個概念稱為「passthru 行為」。使用 passthru 行為,即可允許名稱通過萬用字元名稱,即使這些名稱不支援服務控制項也沒問題。

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

下列範例設定說明如何建立具有指定名稱的政策,並將政策套用至特定虛擬私有雲網路。這項規則可讓 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.。請務必在結尾處加上英文句點

後續步驟