本页面介绍了如何管理数据集级政策数据分析,这些数据分析是基于机器学习的有关权限使用情况的 BigQuery 数据集。政策数据分析有助于您确定哪些主账号拥有不需要的权限。
本页重点介绍了数据集的政策分析。Recommender 还会提供 以下资源类型的数据分析:
数据集级政策数据分析有时会与 相关联 角色建议。角色建议会建议您采取哪些措施来解决数据集级政策分析中指出的问题。
准备工作
-
Enable the Recommender API.
- 熟悉 IAM 角色建议。
- 可选:了解 Recommender 数据分析。
所需的角色
如需获取管理数据集级政策数据分析所需的权限, 请让管理员授予您 项目的以下 IAM 角色:
- BigQuery Data Owner (`roles/bigquery.dataOwner`)
- IAM Recommender 管理员 (`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
: 项目的数据。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
输出会显示详细数据分析。例如,以下数据分析表明,项目中具有 Editor 角色的所有用户
my-project
(projectEditor:my-project
) 拥有 BigQuery Data Editor 角色
(roles/bigquery.dataEditor
) 针对数据集 dataset-1
,但没有
在过去 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
如需发送您的请求,请展开以下选项之一:
响应包含数据分析。例如,以下数据分析表明,项目中具有 Editor 角色的所有用户
my-project
(projectEditor:my-project
) 拥有 BigQuery Data Editor 角色
(roles/bigquery.dataEditor
) 针对数据集 dataset-1
,但没有
在过去 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 建议。