本页面介绍如何异步分析 Identity and Access Management (IAM) 政策并将结果写入 Cloud Storage。此功能基本等同于分析 IAM 政策,不同之处在于分析结果会写入 Cloud Storage 存储分区。
准备工作
启用 Cloud Asset API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色。
您必须在用于发送查询的项目中启用 API。这不一定是您将查询范围限定到的同一资源。
所需角色和权限
如需运行政策分析并将结果导出到 Cloud Storage,您需要拥有以下角色和权限。
所需 IAM 角色
如需获得分析政策并将结果导出到 BigQuery 所需的权限,请让管理员向您授予您将查询范围限定到的项目、文件夹或组织的以下 IAM 角色:
- Cloud Asset Viewer (
roles/cloudasset.viewer) - Storage Object Creator (
roles/storage.objectCreator) -
如需使用 自定义 IAM 角色分析政策:
Role Viewer (
roles/iam.roleViewer) -
如需使用 Google Cloud CLI 分析政策:
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供 分析政策并将结果导出到 BigQuery 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需分析政策并将结果导出到 BigQuery,您需要拥有以下权限:
-
cloudasset.assets.analyzeIamPolicy -
cloudasset.assets.searchAllResources -
cloudasset.assets.searchAllIamPolicies -
storage.objects.create -
如需使用自定义 IAM 角色分析政策:
iam.roles.get -
如需使用 Google Cloud CLI 分析政策:
serviceusage.services.use
所需 Google Workspace 权限
如果您想了解某主账号是否因其是 Google Workspace 群组的成员而拥有某些角色或权限,则需要 groups.read Google
Workspace 权限。此权限包含在 Groups Reader Admin 角色以及更强大的角色(例如 Groups Admin 或
Super Admin 角色)中。如需了解详情,请参阅分配特定管理员角色。
分析政策并导出结果
使用
AnalyzeIamPolicyLongrunning
方法,您可以发出分析请求,并在指定的
Cloud Storage 存储桶中获取结果。
gcloud
在使用下面的命令数据之前, 请先进行以下替换:
RESOURCE_TYPE:您要将搜索范围限定到的资源的类型。系统只会分析附加到此资源及其后代的 IAM 允许政策。使用值project、folder或organization。RESOURCE_ID:您要将搜索范围限定到的 Google Cloud 项目、文件夹或组织的 ID。系统只会分析附加到此资源及其后代的 IAM 允许政策。 项目 ID 是字母数字字符串,例如my-project。文件夹和组织 ID 是数字,例如123456789012。PRINCIPAL:您要分析其访问权限的正文,格式为PRINCIPAL_TYPE:ID,例如user:my-user@example.com。如需查看主账号类型的完整列表,请参阅 主账号标识符。PERMISSIONS:您要检查的权限的英文逗号分隔列表,例如compute.instances.get,compute.instances.start。如果您列出了多个权限,Policy Analyzer 将检查列出的任何权限。STORAGE_OBJECT_URI:您要将分析结果导出到的 Cloud Storage 对象的唯一资源标识符,格式为gs://BUCKET_NAME/OBJECT_NAME,例如gs://my-bucket/analysis.json。
执行 gcloud asset analyze-iam-policy-longrunning 命令:
Linux、macOS 或 Cloud Shell
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \ --full-resource-name=FULL_RESOURCE_NAME \ --identity=PRINCIPAL \ --permissions='PERMISSIONS' \ --gcs-output-path=STORAGE_OBJECT_URI
Windows (PowerShell)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ` --full-resource-name=FULL_RESOURCE_NAME ` --identity=PRINCIPAL ` --permissions='PERMISSIONS' ` --gcs-output-path=STORAGE_OBJECT_URI
Windows (cmd.exe)
gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^ --full-resource-name=FULL_RESOURCE_NAME ^ --identity=PRINCIPAL ^ --permissions='PERMISSIONS' ^ --gcs-output-path=STORAGE_OBJECT_URI
您应该会收到类似如下所示的响应:
Analyze IAM Policy in progress. Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.
REST
如需分析 IAM 允许政策并将结果导出到
Cloud Storage,请使用 Cloud Asset Inventory API 的
analyzeIamPolicyLongrunning
方法。
在使用任何请求数据之前, 请先进行以下替换:
RESOURCE_TYPE:您要将搜索范围限定到的资源的类型。系统只会分析附加到此资源及其后代的 IAM 允许政策。使用值projects、folders或organizations。RESOURCE_ID:您要将搜索范围限定到的 Google Cloud 项目、文件夹或组织的 ID。系统只会分析附加到此资源及其后代的 IAM 允许政策。 项目 ID 是字母数字字符串,例如my-project。文件夹和组织 ID 是数字,例如123456789012。-
FULL_RESOURCE_NAME:可选。您要分析其访问权限的资源的完整资源名称。如需查看完整资源名称格式的列表,请参阅 资源名称格式。 PRINCIPAL:可选。 您要分析其访问权限的主账号,格式为PRINCIPAL_TYPE:ID,例如user:my-user@example.com。如需查看主账号类型的完整列表,请参阅 主账号标识符。PERMISSION_1、PERMISSION_2...PERMISSION_N:可选。您要检查的权限,例如compute.instances.get。如果您列出了多个权限,Policy Analyzer 将检查列出的任何权限。STORAGE_OBJECT_URI:您要将分析结果导出到的 Cloud Storage 对象的唯一资源标识符,格式为gs://BUCKET_NAME/OBJECT_NAME,例如gs://my-bucket/analysis.json。
HTTP 方法和网址:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning
请求 JSON 正文:
{
"analysisQuery": {
"resourceSelector": {
"fullResourceName": "FULL_RESOURCE_NAME"
},
"identitySelector": {
"identity": "PRINCIPAL"
},
"accessSelector": {
"permissions": [
"PERMISSION_1",
"PERMISSION_2",
"PERMISSION_N"
]
},
"outputConfig": {
"gcsDestination": {
"uri": "STORAGE_OBJECT_URI"
}
}
}
}
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
"metadata": {
"@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
"createTime": "2022-04-12T21:31:10.753173929Z"
}
}
查看 IAM 政策分析结果
如需查看 IAM 政策分析结果,请执行以下操作:
在 Google Cloud 控制台中,前往存储分区 页面。
打开分析写入的新文件。
结果列出了 {identity, role(s)/permission(s), resource} 的元组以及生成这些元组的 IAM 政策。