安全存取軟體式服務 (SaaS) 應用程式

本頁面將逐步說明如何透過 Chrome Enterprise 進階版安全閘道,保護 SaaS 應用程式。

Chrome Enterprise 進階版安全閘道可做為轉送 Proxy,強制執行零信任存取架構,並提供精細的情境感知控制機制,控管使用者對 SaaS 應用程式的存取權。

保護軟體即服務 (SaaS) 應用程式存取權的運作方式

以下概略說明安全閘道如何保護 SaaS 應用程式:

  1. 用戶端瀏覽器設定會將應用程式流量轉送至安全的閘道 Proxy。
  2. 安全閘道會檢查情境感知存取權政策,授權用戶端 (使用者和裝置) 存取權。
  3. 如果允許用戶端存取,閘道會使用指派給該閘道和區域的專屬來源 IP 位址,將流量轉送至應用程式。 Google Cloud這些指派的 IP 位址專供您建立的閘道使用,其他使用者或閘道無法使用。如要控管存取權,請在 SaaS 應用程式的許可清單中加入這些專屬來源 IP 位址。

必要的角色

請管理員授予下列角色:

進一步瞭解 Identity and Access Management (IAM) 角色

事前準備

設定安全閘道前,請確認您具備下列項目:

限制

Chrome Enterprise 進階版安全閘道有以下限制:

  • IPv6 連線:Chrome Enterprise 進階版 安全閘道不支援使用 IPv6 連線的 SaaS 應用程式。
  • 識別資訊提供者是 SaaS 應用程式:如果使用者透過安全閘道驗證身分時,需要使用同一個 IdP,則不得將識別資訊提供者設定為受安全閘道保護的 SaaS 應用程式。

設定殼層環境

如要簡化設定程序並與安全閘道 API 互動,請在工作殼層中定義下列環境變數。

  • 一般參數

    PROJECT_ID=PROJECT_ID
    APPLICATION_ID=APPLICATION_ID
    APPLICATION_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_ID
    SECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"

    更改下列內容:

    • SECURITY_GATEWAY_ID:安全閘道的 ID。ID 最多可包含 63 個字元,且只能包含小寫英文字母、數字和連字號。開頭須為英文字母,結尾可以是英文字母或數字。
    • SECURITY_GATEWAY_DISPLAY_NAME:安全閘道的人類可讀名稱。名稱長度上限為 63 個字元,且只能包含可列印的字元。

建立安全閘道

Chrome Enterprise 進階版安全閘道是建立應用程式安全連線的基本要素。並分配專屬專案和網路,提供隔離和安全保障。

主控台

如要建立安全閘道資源,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「安全閘道」頁面。
    前往安全閘道
  2. 選取要建立安全閘道的專案。
  3. 如要建立安全閘道,請按一下「建立新閘道」,然後等待閘道建立程序完成。
  4. 您可以在 Google Cloud 控制台的「通知」專區追蹤進度。
  5. 建立 SaaS 應用程式資源前,建議您先建立 SaaS 輸出中樞hubs 旗標代表啟用輸出連線至目標應用程式所需的區域資源。每個區域可設定一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:
    • africa-south1
    • asia-east1
    • asia-south1
    • asia-south2
    • asia-southeast1
    • europe-central2
    • europe-north1
    • europe-southwest1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west8
    • europe-west9
    • northamerica-northeast1
    • northamerica-northeast2
    • northamerica-south1
    • southamerica-east1
    • southamerica-west1
    • us-central1
    • us-east1
    • us-east4
    • us-east5
    • us-west1
  6. 前往 Google Cloud 控制台的「SaaS Egress Hubs」頁面。
    前往「SaaS 輸出中樞」頁面
  7. 選取要建立 SaaS 輸出中樞的專案。
  8. 如要新增 SaaS 輸出中樞,請按一下「新增 SaaS 輸出中樞」
  9. 在下拉式清單中,選取要新增輸出中樞的區域。如要新增輸出中樞,請按一下「新增 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
      

hubs 旗標會設定啟用輸出連線至目標應用程式所需的區域資源。每個區域可有一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:

  • africa-south1
  • asia-east1
  • asia-south1
  • asia-south2
  • asia-southeast1
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west8
  • europe-west9
  • northamerica-northeast1
  • northamerica-northeast2
  • northamerica-south1
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-west1

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": {} } }' \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways?security_gateway_id=SECURITY_GATEWAY_ID"
      

hubs 旗標代表啟用輸出連線至目標應用程式所需的區域資源。每個區域可有一個中樞,每個中樞提供兩個 IP 位址。安全閘道最多可有 20 個中樞。您可以指定下列區域:

  • africa-south1
  • asia-east1
  • asia-south1
  • asia-south2
  • asia-southeast1
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west8
  • europe-west9
  • northamerica-northeast1
  • northamerica-northeast2
  • northamerica-south1
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-west1

設定軟體即服務 (SaaS) 應用程式

建立安全閘道後,您可以設定 SaaS 應用程式,透過安全閘道安全存取。

主控台

如要設定 SaaS 輸出中樞,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SaaS Egress Hubs」頁面。
    前往「SaaS 輸出中樞」頁面
  2. 在「SaaS 輸出中樞」頁面中,找出列出中樞的表格。針對您打算使用的每個區域,複製「靜態專屬輸出 IP」欄中列出的所有 IP 位址。每個區域會提供兩個 IP 位址。
  3. 將 IP 位址加入 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,請參閱「管理貴機構允許的 IP 位址」指南。

gcloud

如要設定 SaaS 輸出中樞,請按照下列步驟操作:

  1. 取得安全閘道為每個中樞分配的 IP 位址。系統會為每個區域分配兩個 IP 位址。
  2. gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \
        --project=PROJECT_ID \
        --location=global
            

    以下是安全閘道的 GET 回應範例,其中包含 hubs。在這個範例中,hubs 是在 us-central1us-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'
        
  3. 將 IP 位址加入 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,您可以按照「管理機構的允許 IP 位址」指南操作。

REST

如要設定 SaaS 輸出中樞,請按照下列步驟操作:

  1. 取得安全閘道為每個中樞分配的 IP 位址。系統會為每個區域分配兩個 IP 位址。
  2. 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"
            

    以下是安全閘道的 GET 回應範例,其中包含 hubs。在這個範例中,hubs 是在 us-central1us-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",
                ]
              }
            }
          }
        }
      ]
    }
        
  3. 將 IP 位址加入 SaaS 應用程式的 IP 許可清單。舉例來說,如果是 GitHub 應用程式,您可以按照「管理機構的允許 IP 位址」指南操作。

建立應用程式資源

下列資訊將引導您設定及配置安全閘道應用程式資源。

在 Google Cloud中建立安全閘道應用程式資源

Google Cloud 應用程式資源是安全閘道資源的子資源。使用 Google Cloud 控制台或呼叫 Create API,建立應用程式資源。

主控台

如要建立 SaaS 應用程式,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「安全閘道」頁面。
    前往安全閘道
  2. 如要建立應用程式,請按一下「新增應用程式」
  3. 選取應用程式類型:「公開應用程式」
  4. 如果尚未為這個安全閘道設定 SaaS 輸出中樞,系統會提示您建立。公開應用程式至少需要一個 SaaS 輸出中樞。如要設定 SaaS 輸出中樞,請按一下「前往 SaaS 輸出中樞」,然後新增一或多個區域。
  5. 建立一或多個輸出中樞後,請按一下「下一步」
  6. 輸入應用程式詳細資料:
    • 應用程式名稱:輸入名稱,例如 GitHub
    • 網域比對器:輸入要透過安全閘道轉送的網域模式清單,並以逗號分隔。請以 domain:port 格式加入通訊埠。可以使用萬用字元 (*)。例如:github.com:443
  7. 如要設定 SaaS 應用程式,請按一下「繼續」
  8. 設定 SaaS 應用程式,允許來自安全閘道的流量:
    1. 請仔細記下或複製您所用區域列出的所有 IP 位址。這些 IP 位址是安全閘道專屬的。
    2. 登入 SaaS 應用程式的管理控制台。
    3. 前往管理 IP 允許清單的網路設定或安全性設定。
    4. 將取得的所有 IP 位址加入應用程式的 IP 許可清單。
  9. 如要新增應用程式,請按一下「繼續」
  10. 如要建立應用程式,請按一下「建立」,儲存設定並建立應用程式。

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"
      

設定 Google Chrome Proxy 模式

您可以在 Google 管理控制台的 Chrome 設定中套用 PAC 檔案,將應用程式流量轉送至安全閘道。如要套用 PAC 檔案,請按照下列步驟操作:

  1. 如要建立或更新 PAC 檔案,請按照下列步驟操作:
    • 請使用下列範例 PAC 檔案建立 pac_config.js 檔案,建立第一個應用程式。
    • 更新現有的 pac_config.js 檔案,並將新應用程式的網域新增至網站陣列,如下列 PAC 檔案範例所示。
    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';
    }
          

    HOST_NAME 替換為應用程式的主機名稱,例如 myapp.example.com

    如果您使用現有的 PAC 檔案,但該檔案並非專為安全閘道而設,請將應用程式的網域新增至網站陣列,合併 PAC 檔案。

  2. 上傳檔案,讓使用者可以公開下載。舉例來說,您可以將檔案上傳至 Cloud Storage,並在值區中授予所有使用者 Storage Object User 角色,讓檔案可供公開下載。
  3. 如要確認上傳的檔案是最新版本,請將 Cache-Control 標頭設為 no-cache,調整檔案的快取行為。設定標頭可防止瀏覽器和中繼伺服器儲存檔案副本,確保 Chrome 下載最新版本。

    如要進一步瞭解 Cache-Control,以及這項指令對瀏覽器快取的影響,請參閱「Cache-Control 標頭」。

  4. 複製上傳檔案的公開網址。

更新 Proxy 模式設定

如要更新 Proxy 模式設定,請按照下列步驟操作:

  1. 前往 Google 管理控制台
  2. 依序點選「裝置」>「Chrome」>「設定」
  3. 選取機構單位或群組,然後按一下「Proxy 模式」
  4. 在「Proxy mode」(Proxy 模式) 中,選取「Always use the proxy auto-config specified below」(一律使用以下指定的 Proxy 自動設定),然後輸入 Cloud Storage 中 PAC 檔案的網址。
  5. 如要儲存 Proxy 模式設定,請按一下「儲存」

設定存取權政策

您可以套用存取權政策,在安全閘道層級控管存取權 (這會影響所有相關聯的應用程式),也可以在個別應用程式層級進行更精細的控管。

主控台

建立閘道層級政策

如要設定存取權政策,請按照下列步驟操作:

  1. 如要建立適用於連結至安全閘道的多個應用程式的政策,請前往「政策」頁面。
    前往「政策」
  2. 如要為應用程式新增存取權政策,請按一下「建立政策」
  3. 從下拉式清單中,選取要套用政策的應用程式。
  4. 將主體新增至政策:

    主體可以是使用者、群組、網域或服務帳戶。系統會根據您指派的存取層級,授予或拒絕這些主體的存取權。

    1. 如要新增主體,請按一下「新增主體」
    2. 在「主體」欄位中,輸入使用者、群組、服務帳戶的電子郵件地址或網域名稱。
    3. 在「存取層級」下拉式選單中,選取一或多個預先定義的「情境感知存取權」層級。只有在主體符合所選存取層級的條件時,系統才會授予存取權。

    如要新增更多主體,請再次點選「新增主體」,然後重複上述子步驟。

    您可以在 Access Context Manager 中建立及管理存取層級。

  5. 如要將政策套用至應用程式,請按一下「建立政策」

修改應用程式層級存取權政策

  1. 如要修改單一應用程式的政策,請前往「應用程式」頁面。
    前往「Applications」(應用程式)
  2. 如要找出要編輯的應用程式,請按照下列步驟操作:
    1. 在「應用程式」清單中,搜尋要修改的應用程式。
    2. 如要查看應用程式詳細資料,請按一下「更多動作」選單 (),然後選取「查看詳細資料」
  3. 如要編輯應用程式,請按一下「編輯」
  4. 將主體新增至政策:

    主體可以是使用者、群組、網域或服務帳戶。系統會根據您指派的存取層級,授予或拒絕這些主體的存取權。

    1. 如要新增主體,請按一下「新增主體」
    2. 在「主體」欄位中,輸入使用者、群組、服務帳戶的電子郵件地址或網域名稱。
    3. 在「存取層級」下拉式清單中,選取一或多個預先定義的情境感知存取層級。只有在主體符合所選存取層級的條件時,系統才會授予存取權。

    如要新增更多主體,請再次點選「新增主體」,然後重複上述子步驟。

    您可以在 Access Context Manager 中建立及管理存取層級。

  5. 如要將政策套用至應用程式,請按一下「儲存」

gcloud

安全地更新存取權政策

setIamPolicy 指令會將整個現有政策換成您提供的政策。為避免不小心移除現有權限,建議您使用下列「讀取-修改-寫入」模式。這種模式有助於避免意外移除現有權限。

  1. 讀取:首先,取得目前的存取權政策。
  2. 修改:在本地編輯政策檔案,新增或變更權限。
  3. 寫入:套用更新後的政策檔案。

取得目前的政策

請先擷取目前的政策,再進行任何變更。政策中的 etag 欄位會做為版本 ID。如果多位管理員同時進行變更,這項功能可避免更新作業發生衝突。

下列指令會擷取政策,並儲存至名為 policy.json 的檔案。

gcloud beta beyondcorp security-gateways applications get-iam-policy APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global > policy.json
      

更改下列內容:

  • APPLICATION_ID:應用程式資源的 ID
  • SECURITY_GATEWAY_ID:安全閘道的 ID
  • PROJECT_ID:設定安全閘道的專案 ID

這個指令會建立 policy.json 檔案,其中包含目前的政策。

修改政策檔案

使用文字編輯器開啟 policy.json 檔案。如要授予群組使用安全閘道的權限,請將群組新增至 members 角色的 roles/beyondcorp.securityGatewayUser 清單。

policy.json 檔案類似下列範例:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
    

如要新增其他群組,請在 members 陣列中新增項目。在先前的項目後加上半形逗號。以下範例會新增 new-group@example.com

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com",
        "group:new-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
    

您也可以在政策繫結中新增其他類型的成員,例如 serviceAccountusergroupprincipalprincipalSet。詳情請參閱「IAM 主體」。

套用更新後的政策

編輯並儲存 policy.json 檔案後,請使用 setIamPolicy 指令將其套用至資源。這項指令會使用檔案中的 etag,確保您更新的是正確版本。

gcloud beta beyondcorp security-gateways applications set-iam-policy APPLICATION_ID policy.json \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global
    

更改下列內容:

  • APPLICATION_ID:應用程式資源的 ID
  • SECURITY_GATEWAY_ID:安全閘道的 ID
  • PROJECT_ID:設定安全閘道的專案 ID

新增條件式存取政策

您也可以設定附帶條件的存取權政策。條件會指定需求,例如使用者 IP 位址的來源位置。

下列範例政策只會在來源 IP 位址位於指定存取層級內時授予存取權:

  {
    "version": 3,
    "bindings": [
      {
        "role": "roles/beyondcorp.securityGatewayUser",
        "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="
  }

如要套用這項政策,請按照稍早所述的步驟操作。

REST

安全地更新存取權政策

setIamPolicy 指令會將整個現有政策換成您提供的政策。為避免不小心移除現有權限,建議您使用下列「讀取-修改-寫入」模式。這種模式有助於避免意外移除現有權限。

  1. 讀取:將目前的存取權政策儲存至檔案。
  2. 修改:在本地編輯政策檔案,新增或變更權限。
  3. 寫入:套用更新後的政策檔案。

取得目前的政策

請先擷取目前的政策,再進行任何變更。政策中的 etag 欄位會做為版本 ID。如果多位管理員同時進行變更,這項功能可避免更新作業發生衝突。

下列指令會擷取政策,並儲存至名為 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:設定安全閘道的專案 ID
  • SECURITY_GATEWAY_ID:安全閘道的 ID
  • APPLICATION_ID:應用程式資源的 ID

這個指令會建立 policy.json 檔案,其中包含目前的政策。

修改政策檔案

如要授予群組使用安全閘道的權限,請按照下列步驟操作:

  1. 使用文字編輯器開啟 policy.json 檔案。
  2. 將群組新增至 roles/beyondcorp.securityGatewayUser 角色的 members 清單。

policy.json 檔案類似下列範例:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
      

如要新增其他群組,請在 members 陣列中新增項目。在先前的項目後加上半形逗號。以下範例會新增 new-group@example.com

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com",
        "group:new-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
    

您也可以在政策繫結中新增其他類型的成員,例如 serviceAccountusergroupprincipalprincipalSet。詳情請參閱「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:設定安全閘道的專案 ID
  • SECURITY_GATEWAY_ID:安全閘道的 ID
  • APPLICATION_ID:應用程式資源的 ID

新增條件式存取政策

您也可以設定附帶條件的存取權政策。條件會指定需求,例如使用者 IP 位址的來源位置。

下列範例政策只會在來源 IP 位址位於指定存取層級內時授予存取權:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "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 設定檔是否受管理,防止未受管理或惡意瀏覽器可能造成的濫用行為。

如要實作這項功能,請在 Chrome Enterprise 進階版 Access Context Manager 中,為存取層級新增條件。以下是可改編的條件範例:

  device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
  

安裝 Chrome Enterprise 進階版擴充功能

Chrome Enterprise 進階版擴充功能是安全閘道不可或缺的一環,有助於進行驗證。為安全閘道的所有使用者安裝擴充功能。如要瞭解如何部署擴充功能,請參閱「查看及設定應用程式和擴充功能」。如要安裝 Chrome Enterprise 進階版擴充功能,請按照下列步驟操作:

  1. 前往 Google 管理控制台
  2. 依序點選「Chrome 瀏覽器」>「應用程式和擴充功能」
  3. 按一下「使用者和瀏覽器」分頁。
  4. 如要新增 Chrome 擴充功能,請按一下「+」按鈕。
  5. 搜尋下列擴充功能,然後要求機構單位或群組中的所有使用者安裝:

    ekajlcmdfcigmdbphhifahdfjbkciflj
  6. 按一下已安裝的擴充功能,然後在「擴充功能政策」欄位中,輸入下列 JSON 值:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" }
        }
      }
    }

    請替換下列項目:

    • PROJECT_ID:設定安全閘道的專案 ID
    • SECURITY_GATEWAY_ID:安全閘道的 ID

  7. 如要儲存設定,請按一下「儲存」

使用者體驗

設定完成後,系統會根據套用至應用程式的存取權政策,授予或拒絕存取受保護的 SaaS 應用程式。

在 Chrome 中存取應用程式

您必須安裝 Chrome Enterprise 進階版擴充功能,才能將流量導向安全閘道。擴充功能會處理使用者與安全閘道之間的驗證。系統會透過網域政策自動安裝擴充功能。

使用者存取您設定的 SaaS 應用程式時,流量會通過安全閘道,系統會檢查使用者是否符合存取政策。如果使用者通過存取政策檢查,系統就會授予應用程式存取權。

如果授權政策拒絕瀏覽器存取應用程式,使用者會收到 Access denied 訊息。

後續步驟