本頁面將引導您透過 Chrome Enterprise 進階版安全閘道,保護 SaaS 應用程式。
Chrome Enterprise 進階版安全閘道可做為轉送 Proxy,強制執行零信任存取架構,並提供精細的情境感知控制項,控管 SaaS 應用程式的存取權限。
如何保護 SaaS 應用程式的存取權
以下概略說明安全閘道如何保護 SaaS 應用程式:
- 用戶端瀏覽器設定會透過安全閘道 Proxy 轉送應用程式流量。
- 安全閘道會檢查情境感知存取權政策,授權用戶端 (使用者和裝置) 存取。
- 如果允許用戶端存取,閘道會使用指派給該閘道和 Google Cloud區域的專屬來源 IP 位址,將流量轉送至應用程式。這些指派的 IP 位址會專門保留給您建立的閘道,其他使用者或閘道無法使用。如要控管存取權,您可以將這些專屬來源 IP 位址,加入 SaaS 應用程式的許可清單。
必要的角色
請要求管理員授予下列角色:
Cloud BeyondCorp 管理員 (
roles/beyondcorp.admin):在專案中設定 Chrome Enterprise 進階版Access Context Manager 管理員 (
roles/accesscontextmanager.policyAdmin):可讀取及新增存取層級Service Usage 檢視者 (
roles/serviceusage.serviceUsageViewer):可使用 Google Cloud 控制台
進一步瞭解 Identity and Access Management (IAM) 角色。
必要的 Chrome Enterprise 政策
安全閘道 Proxy 驗證需要 Basic HTTP 驗證配置。如果您為組織設定 Chrome Enterprise 驗證政策,請確認下列政策設定:
AuthSchemes必須包含basic驗證 (未設定政策時預設為啟用)。或者,在 Chrome 157 以上版本中,如果貴組織從AuthSchemes移除basic,您可以設定AllHttpAuthSchemesAllowedForProxies,納入安全閘道 Proxy 端點 (例如via.prod.securegateway.goog:443)。AuthSchemes中的其他值不會影響安全閘道 Proxy 驗證。BasicAuthOverHttpEnabled必須設為0(false,或停用),禁止不安全的 HTTP 連線使用Basic驗證配置。
事前準備
設定安全閘道前,請確認您具備下列條件:
- Chrome Enterprise 進階版授權。
- 使用管理員帳戶存取 Google 管理控制台。
- 無個別控制項的額外 Google 服務已開啟。
- 已為使用者啟用Google Cloud 服務。
已指派帳單帳戶並啟用下列 API 的 Google Cloud 專案:BeyondCorp API
要保護的 SaaS 應用程式。應用程式必須支援
IP allowlisting,才能由安全閘道強制執行安全性檢查。
限制
Chrome Enterprise 進階版安全閘道有下列限制:
- IPv6 連線:Chrome Enterprise Premium 安全閘道不支援使用 IPv6 連線的 SaaS 應用程式。
- 識別資訊提供者做為 SaaS 應用程式:如果使用者透過安全閘道進行驗證時,必須使用相同的 IdP,則不得將識別資訊提供者設為受安全閘道保護的 SaaS 應用程式。
設定殼層環境
如要簡化設定程序並與安全閘道 API 互動,請在工作殼層中定義下列環境變數。
一般參數
PROJECT_ID=
PROJECT_IDAPPLICATION_ID=APPLICATION_IDAPPLICATION_DISPLAY_NAME="APPLICATION_DISPLAY_NAME" HOST_NAME=HOST_NAME更改下列內容:
PROJECT_ID:建立安全閘道的專案 ID。APPLICATION_ID:應用程式 ID,例如github。名稱長度最多 63 個字元,可包含小寫英文字母、數字和連字號,第一個字元必須是英文字母,最後一個字元可以是英文字母或數字。APPLICATION_DISPLAY_NAME:要顯示的人類可讀名稱。HOST_NAME:應用程式的主機名稱。例如:github.com。主機名稱長度上限為 253 個字元,且必須符合下列其中一種格式:- 有效的 IPv4 位址
- 有效的 IPv6 位址
- 有效的 DNS 名稱
- 星號 (*)
- 星號 (*) 後面加上有效的 DNS 名稱
安全閘道參數
SECURITY_GATEWAY_ID=
SECURITY_GATEWAY_IDSECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"更改下列內容:
SECURITY_GATEWAY_ID:安全閘道的 ID。ID 最多可包含 63 個字元,包括小寫英文字母、數字和連字號。第一個字元應為英文字母,最後一個字元可以是英文字母或數字。SECURITY_GATEWAY_DISPLAY_NAME:安全閘道的人類可讀名稱。名稱長度上限為 63 個字元,且只能包含可列印字元。
建立安全閘道
Chrome Enterprise 進階版安全閘道是建立應用程式安全連線的基本要素。系統會分配專屬專案和網路,確保隔離和安全性。
主控台
如要建立安全閘道資源,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「secure gateway」(安全閘道) 頁面。
前往安全閘道 - 選取要建立安全閘道的專案。
- 如要建立安全閘道,請按一下「Create new gateway」(建立新閘道),然後等待閘道建立程序完成。
- 您可以在 Google Cloud 控制台的「通知」部分追蹤進度。
- 建議您先建立 SaaS 輸出中樞,再建立 SaaS 應用程式資源。
hubs旗標代表啟用目標應用程式輸出連線所需的區域資源。每個區域可以設定一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:africa-south1asia-east1asia-east2asia-northeast1asia-northeast2asia-northeast3asia-south1asia-south2asia-southeast1asia-southeast2asia-southeast3australia-southeast2europe-central2europe-north1europe-north2europe-southwest1europe-west1europe-west10europe-west12europe-west2europe-west3europe-west4europe-west6europe-west8europe-west9me-central1me-central2me-west1northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-central2us-east1us-east4us-east5us-east7us-south1us-west1us-west2us-west3us-west4us-west8
- 前往 Google Cloud 控制台的「SaaS Egress Hubs」(SaaS 輸出中樞) 頁面。
前往「SaaS 輸出中樞」頁面 - 選取要建立 SaaS 輸出中樞的專案。
- 如要新增 SaaS 輸出中樞,請按一下「Add SaaS egress hub」(新增 SaaS 輸出中樞)。
- 從下拉式選單中,選取要新增輸出中樞的區域。如要新增輸出中樞,請按一下「Add SaaS egress hub」(新增 SaaS 輸出中樞),新增多個中樞。完成後,按一下「儲存」即可建立輸出中樞。
gcloud
如要建立安全閘道資源,請執行下列指令。針對 --hubs 旗標,請從下列清單中指定一或多個區域。
gcloud beyondcorp security-gateways create SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \ --hubs=us-central1 \ --service-discovery={}
hubs 旗標會設定啟用目標應用程式輸出連線所需的區域資源。每個區域可以有一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:
africa-south1asia-east1asia-east2asia-northeast1asia-northeast2asia-northeast3asia-south1asia-south2asia-southeast1asia-southeast2asia-southeast3australia-southeast2europe-central2europe-north1europe-north2europe-southwest1europe-west1europe-west10europe-west12europe-west2europe-west3europe-west4europe-west6europe-west8europe-west9me-central1me-central2me-west1northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-central2us-east1us-east4us-east5us-east7us-south1us-west1us-west2us-west3us-west4us-west8
REST
如要建立安全閘道資源,請呼叫 Create API 方法,並在要求主體中提供閘道詳細資料。針對 hubs 旗標,請從下列清單中指定一或多個區域。
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} }, "service_discovery": {} }' \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways?security_gateway_id=SECURITY_GATEWAY_ID"
hubs 旗標代表啟用目標應用程式輸出連線所需的區域資源。每個區域可以有一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:
africa-south1asia-east1asia-east2asia-northeast1asia-northeast2asia-northeast3asia-south1asia-south2asia-southeast1asia-southeast2asia-southeast3australia-southeast2europe-central2europe-north1europe-north2europe-southwest1europe-west1europe-west10europe-west12europe-west2europe-west3europe-west4europe-west6europe-west8europe-west9me-central1me-central2me-west1northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-central2us-east1us-east4us-east5us-east7us-south1us-west1us-west2us-west3us-west4us-west8
設定 SaaS 應用程式
建立安全閘道後,您可以設定 SaaS 應用程式,透過安全閘道安全存取。
主控台
如要設定 SaaS 輸出中樞,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「SaaS Egress Hubs」(SaaS 輸出中樞) 頁面。
前往「SaaS 輸出中樞」頁面 - 在「SaaS Egress Hubs」(SaaS 輸出中樞) 頁面,找到列出中樞的表格。針對您要使用的每個區域,複製「Static dedicated egress IPs」(靜態專用輸出 IP) 欄中列出的所有 IP 位址。每個區域提供兩個 IP 位址。
- 將 IP 位址新增至 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,請按照「管理組織允許的 IP 位址」指南操作。
gcloud
如要設定 SaaS 輸出中樞,請按照下列步驟操作:
- 取得安全閘道為各中樞分配的 IP 位址。系統會為區域分配兩個 IP 位址。
- 將 IP 位址新增至 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,請按照這份指南操作:管理組織允許的 IP 位址。
gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global
以下是安全閘道與 hubs 的 GET 回應範例。在範例中,hubs 是在 us-central1 和 us-east1 區域中建立,且回應中傳回的所有 IP 位址都必須在 SaaS 應用程式中允許。
createTime: 'CREATE_TIME' displayName: My secure gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID state: RUNNING updateTime: 'UPDATE_TIME'
REST
如要設定 SaaS 輸出中樞,請按照下列步驟操作:
- 取得安全閘道為各中樞分配的 IP 位址。系統會為區域分配兩個 IP 位址。
- 將 IP 位址新增至 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,請按照這份指南操作:管理組織允許的 IP 位址。
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
以下是安全閘道與 hubs 的 GET 回應範例。在範例中,hubs 是在 us-central1 和 us-east1 區域中建立,且回應中傳回的所有 IP 位址都必須在 SaaS 應用程式中允許。
{ "securityGateways": [ { "name": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My secure gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
建立應用程式資源
以下資訊將引導您完成安全閘道應用程式資源的設定程序。
在 Google Cloud建立安全閘道應用程式資源
Google Cloud 應用程式資源是安全閘道資源的子資源。使用 Google Cloud 控制台或呼叫 Create API,建立應用程式資源。
主控台
如要建立 SaaS 應用程式,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「secure gateway」(安全閘道) 頁面。
前往安全閘道 - 如要建立應用程式,請按一下「Add application」。
- 選取應用程式類型:「公開應用程式」。
- 如果這個安全閘道尚未設定 SaaS 輸出中樞,系統會提示您建立。公開應用程式至少須有一個 SaaS 輸出中樞。如要設定 SaaS 輸出中樞,請按一下「Go to SaaS egress hubs」(前往 SaaS 輸出中樞),然後新增一或多個區域。
- 建立一或多個輸出中樞後,請點選「Next」(下一步)。
- 輸入應用程式詳細資料:
- 應用程式名稱:輸入名稱,例如
GitHub。 - 網域比對器:輸入要透過安全閘道轉送的網域模式,並以半形逗號分隔。請以
domain:port格式加入通訊埠。可使用萬用字元 (*)。例如:github.com:443。
- 應用程式名稱:輸入名稱,例如
- 如要設定 SaaS 應用程式,請按一下「Continue」(繼續)。
- 設定 SaaS 應用程式,允許來自安全閘道的流量:
- 請仔細記下或複製所用區域列出的所有 IP 位址。這些 IP 位址是安全閘道專屬。
- 登入 SaaS 應用程式的管理控制台。
- 前往管理 IP 許可清單的網路設定或安全性設定。
- 將取得的所有 IP 位址加入應用程式的 IP 許可清單。
- 如要新增應用程式,請按一下「Continue」(繼續)。
- 選用:定義存取權政策:選取 Access Context Manager 存取權政策。本指南可略過這個步驟。
- 如要建立應用程式,請儲存設定,然後點選「建立」。
gcloud
如要使用 gcloud 建立 SaaS 應用程式,請執行下列指令:
gcloud beyondcorp security-gateways applications create APPLICATION_ID \ --project=PROJECT_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --location=global \ --display-name="APPLICATION_DISPLAY_NAME" \ --endpoint-matchers="hostname=HOST_NAME,ports=443"
REST
如要使用 REST API 建立 SaaS 應用程式,請執行下列指令:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"APPLICATION_DISPLAY_NAME\", \"endpoint_matchers\": [{hostname: \"HOST_NAME\", ports: 443}] }" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications?application_id=APPLICATION_ID"
設定存取權政策
您可以套用存取權政策,在應用程式層級控管存取權。如未設定存取權政策,系統預設會拒絕存取應用程式。
主控台
為多個應用程式建立政策
如要設定存取權政策,請按照下列步驟操作:
- 如要建立政策,並套用至連結安全閘道的多個應用程式,請前往「政策」頁面。
前往「政策」頁面 - 如要為應用程式新增存取權政策,請按一下「Create Policy」(建立政策)。
- 從下拉式選單中,選取要套用政策的應用程式。
- 將主體新增至政策:
主體可以是使用者、群組、網域或服務帳戶。系統會根據您指派的存取層級,授予或拒絕這些主體的存取權。
- 如要新增主體,請按一下「Add principal」(新增主體)。
- 在「Principal」(主體) 欄位中,輸入使用者、群組、服務帳戶的電子郵件地址,或網域名稱。
- 在「存取層級」下拉式選單中,選取一或多個預先定義的情境感知存取權層級。只有在主體符合所選存取層級的條件時,系統才會授予存取權。
如要新增更多主體,請再次點選「新增主體」,然後重複上述子步驟。
您可以在 Access Context Manager 中建立及管理存取層級。
- 如要將政策套用至應用程式,請按一下「Create Policy」(建立政策)。
修改應用程式層級存取政策
- 如要修改單一應用程式的政策,請前往「應用程式」頁面。
前往「Applications」(應用程式) - 如要找出要編輯的應用程式,請按照下列步驟操作:
- 在「Applications」清單中,搜尋要修改的應用程式。
- 如要查看應用程式詳細資料,請按一下「更多動作」選單 (),然後選取「查看詳細資料」。
- 如要編輯應用程式,請按一下「編輯」。
- 將主體新增至政策:
主體可以是使用者、群組、網域或服務帳戶。系統會根據您指派的存取層級,授予或拒絕這些主體的存取權。
- 如要新增主體,請按一下「Add principal」(新增主體)。
- 在「Principal」(主體) 欄位中,輸入使用者、群組、服務帳戶的電子郵件地址,或網域名稱。
- 在「存取層級」下拉式選單中,選取一或多個預先定義的情境感知存取權層級。只有在主體符合所選存取層級的條件時,系統才會授予存取權。
如要新增更多主體,請再次點選「新增主體」,然後重複上述子步驟。
您可以在 Access Context Manager 中建立及管理存取層級。
- 如要將政策套用至應用程式,請按一下「Save」(儲存)。
gcloud
新增服務探索閘道層級繫結
授予使用者應用程式存取權前,請確認使用者具備安全閘道層級的服務探索權限。
gcloud beyondcorp security-gateways add-iam-policy-binding SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.serviceDiscoveryUser" \ --member=MEMBER
更改下列內容:
SECURITY_GATEWAY_ID:安全閘道的 IDPROJECT_ID:設定安全閘道的專案 IDMEMBER:要指派服務探索角色的使用者、群組或服務帳戶。詳情請參閱「IAM 主體」
新增應用程式層級繫結
gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER
更改下列內容:
APPLICATION_ID:應用程式資源的 IDSECURITY_GATEWAY_ID:安全閘道的 IDPROJECT_ID:設定安全閘道的專案 IDMEMBER:要指派服務探索角色的使用者、群組或服務帳戶。詳情請參閱「IAM 主體」
新增條件式繫結
您也可以新增含有條件的繫結。條件會指定要求,例如使用者的 IP 位址來自特定位置。(存取層級可在組織層級存取權政策或範圍存取權政策中定義)。
下列範例指令只會在來源 IP 位址位於指定存取層級時授予存取權:
gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER \ --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
移除服務探索閘道層級繫結
在安全閘道層級撤銷使用者的服務探索權限。
gcloud beyondcorp security-gateways remove-iam-policy-binding SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.serviceDiscoveryUser" \ --member=MEMBER
更改下列內容:
SECURITY_GATEWAY_ID:安全閘道的 IDPROJECT_ID:設定安全閘道的專案 IDMEMBER:要移除服務探索角色的使用者、群組或服務帳戶。詳情請參閱「IAM 主體」
移除應用程式層級繫結
gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER
更改下列內容:
APPLICATION_ID:應用程式資源的 IDSECURITY_GATEWAY_ID:安全閘道的 IDPROJECT_ID:設定安全閘道的專案 IDMEMBER:要移除服務探索角色的使用者、群組或服務帳戶。詳情請參閱「IAM 主體」
移除條件繫結
您也可以移除含有條件的繫結。條件會指定要求,例如使用者的 IP 位址來自特定位置。(存取層級可在組織層級存取權政策或範圍存取權政策中定義)。
下列範例指令會移除具有指定存取層級的條件式繫結:
gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --role="roles/beyondcorp.sgApplicationUser" \ --member=MEMBER \ --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
REST
安全更新存取權政策
setIamPolicy 指令會將整個現有政策替換為您提供的政策。為避免不小心移除現有權限,建議您使用下列「讀取-修改-寫入」模式。這種模式有助於避免意外移除現有權限。
- Read:將目前的存取權政策儲存至檔案。
- 修改:在本機編輯政策檔案,新增或變更權限。
- 寫入:套用更新後的政策檔案。
設定服務探索閘道層級政策
如要授予服務探索權限,您必須在安全閘道 (而非個別應用程式) 設定存取權政策。這遵循相同的「讀取-修改-寫入」模式。
擷取目前的政策,並儲存至名為 gateway_policy.json 的檔案。
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:getIamPolicy" > gateway_policy.json
接著,在文字編輯器中開啟 gateway_policy.json 檔案,然後將必要的主體新增至 roles/beyondcorp.serviceDiscoveryUser 角色的 members 清單,類似於應用程式層級的修改。
gateway_policy.json 檔案類似於以下範例:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.serviceDiscoveryUser", "members": [ "group:existing-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
您也可以在政策繫結中新增其他類型的成員,例如 serviceAccount、user、group、principal 和 principalSet。詳情請參閱「IAM 主體」。
套用更新後的政策:
jq '{policy: .}' gateway_policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:setIamPolicy"
設定應用程式層級存取權政策
取得目前政策
擷取目前的政策。如果有多位管理員同時進行變更,etag 欄位可避免更新作業衝突。
下列指令會擷取政策,並將政策儲存至名為 policy.json 的檔案。
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json
更改下列內容:
PROJECT_ID:設定安全閘道的專案 IDSECURITY_GATEWAY_ID:安全閘道的 IDAPPLICATION_ID:應用程式資源的 ID
這個指令會建立包含目前政策的 policy.json 檔案。
修改政策檔案
如要授予群組安全閘道的使用權限,請按照下列步驟操作:
- 使用文字編輯器開啟
policy.json檔案。 - 將群組新增至
roles/beyondcorp.securityGatewayUser角色的members清單。
policy.json 檔案類似於以下範例:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:existing-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
如要新增其他群組,請在 members 陣列中新增項目。請在前一個項目後方加上半形逗號。以下範例會新增 new-group@example.com:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:existing-group@example.com", "group:new-group@example.com" ] } ], "etag": "BwXN8_d-bOM=" }
您也可以在政策繫結中新增其他類型的成員,例如 serviceAccount、user、group、principal 和 principalSet。詳情請參閱「IAM 主體」。
套用更新後的政策
編輯並儲存 policy.json 檔案後,請使用 setIamPolicy 指令將檔案套用至資源。這個指令會使用檔案中的 etag,確保您更新正確的版本。
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"
更改下列內容:
PROJECT_ID:設定安全閘道的專案 IDSECURITY_GATEWAY_ID:安全閘道的 IDAPPLICATION_ID:應用程式資源的 ID
新增條件式存取政策
您也可以設定有條件的存取權政策。條件會指定要求,例如使用者的 IP 位址來自特定位置。(存取層級可在組織層級存取權政策或範圍存取權政策中定義)。
下列範例政策僅在來源 IP 位址位於指定存取層級內時,才會授予存取權:
{ "version": 3, "bindings": [ { "role": "roles/beyondcorp.sgApplicationUser", "members": [ "group:group@example.com" ], "condition": { "expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')", "title": "Source IP must be in US" } } ], "etag": "BwXN8_d-bOM=" }
如要套用這項政策,請按照前述步驟操作。
透過情境感知存取權強化安全性
為進一步強化安全性,並確保只有受管理的 Google Chrome 執行個體能透過安全閘道存取網頁應用程式,建議您新增情境感知存取權 (CAA) 規則。這項規則會驗證使用者的 Chrome 設定檔是否受管理,防止未受管理或惡意瀏覽器可能造成的濫用行為。
注意:如要使用這項功能,必須安裝並設定端點驗證擴充功能。如要實作這項功能,請在 Access Context Manager 自訂存取層級中新增條件。以下是可調整的條件範例:
device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
如要進一步瞭解如何設定、檢查及管理這個狀態,請參閱「Chrome 瀏覽器屬性」。
安裝 Chrome Enterprise 進階版擴充功能
Chrome Enterprise 進階版擴充功能是安全閘道不可或缺的一部分,可協助進行驗證。為所有安全閘道使用者安裝擴充功能。如要瞭解如何部署擴充功能,請參閱「查看及設定應用程式和擴充功能」。如要安裝 Chrome Enterprise 進階版擴充功能,請按照下列步驟操作:
- 前往 Google 管理控制台。
- 依序按一下「Chrome 瀏覽器」>「應用程式和擴充功能」。
- 按一下「使用者和瀏覽器」分頁。
- 如要新增 Chrome 擴充功能,請按一下「+」按鈕,然後選取「使用 ID 新增 Chrome 應用程式或擴充功能」。
使用下列 ID 搜尋 Secure Enterprise Browser 擴充功能,然後將安裝政策設為「強制安裝」,套用至機構單位或群組中的所有使用者:
ekajlcmdfcigmdbphhifahdfjbkciflj
按一下已安裝的擴充功能,然後在「Policy for extensions」欄位中輸入下列 JSON 值:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" }, "serviceDiscovery": { "routes": {} } } } }
替換下列內容:
PROJECT_ID:設定安全閘道的專案 IDSECURITY_GATEWAY_ID:安全閘道的 ID
如要儲存設定,請按一下「儲存」。
舊版 PAC 檔案設定
啟用服務探索功能後,Chrome 瀏覽器用戶端會自動偵測流量,並透過安全閘道將流量轉送至設定的應用程式,您不必再使用 PAC 檔案手動設定轉送。
如果安全閘道未啟用服務探索功能,則表示您採用舊版設定。您必須設定 PAC 檔案,才能控管 Chrome 瀏覽器用戶端的轉送作業。
如要確認是否採用舊版設定,請使用下列指令,查看是否已啟用服務探索:
gcloud
gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global | grep -i "serviceDiscovery"
REST
curl --silent \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" | grep -i "serviceDiscovery"
如果指令未傳回任何輸出內容,表示閘道使用的是舊版設定。如果閘道使用舊版設定,系統會透過代管的 PAC 檔案處理轉送作業。
步驟 1:建立及託管 PAC 檔案
使用下列 JavaScript 建立名為
pac_config.js的檔案,並將HOST_NAME替換為應用程式的網域 (例如myapp.example.com):function FindProxyForURL(url, host) { const PROXY = "HTTPS via.prod.securegateway.goog:443"; const sites = ["HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
將 PAC 檔案上傳至代管服務,例如 Cloud Storage bucket。
- 確認檔案可公開下載。
- 將 HTTP 標頭
Cache-Control設為no-cache,讓瀏覽器一律擷取最新的路由規則。
複製上傳 PAC 檔案的公開網址。
步驟 2:在 Google 管理控制台中套用 PAC 檔案
- 前往 Google 管理控制台。
- 依序前往「裝置」 >「Chrome」 >「設定」。
- 選取組織單位或群組,然後按一下「Proxy 模式」。
- 在「Proxy 模式」下方,選取「一律使用以下指定的 Proxy 自動設定」。
- 在指定欄位中輸入託管 PAC 檔案的公開網址。
- 按一下 [儲存]。
步驟 3:設定 Chrome Enterprise 進階版擴充功能
擴充功能必須處理驗證。這項擴充功能政策與標準設定不同,因為不含 serviceDiscovery 區塊。
- 在 Google 管理控制台中,依序前往 「Chrome 瀏覽器」 >「應用程式和擴充功能」。
- 前往「使用者和瀏覽器」分頁,確認已新增並強制安裝 Secure Enterprise Browser 擴充功能 (
ekajlcmdfcigmdbphhifahdfjbkciflj)。 按一下擴充功能,然後在「擴充功能政策」欄位中輸入下列 JSON 值:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" } } } }
按一下 [儲存]。
轉換至服務探索設定
如要將舊版安全閘道從 PAC 檔案設定轉換為較新的服務探索設定,您必須手動啟用這項功能並更新設定。
在安全閘道啟用服務探索:更新現有閘道,啟用服務探索。
gcloud
gcloud beyondcorp security-gateways update SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global \ --service-discovery={}
REST
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "service_discovery": {} }' \ "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID?updateMask=service_discovery"
設定閘道層級存取權政策:在閘道層級授予使用者
roles/beyondcorp.serviceDiscoveryUser角色,讓他們可以使用服務探索功能。按照「新增服務探索閘道層級繫結」一節的指示操作。更新 Chrome Enterprise 進階版擴充功能設定:按照「安裝 Chrome Enterprise 進階版擴充功能」一節的指示更新擴充功能政策。新的 JSON 設定必須包含
"serviceDiscovery": { "routes": {} }區塊。移除舊版 PAC 檔案:服務探索功能啟用後,就不再需要舊版 PAC 檔案。
- 在 Google 管理控制台中,依序前往「裝置」>「Chrome」>「設定」>「使用者和瀏覽器設定」>「網路」。
- 找出「Proxy 模式」設定。
- 移除 Proxy 自動設定 (PAC) 網址,或將設定從「一律使用以下指定的 Proxy 自動設定」切換為適合您網路的模式,例如「允許使用者自行設定」。
- 按一下 [儲存]。
使用者體驗
設定完成後,使用者存取受保護的 SaaS 應用程式時,系統會根據套用至應用程式的存取權政策,授予或拒絕存取權。
在 Chrome 中存取應用程式
必須安裝 Chrome Enterprise 進階版擴充功能,才能透過安全閘道導引流量。擴充功能會處理使用者與安全閘道之間的驗證。系統會透過網域政策自動安裝擴充功能。
使用者存取您設定的 SaaS 應用程式時,流量會通過安全閘道,檢查是否符合存取權政策。如果使用者通過存取權政策檢查,就會獲得應用程式存取權。
如果授權政策拒絕瀏覽器存取應用程式,使用者會收到 Access denied 訊息。