透過 VPC Service Controls 保護 IAP 的 TCP 轉送功能

本頁面說明如何使用 VPC Service Controls 保護 TCP 轉送的 IAP,以及如何在 VPC Service Controls 範圍內使用 TCP 轉送的 IAP。

事前準備

  1. 參閱「VPC Service Controls 總覽」。

  2. 設定 IAP TCP 轉送的使用方式,無須服務周圍區域。

  3. 使用 VPC Service Controls 建立服務周圍區域。這個 service perimeter 會保護您指定服務的 Google 代管資源。建立服務範圍時,請按照下列步驟操作:

    1. 將包含要透過 IAP 連線的 Compute Engine 執行個體專案,新增至服務範圍內的專案。如果您在 Compute Engine 執行個體上執行 TCP 用戶端的 IAP,請將包含這個執行個體的專案也放入安全範圍。

    2. Identity-Aware Proxy TCP API 新增至服務範圍保護的服務清單。

    如果您建立 service perimeter 時未新增所需專案和服務,請參閱「管理 service perimeter」,瞭解如何更新 service perimeter。

使用 Cloud DNS 設定 DNS 記錄

如果您的 IAP for TCP 用戶端 (可能是 Google Cloud CLI) 並未在任何安全範圍內執行,則可略過這個步驟。另一方面,如果您在安全防護範圍內執行用戶端,則必須為 TCP 的 IAP 設定 DNS 記錄。

TCP 適用的 IAP 使用的網域並非 googleapis.com 的子網域。使用 Cloud DNS 新增 DNS 記錄,確保虛擬私有雲網路正確處理傳送至這些網域的要求。如要進一步瞭解虛擬私有雲路徑,請參閱路徑總覽

請按照下列步驟為網域建立代管區域、新增 DNS 記錄來轉送要求,然後執行交易。您可以使用偏好的終端機搭配 gcloud CLI,也可以使用Cloud Shell,其中已預先安裝 gcloud CLI。

  1. 設定 *.googleapis.com DNS,與 VPC Service Controls 整合時的設定方式相同。

  2. 請收集下列資訊,以便設定 DNS 記錄:

    • PROJECT_ID:託管虛擬私有雲網路的專案 ID。

    • NETWORK_NAME 是您執行 TCP 用戶端 IAP 的虛擬私有雲網路名稱。

    • ZONE_NAME:您要建立的區域名稱。例如:iap-tcp-zone

  3. 為網域 tunnel.cloudproxy.app 建立私人代管區域,讓虛擬私有雲網路可以處理該網域。

    gcloud dns managed-zones create ZONE_NAME \
     --visibility=private \
     --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
     --dns-name=tunnel.cloudproxy.app \
     --description="Description of your managed zone"
  4. 啟動交易。

    gcloud dns record-sets transaction start --zone=ZONE_NAME
  5. 新增下列 DNS A 記錄。這會將流量重新導向至 Google 的受限 VIP (虛擬 IP 位址)。

    gcloud dns record-sets transaction add \
     --name=tunnel.cloudproxy.app. \
     --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
     --zone=ZONE_NAME \
     --ttl=300
  6. 新增下列 DNS CNAME 記錄,指向您剛新增的 A 記錄。這樣一來,系統就會將所有符合網域的流量重新導向至上一個步驟列出的 IP 位址。

    gcloud dns record-sets transaction add \
     --name="*.tunnel.cloudproxy.app." \
     --type=CNAME tunnel.cloudproxy.app. \
     --zone=ZONE_NAME \
     --ttl=300
  7. 執行交易。

    gcloud dns record-sets transaction execute --zone=ZONE_NAME

使用 BIND 設定 DNS

您可以不使用 Cloud DNS,而是 BIND。在這種情況下,請按照使用 BIND 設定 DNS 的指示操作,但請使用 TCP 網域的 IAP,而非一般 googleapis.com 網域。

使用私人 VIP

視您設定 perimeter 和網路的方式而定,您或許可以使用私人 VIP,而非受限制 VIP。如要這麼做,請使用

199.36.153.8 199.36.153.9 199.36.153.10 199.36.153.11

取代

199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7

設定 DNS 記錄的操作說明。

使用共用虛擬私有雲

如果您使用共用 VPC,請務必將主專案和服務專案新增至 service perimeter。詳情請參閱「管理服務安全防護範圍」。

後續步驟