如要集中管理多個虛擬私有雲網路的 Secure Web Proxy 部署作業,可以透過 Private Service Connect 服務附件提供 Secure Web Proxy。
透過 Private Service Connect 部署 Secure Web Proxy 的步驟如下:
- 建立 Secure Web Proxy 政策和規則。
- 建立使用政策的 Secure Web Proxy 執行個體。
- 建立服務連結,將 Secure Web Proxy 執行個體發布為 Private Service Connect 服務。
- 在每個需要連線至 Secure Web Proxy 的虛擬私有雲網路中,建立 Private Service Connect 用戶端端點。
- 將工作負載的外送流量導向區域內的集中式 Secure Web Proxy 執行個體。
事前準備
完成本頁的步驟前,請先完成初始設定步驟。
建立及設定 Secure Web Proxy 執行個體
本指南說明如何建立 Secure Web Proxy 政策和規則,根據工作階段比對流量。
如要瞭解如何選擇性設定 TLS 檢查功能,請參閱「啟用 TLS 檢查功能」。
如要瞭解如何視需要設定應用程式層級比對,請參閱「部署 Secure Web Proxy 執行個體」。
建立 Secure Web Proxy 政策
控制台
前往 Google Cloud 控制台的「SWP Policies」(SWP 政策) 頁面。
按一下「建立政策」。
輸入要建立的政策名稱,例如
myswppolicy。輸入政策說明。
在「區域」清單中,選取要建立網頁 Proxy 政策的區域。
點選「建立」。
Cloud Shell
建立
policy.yaml檔案。description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1更改下列內容:
PROJECT_ID:專案的專案 IDREGION:政策的區域
根據
policy.yaml建立 Secure Web Proxy 政策。gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml \ --location=REGION
在政策中新增 Secure Web Proxy 規則
設定 Secure Web Proxy 規則,允許每個工作負載的輸出流量。
本節說明如何建立規則,允許來自以 Resource Manager 標記或服務帳戶識別的工作負載的流量。如要瞭解如何以其他方式比對流量,請參閱 CEL 比對器語言參考資料。
控制台
前往 Google Cloud 控制台的「SWP Policies」(SWP 政策) 頁面。
按一下政策名稱。
如要新增規則,允許工作負載存取網際網路,請按照下列步驟操作:
- 按一下「新增規則」。
- 輸入優先順序。系統會從最高優先順序到最低優先順序評估規則,其中
0為最高優先順序。 - 輸入名稱。
- 輸入說明。
- 輸入狀態。
- 在「動作」部分選取「允許」。
- 按一下「狀態」,然後選取「已啟用」。
在「工作階段比對」部分,指定工作階段比對條件。
舉例來說,如要允許來自工作負載的流量前往 google.com,且工作負載的 Resource Manager 標記值 ID 為
tagValues/123456,請輸入下列內容:source.matchTag('tagValues/123456') && host() == 'google.com'如要允許使用服務帳戶
account-name@my-project.iam.gserviceaccount.com的工作負載存取 google.com,請輸入下列內容:source.matchServiceAccount('account-name@my-project.iam.gserviceaccount.com') && host() == 'google.com'
點選「建立」。
Cloud Shell
針對要新增的每項規則,執行下列操作:
建立
rule.yaml檔案,並指定工作階段比對條件。如要允許來自特定網域的流量,且該流量來自以 Resource Manager 標記值 ID 識別的工作負載,請建立下列檔案:
name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow traffic based on tag enabled: true priority: PRIORITY basicProfile: ALLOW sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'更改下列內容:
PROJECT_ID:專案的專案 IDREGION:政策的區域RULE_NAME:規則名稱PRIORITY:規則的優先順序。系統會從最高優先順序到最低優先順序評估規則,其中0是最高優先順序TAG_VALUE_ID:要允許流量的工作負載的標記值 IDDOMAIN_NAME:允許流量前往的網域名稱
如要允許使用服務帳戶的工作負載將流量傳輸至特定網域,請建立下列檔案:
name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow traffic based on service account enabled: true priority: PRIORITY basicProfile: ALLOW sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'將
SERVICE_ACCOUNT替換為服務帳戶名稱。
如要使用
rule.yaml中定義的規則更新政策,請使用下列指令:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
部署 Secure Web Proxy 執行個體
在您要用於輸出流量的虛擬私有雲 (VPC) 網路中,以明確轉送模式部署 Secure Web Proxy 執行個體。建立執行個體時,請將其與您在先前步驟中建立的政策和規則建立關聯。
透過 Private Service Connect 服務附件發布 Secure Web Proxy 時,不支援下一個躍點轉送模式。
如要瞭解如何設定執行個體,請參閱「設定網頁 Proxy」。目前不需要完成該頁面的其他步驟。
在中心輻射模型中,將 Secure Web Proxy 部署為 Private Service Connect 服務
本節說明如何使用中樞輻射模型,將 Secure Web Proxy 部署為 Private Service Connect 服務,集中管理輸出流量。
將 Secure Web Proxy 發布為 Private Service Connect 服務
如要將 Secure Web Proxy 發布為服務,請建立 Private Service Connect 子網路和服務連結。子網路和服務連結必須與存取服務連結的 Private Service Connect 端點位於相同區域。
為 Private Service Connect 建立子網路
如要為 Private Service Connect 建立子網路,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下虛擬私有雲網路的名稱,顯示其「VPC network details」(虛擬私有雲網路詳細資料) 頁面。
點選「子網路」。
按一下 [Add subnet] (新增子網路)。在顯示的面板中,執行下列操作:
- 提供「Name」(名稱)。
- 選擇「Region」(區域)。
- 在「Purpose」(用途) 部分,選取「Private Service Connect」(私人服務連線)。
- 在「IP stack type」(IP 堆疊類型),選取「IPv4 (single-stack)」(IPv4 (單一堆疊)) 或「IPv4 and IPv6 (dual-stack)」(IPv4 和 IPv6 (雙重堆疊))。
- 輸入 IPv4 範圍。例如:
10.10.10.0/24。 - 如要建立雙重堆疊子網路,請將「IPv6 存取權類型」設為「內部」。
- 按一下「新增」。
Cloud Shell
執行下列其中一個步驟:
如要建立僅支援 IPv4 的 Private Service Connect 子網路,請執行下列操作:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --range=SUBNET_RANGE \ --purpose=PRIVATE_SERVICE_CONNECT如要建立雙堆疊 Private Service Connect 子網路,請執行下列操作:
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL \ --range=SUBNET_RANGE \ --purpose=PRIVATE_SERVICE_CONNECT
更改下列內容:
SUBNET_NAME:要指派給子網路的名稱。NETWORK_NAME:新子網路的虛擬私有雲名稱。REGION:新子網路的區域。這必須與您發布的服務位於同一個地區。SUBNET_RANGE:子網路要使用的 IPv4 位址範圍,例如10.10.10.0/24。
建立服務連結
如要在中央 (中樞) 虛擬私有雲網路中,將 Secure Web Proxy 發布為服務附件,請按照下列步驟操作。
本節說明如何建立自動接受所有連線的服務附件。如要瞭解明確核准或其他設定選項,請參閱「發布具有明確核准功能的服務」。
控制台
前往 Google Cloud 控制台的「Private Service Connect」頁面。
按一下「Published services」(發布的服務) 分頁標籤。
按一下「發布服務」。
在「目標詳細資料」部分中,選取「Secure Web Proxy」。
選取要發布的 Secure Web Proxy 執行個體。「網路和區域」欄位會填入所選 Secure Web Proxy 執行個體的詳細資料。
在「服務名稱」部分,輸入服務連結的名稱。
為服務選取一或多個 Private Service Connect 子網路。系統會根據所選 Secure Web Proxy 執行個體的虛擬私有雲網路,填入子網路清單。
在「連線偏好設定」部分,選取「自動接受所有連線」。
按一下「新增服務」。
Cloud Shell
使用 gcloud compute service-attachments create 指令。
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
--target-service=SWP_INSTANCE_URI \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=NAT_SUBNET_NAME \
--region=REGION \
--project=PROJECT \
更改下列內容:
SERVICE_ATTACHMENT_NAME:服務附件名稱SWP_INSTANCE_URI:Secure Web Proxy 執行個體的 URI,格式如下://networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAMENAT_SUBNET_NAME:Private Service Connect 子網路的名稱REGION:Secure Web Proxy 部署作業的區域PROJECT:Secure Web Proxy 部署作業的專案
可建立端點
在每個需要透過集中式安全無虞的網路 Proxy 執行個體傳送輸出流量的虛擬私有雲網路和區域中,建立端點。針對要建立的每個端點,重複執行下列步驟。
控制台
前往 Google Cloud 控制台的「Private Service Connect」頁面。
按一下「已連線的端點」分頁標籤。
按一下「連結端點」。
在「目標」中選取「已發布的服務」。
在「目標服務」部分,輸入要連線的服務連結 URI。
服務連結 URI 的格式如下:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME在「端點名稱」部分,輸入要用於端點的名稱。
選取端點的「網路」。
選取端點的「子網路」。
選取端點的 IP 位址。 如需新的 IP 位址,請建立一個:
- 按一下「IP address」(IP 位址) 下拉式選單,然後選取「Create IP address」(建立 IP 位址)。
- 輸入 IP 位址的「名稱」和「說明」(選填)。
- 選取「IP 版本」。
如要建立 IPv4 位址,請選取「自動指派」或「讓我選擇」。
如果選取「自行選擇」,請輸入要使用的「自訂 IP 位址」。
按一下「保留」。
按一下「新增端點」。
Cloud Shell
保留要指派給端點的內部 IP 位址。
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET \ --ip-version=IP_VERSION更改下列內容:
ADDRESS_NAME:要指派給保留 IP 位址的名稱。REGION:端點 IP 位址的區域。 這個區域必須與服務生產者的服務附件所在區域相同。SUBNET:端點 IP 位址的子網路名稱。IP_VERSION:IP 位址的 IP 版本,可以是IPV4或IPV6。預設值為IPV4。如要指定IPV6,IP 位址必須連線至具有內部 IPv6 位址範圍的子網路。
建立轉送規則,將端點連至服務供應商的服務連結。
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT
更改下列內容:
ENDPOINT_NAME:要指派給端點的名稱。REGION:端點的區域。這必須與服務生產者的服務連結所在的區域相同。NETWORK_NAME:端點的虛擬私有雲網路名稱。ADDRESS_NAME:保留位址的名稱。SERVICE_ATTACHMENT:服務生產者服務連結的 URI。例如:projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
將工作負載指向 Private Service Connect 端點
設定 Proxy 環境變數,讓每個工作負載都使用 Private Service Connect 端點的 IP 位址,做為輸出流量的來源。
舉例來說,如果是 Linux 或 macOS 環境中的工作負載,您可以使用指令列暫時設定 HTTP_PROXY 和 HTTPS_PROXY 環境變數:
export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"
更改下列內容:
ENDPOINT_IP_ADDRESS:端點的內部 IP 位址HTTP_PORT:接收 HTTP 流量的通訊埠HTTPS_PORT:接收 HTTPS 流量的通訊埠
如要瞭解如何在工作負載的環境中永久設定 Proxy 變數,請參閱作業系統的說明文件。