本頁面說明如何使用以使用者群組為基礎的情境感知存取權政策,強制實施以憑證為基礎的存取權 (CBA)。
您可以將 CBA 存取層級繫結至要限制存取權的使用者群組,藉此限制所有 Google Cloud 服務的存取權。這項限制適用於所有呼叫 Google CloudAPI 的用戶端應用程式。
您可以選擇將限制套用至特定用戶端應用程式,或豁免特定應用程式。這些應用程式包括第三方應用程式和 Google 建構的第一方應用程式,例如 Cloud Console
(適用於 Google Cloud 控制台) 和 Google Cloud SDK
(適用於 Google Cloud CLI
)。
事前準備
請務必建立 CBA 存取層級,並在決定資源存取權時要求憑證。
建立使用者群組
建立使用者群組,其中包含應根據 CBA 存取層級授予存取權的會員。
指派 Cloud 存取權繫結管理員角色
將「Cloud Access Binding Admin」角色指派給使用者群組。
請確認您已授予足夠的權限,可在機構層級新增身分與存取權管理權限。您至少需要具備機構管理員和雲端存取綁定管理員角色。
主控台
前往控制台的「IAM」頁面。
在「權限」分頁中,按一下「授予存取權」,然後設定下列項目:
- New principals:指定您要授予角色的群組。
- 在「Select a role」(請選擇角色) 選項中,依序選取「Access Context Manager」>「Cloud Access Binding Admin」。
- 按一下 [儲存]。
gcloud
登入:
gcloud auth login
執行下列指令,指派
GcpAccessAdmin
角色:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_ID
是貴機構的 ID。如果您還沒有機構 ID,可以使用下列指令尋找:gcloud organizations list
EMAIL
是您要授予角色的使用者或群組電子郵件地址。
將 CBA 存取層級繫結至使用者群組
在這個繫結選項中,CBA 存取層級會套用至您指定使用者群組的所有用戶端應用程式。
前往控制台的 Chrome Enterprise 進階版頁面。
選擇機構,然後按一下「選取」。
按一下「管理存取權」,選擇應有存取權的使用者群組。
按一下「Add」,然後設定下列項目:
- 成員群組:指定您要授予存取權的群組。您只能選取未綁定存取層級的群組。
- 選取存取層級:選取要套用至群組的 CBA 存取層級。
- 按一下 [儲存]。
將 CBA 存取層級繫結至使用者群組和特定應用程式
在某些用途 (例如支援用戶端憑證的應用程式) 中,將 CBA 存取層級繫結至使用者群組可能會太廣泛。您可以使用這個選項,將 CBA 存取層級套用至支援用戶端憑證的應用程式。
以下範例將 CBA 存取層級繫結至 Google Cloud 控制台、gcloud CLI 和使用者的 OAuth 應用程式。
登入 gcloud CLI。
gcloud auth application-default login
建立
policy_file.json
檔案。您可以使用 OAuth 用戶端 ID 指定應用程式。如要指定 Google 應用程式,請使用應用程式名稱,例如
Cloud Console
代表Google Cloud 主控台。僅支援 Google Cloud 控制台和 Google Cloud SDK Google 應用程式。scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: Cloud Console activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: Google Cloud SDK activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_1 activeSettings: accessLevels: - CBA_ACCESS_LEVEL
更改下列內容:
- CLIENT_ID_1:OAuth 用戶端 ID。
- CBA_ACCESS_LEVEL:CBA 存取權層級名稱,格式為
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
。
建立 CBA 存取層級繫結。
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../policy_file.json
將 GROUP_KEY 替換為內容感知存取群組,並將 ORG_ID 替換為貴機構 ID。
如果您沒有 GROUP_KEY,可以呼叫群組資源的
get
方法來擷取。(選用) 更新現有的存取層級繫結。
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=.../policy_file.json
將 BINDING_NAME 替換為建立繫結時自動產生的繫結名稱。
讓應用程式不受繫結影響
另一種套用 CBA 存取層級的方法,是在政策中免除不支援用戶端憑證的用戶端應用程式。
下列步驟假設您先前已建立 CBA 存取層級,該層級在決定資源存取權時需要憑證。
使用下列任一方法建立豁免存取層級。
- 自訂存取層級:在 CEL 運算式條件中提供
true
做為值。 - 基本存取層級:提供 IP 子網路
0.0.0.0/0
和::/0
(分別對應至 IPv4 和 IPv6),建立以 IP 範圍為準的存取層級。
- 自訂存取層級:在 CEL 運算式條件中提供
建立
exemption_file.json
檔案。scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL
更改下列內容:
- CLIENT_ID_2:OAuth 用戶端 ID。
- APPLICATION_NAME_2:應用程式名稱。
- EXEMPT_ACCESS_LEVEL:以
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
格式表示的豁免存取層級名稱。
建立豁免繫結政策。
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=.../exemption_file.json
將 GROUP_KEY 替換為內容感知存取群組,並將 ORG_ID 替換為貴機構 ID。
如果您沒有 GROUP_KEY,可以透過在群組資源上呼叫
get
方法來擷取。