這個頁面說明如何管理回應政策和回應政策規則。
您可在 Cloud DNS 私人區域建立回應政策,根據回應政策規則修改解析器行為。不過請注意,每個網路只能附加一項回應政策。
您可以在單一回應政策中建立多項規則,每項規則可執行下列其中一項操作:
- 提供特定資源記錄,藉此變更所選查詢名稱 (包括萬用字元) 的結果。
- 觸發略過回應政策的 passthru 行為,並排除原本會符合比對的名稱。舉例來說,如果是萬用字元回應,這可讓私人 DNS 查詢比對作業繼續進行,如同從未查詢到萬用字元。
想瞭解 VPC Service Controls 如何協助客戶強制控管私人虛擬私有雲網路的 API 存取權,請參閱「設定連至 Google API 和服務的私人連線」一文。
管理回應政策
建立回應政策
建立回應政策的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按「Response policy zones」(回應政策區域) 分頁標籤。
點按「Create response policy」(建立回應政策)。
輸入要建立的回應政策名稱,例如
myresponsepolicy。輸入回應政策的說明,例如
My new response policy。從「Networks」(網路) 下拉式選單中,選取要與回應政策建立關聯的一或多個網路。
點按「Create」(建立)。
建立好回應政策區域後,您可以在當中建立回應政策規則。如需操作說明,請參閱「建立回應政策規則」一節。
gcloud
請執行 gcloud dns response-policies create 指令:
gcloud dns response-policies create RESPONSE_POLICY_NAME \
--networks=NETWORK \
[--description=DESCRIPTION]
更改下列內容:
RESPONSE_POLICY_NAME:您要建立的回應政策名稱或 ID,例如myresponsepolicyNETWORK:以半形逗號分隔的網路名稱清單,且這些網路名稱要與回應政策建立關聯,例如network1, network2DESCRIPTION:回應政策的說明,例如My new response policy
API
請使用 responsePolicies.create 方法傳送 POST 要求:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies
將 PROJECT_ID 替換成您要在其中建立回應政策的專案名稱或 ID。
查看回應政策
如要查看特定專案中的所有回應政策清單,或查看特定回應政策的說明,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按「Response policy zones」(回應政策區域) 分頁標籤。
「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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:要查看說明的回應政策名稱或 ID,例如myresponsepolicy
更新回應政策
更新回應政策的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
按一下要編輯的回應政策。您也可以點按回應政策名稱列中的「更多」圖示 more_vert。
點按「Edit response policy」(編輯回應政策)。
進行必要更新。
按一下「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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要更新的回應政策名稱或 ID,例如myresponsepolicy
如要更新回應政策,請使用
responsePolicies.update方法傳送UPDATE要求:UPDATE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/responsePolicies/RESPONSE_POLICY_NAME
更改下列內容:
PROJECT_ID:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要更新的回應政策名稱或 ID,例如myresponsepolicy
刪除回應政策
刪除回應政策的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按回應政策名稱列中的「更多」圖示 more_vert。
點按「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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要刪除的回應政策名稱或 ID,例如myresponsepolicy
管理回應政策規則
網站的 DNS 回應政策包含 DNS 解析器在查詢期間參照的規則。如果回應政策中的規則會影響傳入的查詢,系統就會處理該規則,否則查詢會照常進行。
建立回應政策規則
建立回應政策規則的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按「Response policy zones」(回應政策區域) 分頁標籤。
在回應政策區域清單中,按一下要建立規則的回應政策區域。
點按「Create response policy rule」(建立回應政策規則)。
輸入要建立的回應政策規則名稱,例如
myresponsepolicyrule。在「Selector」(選取器) 下拉式選單中,選擇要套用這項規則的選取器類型。
輸入要套用規則的 DNS 名稱 (萬用字元或完整名稱),例如
www.googleapis.com。選擇回應政策規則的動作。舉例來說,如要變更回應政策的行為,請選擇「Behavior」(行為),否則請選擇「Local data」(本機資料)。
如果選擇「Behavior」(行為),請從下拉式選單中選取要指定規則執行的行為。
如果選擇「Local data」(本機資料),則必須新增資源記錄集。如需新增資源記錄集的操作說明,請參閱這篇文章。
點按「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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_POLICY_NAME:回應政策的名稱,例如myresponsepolicyDNS_NAME:DNS 或網域名稱,例如www.googleapis.comTTL:回應政策的存留時間,例如21600RRTYPE:資源記錄類型,例如ARRDATA:資源記錄資料,例如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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_POLICY_NAME:回應政策的名稱,例如myresponsepolicyDNS_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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要建立規則的回應政策名稱或 ID,例如myresponsepolicy
查看回應政策規則
如要查看特定回應政策中所有回應政策規則的清單,或查看特定回應政策規則的說明,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
在「Response policy zones」(回應政策區域) 分頁中,點按要查看相關聯規則的回應政策名稱。「Response policy details」(回應政策詳細資料) 頁面會列出與回應政策相關聯的規則。
如要查看特定回應政策規則的詳細資料,請按一下規則名稱。您也可以點按回應政策規則名稱列中的「更多」圖示 more_vert。
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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要建立規則的回應政策名稱或 ID,例如myresponsepolicyRESPONSE_POLICY_RULE:您要查看詳細資料的回應政策規則
更新回應政策規則
編輯或更新回應政策規則的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按要編輯規則的回應政策名稱。
點按要編輯的回應政策規則名稱。
在「Response policy rule details」(回應政策規則詳細資料) 頁面中,點按要編輯的規則名稱。
進行必要更新。
按一下「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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要更新規則的回應政策名稱或 ID,例如myresponsepolicyRESPONSE_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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要更新規則的回應政策名稱或 ID,例如myresponsepolicyRESPONSE_POLICY_RULE:您要更新的回應政策規則
刪除回應政策規則
刪除回應政策規則的步驟如下。
控制台
前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。
點按要編輯規則的回應政策名稱。
點按要刪除的回應政策規則名稱。
在「Response policy rule details」(回應政策規則詳細資料) 頁面中,點按回應政策規則名稱列中的「更多」圖示 more_vert。
按一下「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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_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:您建立回應政策的專案 IDRESPONSE_POLICY_NAME:您要從中刪除規則的回應政策名稱或 ID,例如myresponsepolicyRESPONSE_POLICY_RULE:您要刪除的回應政策規則
用途
本節提供範例用途,說明如何設定回應政策規則。
將特定名稱導向受限的 VIP 位址
您可以設定回應政策,為每個區域提供本機 CNAME 資料,將 Google API 要求轉譯為受限 Google API。未指定的名稱會繼續使用一般 DNS 解析。
舉例來說,您可以在區域中為 pubsub.googleapis.com 建立具有本機 CNAME 資料的回應政策,將 Google API 要求轉譯為 restricted.googleapis.com。同時,未指定的 www.googleapis.com 會繼續透過一般 DNS 解析。
下列範例設定說明如何建立政策,並套用至特定虛擬私有雲網路。
gcloud
執行
gcloud dns response-policies create指令來建立回應政策:gcloud dns response-policies create RESPONSE_POLICY_NAME \ --networks=NETWORK \ --description=DESCRIPTION更改下列內容:
RESPONSE_POLICY_NAME:您要建立的回應政策名稱或 ID,例如myresponsepolicyNETWORK:以半形逗號分隔的網路名稱清單,以便與回應政策建立關聯,例如network1,network2DESCRIPTION:回應政策的說明,例如My new response policy
如果您只使用
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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_POLICY_NAME:回應政策的名稱,例如myresponsepolicyDNS_NAME:您要建立規則的 DNS 名稱,例如pubsub.googleapis.com.。請務必在結尾處加上英文句點
如果您同時使用 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
依網址建立回應政策:
{ 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:您要建立回應政策的網址
如果您只使用
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:您要建立的規則名稱,例如pubsubDNS_NAME:您要建立規則的 DNS 名稱,例如pubsub.googleapis.com.。請務必在結尾處加上英文句點
如果您同時使用 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:您要建立的規則名稱,例如pubsubDNS_NAME:您要建立規則的 DNS 名稱,例如pubsub.googleapis.com.。請務必在結尾處加上英文句點
將所有名稱 (部分名稱除外) 導向受限的 VIP 位址
您可以設定規則,從涵蓋整個網域或大型 IP 位址模塊的政策規則中排除部分 DNS 回應。這個概念稱為「passthru 行為」。使用 passthru 行為,即可允許名稱通過萬用字元名稱,即使這些名稱不支援服務控制項也沒問題。
舉例來說,您可以允許 www.googleapis.com 通過範例 *.googleapis.com 中的萬用字元名稱。www 的完全比對優先順序高於萬用字元 *。
下列範例設定說明如何建立具有指定名稱的政策,並將政策套用至特定虛擬私有雲網路。這項規則可讓 www.googleapis.com 略過萬用字元 *.googleapis.com。
gcloud
執行
gcloud dns response-policies create指令來建立回應政策:gcloud dns response-policies create RESPONSE_POLICY_NAME \ --networks=NETWORK \ --description=DESCRIPTION更改下列內容:
RESPONSE_POLICY_NAME:您要建立的回應政策名稱或 ID,例如myresponsepolicyNETWORK:以半形逗號分隔的網路名稱清單,以便與回應政策建立關聯,例如network1,network2DESCRIPTION:回應政策的說明,例如My new response policy
如要將略過規則新增至政策,請執行
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:您要建立的回應政策規則名稱,例如myresponsepolicyruleRESPONSE_POLICY_NAME:回應政策的名稱,例如myresponsepolicyDNS_NAME:DNS 或網域名稱,例如www.googleapis.com
API
建立回應政策:
{ kind: "dns#responsePolicy", response_policy_name: RESPONSE_POLICY_NAME, description: RESPONSE_POLICY_DESCRIPTION, networks: [ { network_url: URL_TO_NETWORK; } ] }更改下列內容:
RESPONSE_POLICY_NAME:回應政策的名稱,例如my-response-policyRESPONSE_POLICY_DESCRIPTION:回應政策的說明,例如my response policyURL_TO_NETWORK:您要建立回應政策的網址
為政策新增規則:
{ 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:您要建立的規則名稱,例如googleapisDNS_NAME:您要建立規則的萬用字元 DNS 名稱,例如*.googleapis.com.。請務必在結尾處加上英文句點
後續步驟
- 如要使用代管區域,請參閱「建立、修改及刪除區域」一文。
- 如要瞭解使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱這篇文章。
- 如要查看 Cloud DNS 總覽,請參閱這篇文章。