本页介绍了如何管理存储桶级政策数据分析,即基于机器学习的有关 Cloud Storage 存储桶权限使用情况的发现结果。政策数据分析可帮助您 哪些主账号拥有不需要的权限。
本页重点介绍了存储桶的政策数据分析。Recommender 还会针对以下资源类型提供政策数据分析:
分桶级政策数据分析有时会与角色建议相关联。角色建议可向您建议 用于补救存储桶级政策数据分析发现的问题。
准备工作
-
Enable the Recommender API.
- 熟悉 IAM 角色建议。
- 请确保您拥有 组织级激活 Security Command Center 高级层级。如需了解详情,请参阅 结算问题。
- 可选:了解 Recommender 数据分析。
所需的角色
如需获取管理存储桶级政策数据分析所需的权限, 请让管理员授予您 项目的以下 IAM 角色:
-
Storage Admin (
roles/storage.admin
) - 使用 gcloud CLI 或 REST API 管理存储桶级政策数据分析: 服务使用者 (`roles/serviceusage.serviceUsageConsumer`)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含管理存储桶级政策数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
您需要具备以下权限才能管理分桶级政策分析:
-
如需查看存储桶级政策数据分析:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
如需修改存储桶级政策数据分析,请执行以下操作:
recommender.iamPolicyInsights.update
-
如需在 Google Cloud 控制台中管理存储桶级政策数据分析,请执行以下操作:
-
resourcemanager.projects.get
-
storage.buckets.list
-
-
使用 gcloud CLI 或 REST API 管理存储桶级政策数据分析:
serviceusage.services.use
列出存储桶级政策数据分析
如需列出项目的所有存储桶级政策数据分析,请使用以下方法之一:控制台
-
在 Google Cloud 控制台中,前往存储桶页面。
-
在表格中找到安全数据分析列。 如果安全分析列不可见,请点击
Column display options(列显示选项),然后选择 Security insights(安全分析)。此列显示存储桶的所有政策数据分析的摘要。每个摘要都会指明为该存储桶授予的所有角色的多余权限总数。
-
找到您要查看其数据分析的存储桶,然后点击该行中的政策数据分析摘要。此操作会打开安全建议窗格,其中列出了 对存储桶拥有角色的主账号、其角色以及与 这些角色
在此表中,政策数据分析的格式为
EXCESS/TOTAL excess permissions
,其中EXCESS
是 是主账号不需要的角色,TOTAL
是 权限。
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_STORAGE_BUCKET"
输出会列出项目在指定位置的所有分桶级政策数据分析。例如:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 00dd7eb5-15c2-4fb3-a9b2-1a85f842462b SECURITY ACTIVE 2022-05-24T07:00:00Z CRITICAL PERMISSIONS_USAGE_STORAGE_BUCKET 2 of the permissions in this role binding were used in the past 90 days. 04307297-f57c-416d-9323-38abac450db0 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE_STORAGE_BUCKET 2 of the permissions in this role binding were used in the past 90 days. 04845da5-74ba-46b4-a0f3-47d83095c261 SECURITY ACTIVE 2022-05-24T07:00:00Z CRITICAL PERMISSIONS_USAGE_STORAGE_BUCKET 1 of the permissions in this role binding were used in the past 90 days. 0a39f643-d7a8-4c11-b490-fecd74290fb5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE_STORAGE_BUCKET 2 of the permissions in this role binding were used in the past 90 days. 0a4cee48-777b-4dea-a2b0-702b70da4b6f SECURITY ACTIVE 2022-05-24T07:00:00Z CRITICAL PERMISSIONS_USAGE_STORAGE_BUCKET 0 of the permissions in this role binding were used in the past 90 days. 0b2d147c-b26e-4afe-8fab-449c6e793750 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE_STORAGE_BUCKET 0 of the permissions in this role binding were used in the past 90 days. 0b5eacc5-ba9a-45f6-aea2-bcdc33ce2a2d SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE_STORAGE_BUCKET 1 of the permissions in this role binding were used in the past 90 days. 0bb3032d-721c-44e8-b464-5293f235281c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE_STORAGE_BUCKET 3 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_STORAGE_BUCKET
如需发送您的请求,请展开以下选项之一:
该响应列出了您的存储桶级政策数据分析 项目。例如:
{ "insights": [ { "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b", "description": "2 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/storage.legacyBucketReader", "member": "allUsers", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "storage.buckets.get" }, { "permission": "storage.objects.list" } ], "inferredPermissions": [], "currentTotalPermissionsCount": "3" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7772400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883" } ], "targetResources": [ "//storage.googleapis.com/bucket-1" ], "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET", "etag": "\"2a8784e529b80aea\"", "severity": "CRITICAL" }, { "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/04307297-f57c-416d-9323-38abac450db0", "description": "2 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/storage.legacyBucketReader", "member": "projectViewer:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "storage.buckets.get" }, { "permission": "storage.objects.list" } ], "inferredPermissions": [], "currentTotalPermissionsCount": "3" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7772400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/f3198e63-7f76-462e-a980-8e6370ff32d6" } ], "targetResources": [ "//storage.googleapis.com/bucket-2" ], "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET", "etag": "\"5b60b935f27caf2c\"", "severity": "LOW" } ] }
如需详细了解数据分析组件,请参阅本页面中的查看分桶级政策数据分析。
获取单一存储桶级政策数据分析
如需获取有关单一数据分析的更多信息(包括数据分析的说明、状态及其关联的任何建议),请使用以下方法之一:
控制台
-
在 Google Cloud 控制台中,转到存储分区页面。
- 确保安全性数据分析列可见。
-
找到表格中的安全性数据分析列。此列显示的是 存储桶的所有政策数据分析每个摘要都会显示超限信息总数 该存储桶的所有角色的权限。
如果未显示安全性数据分析列,请点击
列显示选项 然后选择安全性数据分析。然后,在表格中找到相应的列。 - 找到您要查看其数据分析的存储桶,然后点击该存储桶中的政策数据分析摘要 。此时系统会打开一个窗格,其中列出了对存储桶拥有角色的所有主账号、他们的角色 以及与这些角色关联的任何政策数据分析。
-
在安全性数据分析列中,点击政策数据分析。政策数据分析的格式为
EXCESS/TOTAL excess permissions
,其中EXCESS
是主账号不需要的角色中的权限数,TOTAL
是角色中的总权限数。
Google Cloud 控制台将打开一个窗格,显示数据分析的详细信息。
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
输出会显示详细数据分析。例如,以下数据分析表明,所有用户 (allUsers
) 都拥有
存储桶的 Storage Legacy Bucket Reader 角色 (roles/storage.legacyBucketReader
)
bucket-1
,但在
过去 90 天:
associatedRecommendations: - recommendation: projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883 category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '3' exercisedPermissions: - permission: storage.buckets.get - permission: storage.objects.list inferredPermissions: [] member: allUsers role: roles/storage.legacyBucketReader description: 2 of the permissions in this role binding were used in the past 90 days. etag: '"2a8784e529b80aea"' insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b observationPeriod: 7772400s severity: CRITICAL stateInfo: state: ACTIVE targetResources: - //storage.googleapis.com/bucket-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
如需发送您的请求,请展开以下选项之一:
响应包含数据分析。例如,以下数据分析表明,所有用户 (allUsers
) 都拥有
存储桶的 Storage Legacy Bucket Reader 角色 (roles/storage.legacyBucketReader
)
bucket-1
,但在
过去 90 天:
{ "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b", "description": "2 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/storage.legacyBucketReader", "member": "allUsers", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "storage.buckets.get" }, { "permission": "storage.objects.list" } ], "inferredPermissions": [], "currentTotalPermissionsCount": "3" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7772400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883" } ], "targetResources": [ "//storage.googleapis.com/bucket-1" ], "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET", "etag": "\"2a8784e529b80aea\"", "severity": "CRITICAL" }
如需详细了解数据分析的组成部分,请参阅查看 存储桶级政策数据分析。
查看存储桶级政策数据分析
获得单个数据分析后,您可以查看其内容,以了解其突出显示的资源使用的模式。
控制台
在 Google Cloud 控制台中点击政策数据分析时,Google Cloud 控制台会打开一个窗格,其中显示该数据分析的详细信息。这些详细信息的显示取决于数据分析是否与建议相关联。
如果数据分析与建议相关联,则该窗格会显示建议的详细信息。
如果数据分析未与建议相关联,则该窗格会显示角色中所有权限的列表。主账号使用的权限会显示在列表顶部,后跟多余的权限。
gcloud
数据分析的内容由其子类型确定。存储桶级政策数据分析 (google.iam.policy.Insight
) 数据分析具有 PERMISSIONS_USAGE_STORAGE_BUCKET
子类型。
PERMISSIONS_USAGE_STORAGE_BUCKET
数据分析包含以下组成部分(不一定遵循以下顺序):
-
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
:完整资源名称 的值。例如//storage.googleapis.com/my-bucket
。
REST
数据分析的内容由其子类型确定。存储桶级政策数据分析 (google.iam.policy.Insight
) 数据分析具有 PERMISSIONS_USAGE_STORAGE_BUCKET
子类型。
PERMISSIONS_USAGE_STORAGE_BUCKET
数据分析包含以下组成部分(不一定遵循以下顺序):
-
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
:数据分析所适用的存储桶的完整资源名称。例如//storage.googleapis.com/my-bucket
。
将存储桶级政策数据分析标记为 ACCEPTED
如果您根据有效数据分析执行操作,则可以将该数据分析标记为 ACCEPTED
。ACCEPTED
状态会通知 Recommender API 您已根据此数据分析执行操作,这有助于优化您的建议。
标记为 ACCEPTED
后,已接受的数据分析将保留 90 天。
控制台
如果数据分析与建议相关联,则应用建议会将数据分析的状态更改为 ACCEPTED
。
如需在不应用建议的情况下将数据分析标记为 ACCEPTED
,请使用 gcloud CLI 或 REST API。
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/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883 category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '3' exercisedPermissions: - permission: storage.buckets.get - permission: storage.objects.list inferredPermissions: [] member: allUsers role: roles/storage.legacyBucketReader description: 2 of the permissions in this role binding were used in the past 90 days. etag: '"0187c0362e4bcea7"' insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b observationPeriod: 7772400s severity: CRITICAL stateInfo: state: ACCEPTED targetResources: - //storage.googleapis.com/bucket-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/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b", "description": "2 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/storage.legacyBucketReader", "member": "allUsers", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "storage.buckets.get" }, { "permission": "storage.objects.list" } ], "inferredPermissions": [], "currentTotalPermissionsCount": "3" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7772400s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883" } ], "targetResources": [ "//storage.googleapis.com/bucket-1" ], "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET", "etag": "\"9a5485cdc1f05b58\"", "severity": "CRITICAL" }
如需详细了解数据分析的状态信息,请参阅查看 存储桶级政策数据分析。
后续步骤
- 了解如何查看和应用 Cloud Storage 存储分区政策建议。
- 使用建议中心查看和管理项目的所有建议,包括 IAM 建议。