如要將 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 服務。
- 在需要連線至安全網頁 Proxy 的每個 VPC 網路中,建立 Private Service Connect 用戶端端點。
- 將工作負載輸出流量導向區域內的集中式 Secure Web Proxy 例項。
事前準備
請先完成初始設定步驟,再完成本頁中的步驟。
建立及設定 Secure Web Proxy 執行個體
本指南說明如何建立 Secure Web Proxy 政策和規則,以便根據工作階段比對流量。
如要瞭解如何選擇性設定 TLS 檢查功能,請參閱「啟用 TLS 檢查功能」。
如要瞭解如何選擇性設定應用程式層級比對,請參閱「部署 Secure Web Proxy 執行個體」。
建立 Secure Web Proxy 政策
控制台
在 Google Cloud 控制台中,前往「SWP Policies」頁面。
按一下「建立政策」。
輸入要建立的政策名稱,例如
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」頁面。
按一下政策名稱。
如要新增規則,允許工作負載存取網際網路,請按照下列步驟操作:
- 按一下「新增規則」。
- 輸入優先順序。系統會從最高優先順序到最低優先順序評估規則,其中
0
為最高優先順序。 - 輸入名稱。
- 輸入說明。
- 輸入狀態。
- 在「Action」中,選取「Allow」。
- 按一下「狀態」,然後選取「已啟用」。
在「工作階段比對」部分,指定工作階段比對條件。
舉例來說,如要允許工作負載透過 Resource Manager 代碼值 ID
tagValues/123456
將流量傳送至 google.com,請輸入以下內容: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) 網路中,以明確轉送模式部署安全 Web Proxy 執行個體。建立執行個體時,請將其與您在先前步驟中建立的政策和規則建立關聯。
使用 Private Service Connect 服務連結發布 Secure Web Proxy 時,不支援下一個躍點轉送模式。
如要瞭解如何設定執行個體,請參閱「設定網路 Proxy」。您目前不需要完成該頁面上的其他步驟。
在樞紐和輻條模型中,將 Secure Web Proxy 部署為 Private Service Connect 服務
本節說明如何部署安全 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] (地區)。
- 在「用途」部分中,選取「Private Service Connect」。
- 針對「IP 堆疊類型」,選取「IPv4 (單一堆疊)」或「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
:新子網路的 VPC 名稱。REGION
:新子網路的地區。此地區必須與您要發布的服務位於相同區域。SUBNET_RANGE
:用於子網路的 IPv4 位址範圍,例如10.10.10.0/24
。
建立服務附件
如要將 Secure Web Proxy 發布為中央 (中樞) 虛擬私有雲網路中的服務附件,請執行下列步驟。
本節說明如何建立可自動接受所有連線的服務附件。如要瞭解明確核准或其他設定選項,請參閱「發布具有明確核准功能的服務」。
主控台
前往 Google Cloud 控制台的「Private Service Connect」頁面。
按一下「已發布的服務」分頁標籤。
按一下「發布服務」。
在「目標詳細資料」部分中,選取「Secure Web Proxy」。
選取要發布的 Secure Web Proxy 執行個體。「網路和區域」欄位會填入所選 Secure Web Proxy 執行個體的詳細資料。
在「服務名稱」部分,輸入服務連結的名稱。
為服務選取一或多個 Private Service Connect 子網路。系統會在清單中填入所選安全網頁 Proxy 執行個體 VPC 網路中的子網路。
在「連線偏好設定」部分,選取「自動接受所有連線」。
按一下「新增服務」。
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_NAME
NAT_SUBNET_NAME
:Private Service Connect 子網路的名稱REGION
:Secure Web Proxy 部署的地區PROJECT
:安全網路 Proxy 部署專案
可建立端點
在每個需要透過集中式安全無虞的網路 Proxy 例項傳送傳出流量的 VPC 網路和區域中,建立端點。針對每個需要建立的端點重複執行下列步驟。
主控台
前往 Google Cloud 控制台的「Private Service Connect」頁面。
按一下「已連結的端點」分頁。
按一下「連結端點」。
在「Target」(目標) 中,選取「Published service」。
在「目標服務」中,輸入要連結的服務連結 URI。
服務連結 URI 的格式如下:
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
在「端點名稱」中,輸入要用於端點的名稱。
為端點選取「網路」。
為端點選取「子網路」。
為端點選取IP 位址。如需新的 IP 位址,請按照下列步驟操作:
- 按一下「IP 位址」下拉式選單,然後選取「建立 IP 位址」。
- 輸入 IP 位址的「名稱」和「說明」(選填)。
- 選取「IP 版本」。
如果您要建立 IPv4 位址,請選取「自動指派」或「讓我選擇」。
如果您選取「Let me choose」(自行選擇),請輸入要使用的自訂 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
:端點的 VPC 網路名稱。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 變數,請參閱作業系統的說明文件。