本頁說明如何建立服務範圍。
事前準備
瞭解如何設定服務範圍。
進一步瞭解服務範圍中的 VPC 網路管理。
如要在建立範圍時設定受保護服務的外部存取權,請先建立一或多個存取層級,再建立範圍。
建立服務範圍
本節說明如何建立服務範圍、在範圍中新增專案或 VPC 網路,以及保護服務。
建立服務範圍時,您可以選擇允許範圍外存取受保護的服務,並指定範圍內的其他服務和使用者可存取哪些服務。您也可以在建立安全防護範圍後,再設定這些選項。
建立或更新服務範圍後,變更最多可能需要 30 分鐘才會生效。在這段期間,周邊可能會封鎖要求,並顯示下列錯誤訊息:Error 403: Request is prohibited by organization's policy.
控制台
在 Google Cloud 控制台導覽選單中,依序點選「Security」(安全性) 和「VPC Service Controls」(VPC 服務控制項)。
如果系統提示您選取機構、資料夾或專案,請依提示選取。
選取現有存取權政策或建立新的存取權政策。請確認存取權政策範圍包含您要新增至範圍的所有專案和 VPC 網路。
在「VPC Service Controls」頁面中,選取範圍強制執行模式。系統預設會選取「強制執行模式」。如要建立模擬測試範圍,請按一下「模擬測試模式」。
強制執行的 perimeter 會主動禁止存取受保護的服務。 模擬範圍會記錄範圍違規情形,就好像服務受到保護一樣,但不會禁止存取這些服務。如要進一步瞭解強制執行和模擬執行模式,請參閱服務邊界。
按一下「新增範圍」。
在「建立服務範圍」頁面的「標題」欄位中,輸入範圍的名稱。
範圍名稱的長度上限為 50 個字元,開頭須為英文字母,且只能包含 ASCII 拉丁字母 (a-z、A-Z)、數字 (0-9) 或底線 (
_
)。範圍名稱會區分大小寫,且在存取權政策中必須是專屬名稱。選用:在「說明」欄位中,輸入安全範圍的說明。
在「Perimeter type」(範圍類型) 部分,選取「Regular」(一般)。
在「強制執行模式」部分,選取周邊強制執行模式。可用選項為「模擬測試」和「強制執行」。
按一下「繼續」。
如要新增您想在該範圍內保護的專案或虛擬私有雲網路,請按照下列步驟操作:
如要將專案新增至範圍,請按一下「新增專案」。
在「新增專案」窗格中,選取要保護的專案。
按一下「新增所選專案」。新增的專案會顯示在「專案」區段中。
如要將虛擬私有雲網路新增至範圍,請按一下「新增網路」。
在專案清單中,按一下包含虛擬私有雲網路的專案。
在「新增虛擬私有雲網路」窗格中,選取要保護的虛擬私有雲網路。
按一下「新增所選網路」。新增的網路會顯示在「虛擬私有雲網路」部分。
按一下「繼續」。
如要選取要在範圍內保護的服務,請按照下列步驟操作:
在「受限制的服務」窗格中,按一下「新增服務」。
在「新增服務」窗格中,選取要保護的服務。
按一下「新增所選服務」。
按一下「繼續」。
選用:如要定義可從範圍內網路端點存取的服務,請在「VPC accessible services」(可存取的虛擬私有雲服務) 窗格中,選取其中一個可用選項:
所有服務:這個選項會允許所有 Google Cloud 服務。
沒有服務:這個選項不允許任何 Google Cloud 服務。
所有受限制的服務:這個選項只允許您在這個範圍內保護的 Google Cloud 服務 。
選取的服務:這個選項只允許您選取的 Google Cloud 服務。
按一下「新增服務」。
在「新增服務」窗格中,選取要允許的服務。
按一下「新增所選服務」。
如要將範圍保護的所有受限制服務一併納入所選服務,請按一下「包括所有受限制的服務」切換鈕,將其設為開啟。
按一下「繼續」。
您也可以在建立服務範圍後新增可存取的服務。
詳情請參閱「可透過虛擬私有雲存取的服務」。
選用:如要使用存取層級,允許從範圍外部存取受保護的資源,請按照下列步驟操作:
在「存取層級」窗格中,按一下「新增存取層級」。
您也可以在建立安全防護範圍後新增存取層級。
找出要套用到服務範圍的存取層級,然後勾選對應的核取方塊。
按一下「新增所選存取層級」。
按一下「繼續」。
如要允許範圍外的 API 用戶端存取範圍內的資源,請按照下列步驟操作:
在「Ingress rules」(輸入規則) 窗格中,按一下「Add an ingress rule」(新增輸入規則)。
在「Title」欄位中,輸入 Ingress 規則的標題。
在「來源」部分,指定需要存取權的範圍外來源。您可以指定專案、存取層級和 VPC 網路做為來源。
在「To」部分,指定來源可存取的邊界內資源。
按一下「繼續」。
如需 Ingress 規則屬性清單,請參閱「Ingress 規則參考資料」。
如要允許範圍內的 API 用戶端或資源存取範圍外的資源,請按照下列步驟操作:
在「Egress rules」(輸出規則) 窗格中,按一下「Add an egress rule」(新增輸出規則)。
在「Title」(標題) 欄位中,輸入輸出規則的標題。
在「From」部分,指定需要存取權的範圍內來源。
在「To」(目的地) 區段中,指定來源可存取的範圍外資源。
如需輸出規則屬性清單,請參閱「輸出規則參考資料」。
點選「建立」。
gcloud
如要在強制執行模式下建立新範圍,請使用 gcloud access-context-manager perimeters create
指令。
gcloud access-context-manager perimeters create NAME \ --title=TITLE \ --resources=RESOURCES \ --restricted-services=RESTRICTED-SERVICES \ --ingress-policies=INGRESS-FILENAME.yaml \ --egress-policies=EGRESS-FILENAME.yaml \ [--access-levels=LEVELS] \ [--enable-vpc-accessible-services] \ [--vpc-allowed-services=ACCESSIBLE-SERVICES] \ --policy=POLICY_NAME
如要以模擬執行模式建立新重疊範圍,請使用 gcloud access-context-manager perimeters dry-run create
指令。
gcloud access-context-manager perimeters dry-run create NAME \ --perimeter-title=TITLE \ --perimeter-type=TYPE \ --perimeter-resources=RESOURCES \ --perimeter-restricted-services=RESTRICTED-SERVICES \ --perimeter-ingress-policies=INGRESS-FILENAME.yaml \ --perimeter-egress-policies=EGRESS-FILENAME.yaml \ [--perimeter-access-levels=LEVELS] \ [--perimeter-enable-vpc-accessible-services] \ [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \ --policy=POLICY_NAME
更改下列內容:
NAME 是範圍的名稱。
範圍名稱的長度上限為 50 個字元,開頭須為英文字母,且只能包含 ASCII 拉丁字母 (a-z、A-Z)、數字 (0-9) 或底線 (
_
)。範圍名稱會區分大小寫,且在存取權政策中必須是專屬名稱。TITLE 是指範圍的可理解文字標題。
TYPE 是範圍類型。例如「一般」或「橋接」周邊裝置。
RESOURCES 是以半形逗號分隔的清單,包含一或多個專案編號或虛擬私有雲網路名稱。例如:
projects/12345
或//compute.googleapis.com/projects/my-project/global/networks/vpc1
。 只能選取專案和虛擬私有雲網路。專案格式:projects/project_number
。 虛擬私有雲格式://compute.googleapis.com/projects/project-id/global/networks/network_name
。 如果指定專案,則僅支援專案編號。 您無法使用專案名稱或 ID。RESTRICTED-SERVICES 是以逗號分隔的一或多項服務清單。例如:
storage.googleapis.com
或storage.googleapis.com,bigquery.googleapis.com
。INGRESS-FILENAME 是 JSON 或 YAML 檔案,內含來源、身分、專案和服務屬性的值。如需 Ingress 規則屬性清單,請參閱 Ingress 規則參考資料。
EGRESS-FILENAME 是 JSON 或 YAML 檔案,其中包含身分、專案和服務屬性的值。如需輸出規則屬性清單,請參閱「輸出規則參考資料」。
POLICY_NAME 是指您機構的存取權政策以數字表示的名稱。例如,
330193482019
。如果尚未設定預設存取權政策,則只需要加入政策名稱。
其他選項:
只有在建立服務範圍時要新增存取層級,才需要提供
--access-levels
或--perimeter-access-levels
。LEVELS 是以逗號分隔的清單,內含您要套用至服務範圍的一或多個存取層級。您也可以在建立安全防護範圍後新增存取層級。
--enable-vpc-accessible-services
和--vpc-allowed-services
,或--perimeter-enable-vpc-accessible-services
和--perimeter-vpc-allowed-services
僅在您想在建立範圍時新增可透過虛擬私有雲存取的服務時才需要。ACCESSIBLE-SERVICES 是以半形逗號分隔的清單,列出您要允許周邊內部網路存取的一或多項服務。您將無法存取未列於這份清單的任何服務。只有在設定服務範圍時保護服務,才能讓服務可供存取。
如要快速納入範圍保護的所有服務,請在清單中指定
RESTRICTED-SERVICES
ACCESSIBLE-SERVICES。例如:--perimeter-vpc-allowed-services=RESTRICTED-SERVICES
。您也可以在建立範圍後定義可存取虛擬私有雲的服務。
舉例來說,下列指令會建立名為 ProdPerimeter
的新試營運模式範圍,其中包含專案 example-project
和 example-project2
,並限制 Cloud Storage 和 BigQuery API。
gcloud access-context-manager perimeters \ dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \ --perimeter-type="regular" \ --perimeter-resources=projects/12345,projects/67890 \ --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \ --perimeter-ingress-policies=ingress.yaml \ --perimeter-egress-policies=egress.yaml \ --policy=330193482019
API
如要建立服務範圍,請呼叫
accessPolicies.servicePerimeters.create
。
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters
其中:
- POLICY_NAME 是指您機構的存取權政策以數字表示的名稱。例如:
330193482019
。
要求主體
要求主體必須包含定義服務周邊的 ServicePerimeter
資源。
針對 ServicePerimeter
資源,請將 perimeterType
指定為 PERIMETER_TYPE_REGULAR
。
模擬測試模式
建議的範圍必須包含 spec
,且 useExplicitDryRunSpec
設為 true。
回應主體
如果成功,呼叫的回應主體會包含 Operation
資源,其中提供有關 POST
作業的詳細資料。
後續步驟
- 瞭解如何使用模擬測試模式,測試服務範圍的影響。
- 瞭解如何管理現有服務範圍。
- 瞭解如何排解常見的 VPC Service Controls 問題。
- 完成這項 codelab,瞭解如何使用 VPC Service Controls 保護專案及其服務。
- 瞭解如何設定及查看違規事項資訊主頁。