本页介绍了如何管理数据集级政策分析洞见,这些洞见是基于机器学习技术对 BigQuery 数据集权限使用情况得出的发现。政策数据分析有助于您确定哪些主账号拥有不需要的权限。
本页重点介绍了数据集的政策分析。Recommender 还会针对以下资源类型提供政策数据分析:
数据集级政策数据分析有时会与 角色建议相关联。角色建议会建议您采取哪些措施来解决数据集级政策分析中指出的问题。
准备工作
-
Enable the Recommender API.
- 熟悉 IAM 角色建议。
- 可选:了解 Recommender 数据分析。
所需的角色
如需获得管理数据集级政策数据分析所需的权限,请让您的管理员向您授予项目的以下 IAM 角色:
- BigQuery Data Owner (`roles/bigquery.dataOwner`)
- IAM Recommender Admin (`roles/recommender.iamAdmin`)
- 使用 gcloud CLI 或 REST API 管理数据集级政策数据分析: 服务使用情况使用方 (`roles/serviceusage.serviceUsageConsumer`)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含管理数据集级政策数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
您需要具备以下权限才能管理数据集级政策分析:
-
查看数据集级政策数据分析:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
修改数据集级政策数据分析:
recommender.iamPolicyInsights.update
-
使用 gcloud CLI 或 REST API 管理数据集级政策数据分析:
serviceusage.services.use
列出数据集级政策数据分析
如需列出项目的所有数据集级政策数据分析,请使用以下方法之一:gcloud
使用 gcloud recommender
insights list
命令可查看项目的所有数据集级政策数据分析。
在运行命令之前,请先替换以下值:
PROJECT_ID
:您要为其列出数据分析的项目的 ID。LOCATION
:您要列出数据分析的数据集的位置。
gcloud recommender insights list --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION\ --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"
输出会列出项目在指定位置的所有数据集级政策数据分析。例如:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 101d03ad-6148-4628-943e-fcf1a3af6b57 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 15133dd9-4cbc-41e9-8990-b189241676d8 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 1590aeae-d5bf-4e3d-b7d5-e230212f5faf SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 4 of the permissions in this role binding were used in the past 90 days. 280e5a14-4d09-4ac6-8e14-be7407611ad7 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 34102078-085f-45d3-ae72-81da16c75781 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 10 of the permissions in this role binding were used in the past 90 days.
REST
Recommender API 的 insights.list
方法可列出项目的所有数据集级政策数据分析。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您要为其列出数据分析的项目的 ID。LOCATION
:您要列出数据分析的数据集的位置。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_BIGQUERY_DATASET
如需发送您的请求,请展开以下选项之一:
响应会列出项目在指定位置的所有数据集级政策数据分析。例如:
{ "insights": [ { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }, { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/15133dd9-4cbc-41e9-8990-b189241676d8", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataViewer", "member": "projectViewer:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "17" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/bc9b4c28-cc93-4a91-97ea-ff67e3cef1b4" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-2" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"eafa79df1b329063\"", "severity": "LOW" } ] }
如需详细了解数据分析组件,请参阅本页面中的查看数据集级政策数据分析。
获取单一数据集级政策数据分析
如需获取有关单一数据分析的更多信息(包括数据分析的说明、状态及其关联的任何建议),请使用以下方法之一:
gcloud
将 gcloud recommender
insights describe
命令与您的数据分析 ID 结合使用,以查看单一数据分析的相关信息。
-
INSIGHT_ID
:您要查看的数据分析的 ID。如需查找此 ID,请列出项目中的数据分析。 PROJECT_ID
:您要管理数据分析的项目的 ID。LOCATION
:您要获取数据分析的数据集的位置。
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION
输出会显示详细数据分析。例如,以下数据分析表明,在项目 my-project
(projectEditor:my-project
) 中拥有 Editor 角色的所有用户在数据集 dataset-1
中都拥有 BigQuery Data Editor 角色 (roles/bigquery.dataEditor
),但过去 90 天内没有使用过该角色中的任何权限:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACTIVE targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
如需详细了解数据分析组件,请参阅本页面中的查看数据集级政策数据分析。
REST
Recommender API 的 insights.get
方法可获取单一数据分析。
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID
:您要为其管理数据分析的项目的 ID。 LOCATION
:您要获取数据分析的数据集的位置。-
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析 ID,可在项目中列出数据分析进行查找。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
如需发送您的请求,请展开以下选项之一:
响应包含数据分析。例如,以下数据分析表明,在项目 my-project
(projectEditor:my-project
) 中拥有 Editor 角色的所有用户在数据集 dataset-1
中都拥有 BigQuery Data Editor 角色 (roles/bigquery.dataEditor
),但过去 90 天内没有使用过该角色中的任何权限:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
如需详细了解数据分析组件,请参阅本页面中的查看数据集级政策数据分析。
查看数据集级政策数据分析
获得单个数据分析后,您可以查看其内容,以了解其突出显示的资源使用的模式。
数据分析的内容由其子类型确定。数据集级政策数据分析 (google.iam.policy.Insight
) 数据分析具有 PERMISSIONS_USAGE_BIGQUERY_DATASET
子类型。
PERMISSIONS_USAGE_BIGQUERY_DATASET
数据分析包含以下组成部分(不一定遵循以下顺序):
-
associatedRecommendations
:与数据分析相关联的任何建议的标识符。如果没有与数据分析相关联的建议,则此字段为空。 -
category
:IAM 数据分析的类别始终为SECURITY
。 -
content
:报告主账号使用特定角色的权限的情况。此字段包含以下组成部分:condition
:关联到向主账号授予该角色的绑定的任何条件。如果没有条件,则此字段将包含空条件。exercisedPermissions
:主账号在观察期间使用的角色权限。inferredPermissions
:Recommender 通过机器学习根据主账号实际使用的权限来确定的主账号可能需要的角色权限。member
:已分析其权限使用情况的主账号。role
:已分析其权限使用情况的角色。
-
description
:直观易懂的数据分析摘要。 -
etag
:数据分析的当前状态的唯一标识符。每次数据分析发生更改时,系统都会分配新的etag
值。要更改数据分析的状态,您必须提供现有数据分析的
etag
。使用etag
有助于确保仅在上次检索数据分析后没有任何更改的情况下执行所有操作。 -
insightSubtype
:数据分析子类型。 -
lastRefreshTime
:上次刷新数据分析的日期,它表示用于生成数据分析的数据的新鲜度。 -
name
:数据分析的名称,格式如下:projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
占位符具有以下值:
PROJECT_ID
:生成数据分析的项目的 ID。LOCATION
:数据分析所针对的数据集的位置。INSIGHT_ID
:数据分析的唯一 ID。
-
observationPeriod
:生成数据分析的时间段。用于生成数据分析的源数据结束于lastRefreshTime
,在lastRefreshTime
减observationPeriod
开始。 -
stateInfo
:数据分析被提出后,会经历多次状态转换:-
ACTIVE
:数据分析已生成,但尚未执行任何操作,或执行的操作并未更新数据分析状态。当底层数据发生更改时,系统会更新活跃数据分析。 -
ACCEPTED
:已根据数据分析执行某种操作。如果关联的建议标记为CLAIMED
、SUCCEEDED
或FAILED
,或数据分析被直接接受,则表示数据分析已被接收。如果数据分析处于ACCEPTED
状态,则数据分析内容无法更改。标记为已接受的数据分析会保留 90 天。
-
-
targetResources
:数据分析所适用的数据集的完整资源名称 。例如//bigquery.googleapis.com/projects/my-project/datasets/my-dataset
。
将数据集级政策数据分析标记为 ACCEPTED
如果您根据有效数据分析执行操作,则可以将该数据分析标记为 ACCEPTED
。ACCEPTED
状态会通知 Recommender API 您已根据此数据分析执行操作,这有助于优化您的建议。
标记为 ACCEPTED
后,已接受的数据分析将保留 90 天。
gcloud
将
gcloud recommender insights mark-accepted
命令与数据分析 ID 搭配使用可将数据分析标记为 ACCEPTED
。
-
INSIGHT_ID
:您要查看的数据分析的 ID。如需查找此 ID,请列出项目中的数据分析。 PROJECT_ID
:您要管理数据分析的项目的 ID。LOCATION
:您要将数据分析标记为ACCEPTED
的数据集的位置。-
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:-
使用
gcloud recommender insights describe
命令获取数据分析。 -
在输出中查找并复制
etag
值,包括引号。例如"d3cdec23cc712bd0"
。
-
使用
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION \ --etag=ETAG
输出显示数据分析,现在状态为 ACCEPTED
:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
如需详细了解数据分析的状态信息,请参阅本页面上的查看数据集级政策数据分析。
REST
Recommender API 的 insights.markAccepted
方法可将数据分析标记为 ACCEPTED
。
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID
:您要为其管理数据分析的项目的 ID。 LOCATION
:您要将其数据分析标记为ACCEPTED
的数据集的位置。-
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析 ID,可在项目中列出数据分析进行查找。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。 -
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:- 使用
insights.get
方法获取数据分析。 - 查找并复制响应中的
etag
值。
- 使用
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted
请求 JSON 正文:
{ "etag": "ETAG" }
如需发送您的请求,请展开以下选项之一:
响应包含数据分析,其状态现在为 ACCEPTED
:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
如需详细了解数据分析的状态信息,请参阅本页面上的查看数据集级政策数据分析。
后续步骤
- 了解如何查看和应用 BigQuery 数据集的政策建议。
- 使用建议中心查看和管理项目的所有建议,包括 IAM 建议。