本頁說明如何根據資源中資料的機密程度,自動授予或拒絕資源的 Identity and Access Management (IAM) 存取權。
您可以設定 Sensitive Data Protection 探索服務,根據資源的計算敏感程度,自動將標記附加至資源。接著,您可以使用 IAM 條件,根據是否有敏感度層級標記鍵或標記值,授予或拒絕資源存取權。
假設您希望貴機構的資料團隊在日常作業中,能夠自由複製及共用 BigQuery 資料。不過,您不確定這些資料是否含有客戶的個人識別資訊 (PII)。您可以執行探索作業,將 BigQuery 資料分類為不同機密程度。然後有條件地授予資料團隊存取權,讓他們只能存取僅含低敏感度資料的 BigQuery 資料表。
如要進一步瞭解 Sensitive Data Protection 如何計算資料機密程度,請參閱「資料風險和機密程度」。
如要進一步瞭解如何使用標記控管資源存取權,請參閱 IAM 說明文件中的「標記和條件式存取權」。如需標記的一般資訊,請參閱 Resource Manager 說明文件中的「標記總覽」。
機密等級標記
本文使用「機密等級標記」一詞,是指您自動附加至資源的標記,用來指出該資源中資料的計算機密等級。
優點
這項功能可讓您執行下列操作:
- 根據各種支援資源中資料的屬性和分類,自動控管這些資源的存取權。自動化功能可協助您掌握機構、資料夾和專案中資料的成長和變化。
- 在 Sensitive Data Protection 分析及分類支援的資源前,限制存取這些資源。這項做法符合「預設安全」原則。
- 設定探索作業,在每次剖析資料時更新私密程度標籤值。因此,當資源的計算資料機密程度層級變更時,主體對該資源的存取權也會自動變更。
- 如果探索作業偵測到資源含有機密程度標記,請設定探索作業,降低資源的計算資料風險等級。這個選項可協助您評估資料安全和隱私權狀態的改善程度。
支援的資源
這項功能可讓 Sensitive Data Protection 自動標記下列層級的資料:
- BigQuery 資料表
- Cloud SQL 執行個體
- Cloud Storage 值區
運作方式
以下是根據資料機密程度控管資源存取權的高階工作流程。這些工作不必由同一人執行。
所需權限
您需要的權限取決於要執行的動作。
如要取得這些權限,請要求管理員在適當的資源階層層級授予建議的角色。
管理標記的權限
請參閱 Resource Manager 說明文件中的「管理標記」。
授予資源條件式存取權的權限
請參閱 IAM 說明文件中的「必要角色」。
設定探索功能的權限
請參閱設定及查看資料設定檔所需的角色。
建立機密等級標籤
在這項工作中,您將建立標記鍵和標記值,對應至 Sensitive Data Protection 用於分類資料的資料機密程度。舉例來說,您可以使用下列標記鍵和標記值。
- 將標記鍵設為
sensitivity-level
。 設定下列標記值:
low
- 要附加至低機密資料的標記值
moderate
- 要附加至中度機密資料的標記值
high
- 要附加至高機密資料的標記值
您也可以為機密等級不明的資源建立標記值。或者,您也可以為這些資源重複使用
low
、medium
或high
標記值。請注意下列事項。您會在下一個工作中用到這些項目:
- 標記鍵 ID,例如
tagKeys/281478077849901
- 標記鍵值,例如
tagValues/281479490918432
- 標記值路徑,例如
example-project/tag-key/tag-value1
- 標記鍵 ID,例如
為求簡單,這個範例會在標記值和敏感度等級之間設定一對一對應。實務上,您可以根據業務需求自訂代碼值。舉例來說,您可能會使用 confidential
、PII
或 SPII
(敏感 PII) 等值。
您可以在機構、資料夾和專案層級設定機密資料探索作業。如果打算將這個機密等級標記用於機構或資料夾層級的探索作業,建議您在機構層級建立這個標記。
如要瞭解如何建立標記,請參閱資源管理員說明文件中的「建立及管理標記」。
根據機密等級標記的值,授予資源的條件式存取權
在這項工作中,您只會在附加至資源的機密等級標記具有特定值時,才將角色授予主體。舉例來說,您可以只授予主體存取具有 moderate
和 low
標籤值的資料。
本節提供範例條件,這些條件已格式化,可搭配條件編輯器使用。條件編輯器提供文字介面,可使用 CEL 語法手動輸入運算式。如要瞭解如何將身分與存取權管理條件附加至角色繫結,請參閱身分與存取權管理說明文件中的「管理有條件的角色繫結」。
這些範例採用本頁「建立機密等級標籤」一節中定義的標記模型。
僅授予主體低敏感度資料的存取權
在這個範例中,如果資源只包含低敏感度資料,您就會授予資源存取權。您也可以使用這個範例,限制對資源的所有存取權,直到系統在該資源上執行敏感資料探索為止。
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY",
"tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY")
更改下列內容:
- SENSITIVITY_LEVEL_TAG_KEY:您建立的私密程度標籤鍵數值 ID
- TAG_VALUE_FOR_LOW_SENSITIVITY:您為低敏感度資料建立的代碼值數值 ID
只授予主體中度機密和低度機密資料的存取權
在這個範例中,如果資源只包含中度或低度機密資料,您就會授予資源存取權。請注意,這兩個條件之間有 OR
運算子。
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY") ||
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY")
更改下列內容:
- SENSITIVITY_LEVEL_TAG_KEY:您建立的私密程度標籤鍵數值 ID
- TAG_VALUE_FOR_LOW_SENSITIVITY:您為低敏感度資料建立的代碼值數值 ID
- TAG_VALUE_FOR_MODERATE_SENSITIVITY:您為中度機密資料建立的代碼值數值 ID
只有在有敏感度層級標籤時,才授予主體存取權
舉例來說,如果您想定義機構政策,規定所有 IAM 存取權都必須以敏感程度標記的存在與否為條件,您也可以使用這個範例,限制對資源的所有存取權,直到該資源完成機密資料探索為止。
resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")
將 SENSITIVITY_LEVEL_TAG_KEY 替換為您建立的機密程度層級標記鍵的數值 ID。
拒絕政策範例
如要瞭解如何建立拒絕政策,以便搭配資源標記使用,請參閱「拒絕政策的結構」。如需支援的權限清單,請參閱「拒絕政策支援的權限」。
如果沒有機密等級標記,則拒絕存取
如果資源沒有敏感度層級標記,下列拒絕政策摘錄會拒絕 bigquery.googleapis.com/tables.get
權限。
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/group/data-team@example.com"
],
"deniedPermissions": [
"bigquery.googleapis.com/tables.get"
],
"denialCondition": {
"title": "Resource has no key",
"expression": "!resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")"
}
}
}
]
將 SENSITIVITY_LEVEL_TAG_KEY 替換為您建立的機密程度層級標記鍵的數值 ID。
如果含有中度或高度機密資料,則拒絕存取
如果資源含有任何中度或高度機密資料,下列拒絕政策摘錄會拒絕 bigquery.googleapis.com/tables.get
權限。
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/group/data-team@example.com"
],
"deniedPermissions": [
"bigquery.googleapis.com/tables.get"
],
"denialCondition": {
"title": "Resource has moderate or high data sensitivity",
"expression": "resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY") || resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_HIGH_SENSITIVITY")"
}
}
}
]
更改下列內容:
- SENSITIVITY_LEVEL_TAG_KEY:您建立的私密程度標籤鍵數值 ID
- TAG_VALUE_FOR_MODERATE_SENSITIVITY:您為中度機密資料建立的代碼值數值 ID
- TAG_VALUE_FOR_HIGH_SENSITIVITY:您為高度機密資料建立的代碼值數值 ID
在探索設定中啟用自動標記
在這項工作中,您會啟用「標記資源」動作。這項操作會指示 Sensitive Data Protection 根據計算出的敏感程度,自動標記資料。您可以在建立或編輯探索掃描設定時執行這項工作。
如要根據資源的計算敏感度層級自動標記資源,請按照下列步驟操作:
- 開啟「標記資源」選項。
針對每個私密程度 (高、中、低和不明),輸入您為該私密程度建立的代碼值路徑。
如果略過某個私密程度,系統就不會附加該程度的標記。
如要在出現機密程度標記時,自動降低資源的資料風險等級,請選取「為資源加上標記後,將其剖析檔的資料風險降至『低』」。這個選項可協助您評估資料安全和隱私權狀態的改善程度。
選取下列其中一個選項,或同時選取兩者:
- 初次剖析資源時加上標記。
更新資源的剖析檔時加上標記。如果希望 Sensitive Data Protection 在後續的探索作業中覆寫敏感度層級標記值,請選取這個選項。因此,當資源的計算資料敏感度等級提高或降低時,主體的資源存取權會自動變更。
如果您打算手動更新探索服務附加至資源的機密程度標籤值,請勿選取這個選項。如果選取這個選項,Sensitive Data Protection 可能會覆寫手動更新。
您可以在機構、資料夾和專案層級設定機密資料探索作業。如果您打算將這個機密程度標記用於機構層級的探索作業,且不希望專案層級的探索作業覆寫機構層級探索作業設定的標記值,請確保只有機構層級探索作業設定的服務代理程式,才能將這個標記附加至資源。如要瞭解如何在標記層級授予角色,請參閱 Resource Manager 說明文件中的「管理標記存取權」一節。
排解錯誤
本節說明使用這項功能時可能遇到的錯誤,以及如何解決這些錯誤。
超過標記數量上限
每項資源最多可附加 50 組鍵/值組合。如果嘗試為標記數已達上限的資源加上標記,系統就無法產生設定檔。系統會顯示下列錯誤訊息:
The resource RESOURCE_NAME cannot be tagged because there are too many existing tags bound to the resource. You can either disable automatic tagging or delete at least one tag binding from the resource.
如要解決這個問題,請從資源卸離標記。詳情請參閱下列說明:
- BigQuery:從資料表卸離標記
- MySQL 適用的 Cloud SQL:從 Cloud SQL 執行個體卸離標記
- PostgreSQL 適用的 Cloud SQL:從 Cloud SQL 執行個體卸離標記
- Cloud Storage:範例,說明如何將標記附加至 Cloud Storage 值區或從中卸離標記
或者,在探索掃描設定中停用「標記資源」動作。
標記值已刪除或重新命名,且探索嘗試將其附加至資源
如果刪除或重新命名機密等級標籤的標籤值,且機密資料保護功能嘗試將該標籤值附加至已設定檔的資源,您會收到下列錯誤訊息:
Tag value TAG_VALUE not found, it has possibly been either deleted or renamed.
如要解決這個問題,請按照下列其中一種做法進行:
- 如果標記已刪除,請重新建立已刪除的標記值。請確認重新建立的代碼值與探索掃描設定中參照的代碼值相符。詳情請參閱本頁的「建立機密等級標記」。
- 如果標記值已重新命名,請更新探索掃描設定,使用標記值的新名稱。
服務代理缺少權限
如果服務代理不具備將敏感度層級標記附加至已剖析資源的必要權限,您會收到下列錯誤訊息:
The DLP service account SERVICE_AGENT_NAME is missing permissions needed for attaching tags to resources. Check that the role 'resourcemanager.tagUser' is granted to the DLP service account.
如要解決這個問題,請按照下列步驟操作:
取得與探索掃描設定相關聯的服務代理 ID:
前往探索掃描設定清單。
- 在工具列中選取您的機構。
- 選取掃描設定。
- 在「掃描設定詳細資料」頁面上,複製「服務代理程式」欄位的值。服務代理 ID 的格式為電子郵件地址。
在敏感度層級標記上,授予服務代理程式「標記使用者角色」(
roles/resourcemanager.tagUser
)。或者,您也可以在機密等級標記上授予自訂角色。自訂角色必須具備
resourcemanager.tagValues.get
權限,以及管理標記繫結的資源專屬權限。您需要資源專屬的createTagBinding
、deleteTagBinding
和listEffectiveTags
權限。舉例來說,如果是 BigQuery 資料表,您需要下列項目:resourcemanager.tagValues.get
bigquery.tables.createTagBinding
bigquery.tables.deleteTagBinding
bigquery.tables.listEffectiveTags
如要瞭解如何在標記層級授予角色,請參閱 Resource Manager 說明文件中的「管理標記存取權」。