Google 使用不在 IAM 中的用户创建的云资源
Google Cloud Resource created with user that is not in IAM
情况:
- 我有一个 GCP 项目 (
owner
) 在我无权访问的组织下,所以我在 No Organization
中看到它
- 一个用户 (
xyz@domain.com
) 已经为现有的 pubsub 主题创建了一个订阅,我在 activity 和审计日志 下看到了
- 我在 IAM 中看不到此用户(例如
editor
,或具有某些 pubsub 特定角色)
- 我在任何 pub/sub 相关 topic/subscription 中都看不到此用户具有角色,特别是不在他在
中创建订阅的主题中
总结:
xyz@domain.com
创建了一个订阅者。
- 我不知道他从哪里得到这个角色(继承?)
问题:
- 这个人有没有可能有,例如
editor
在组织(或项目上方的某个文件夹)上,但我在项目的 IAM 部分中没有看到该角色?
- 如果不是,角色从哪里继承?
创建订阅
要订阅 Pub/Sub 主题,用户应该能够创建订阅对象。为此,需要对主题的权限 pubsub.subscriptions.create。它可以通过以下方式显式分配给主题或从父级别(项目、文件夹、组织)继承:
- 从项目级别或更高级别继承的自定义角色;
- 在 Pub/Sub 主题级别分配的预定义角色 pubsub.editor 或 pubsub.admin 或从父级别继承;
- a Primitive Role Editor 或 Owner 继承自项目或服务资源级别或更高级别;例如,Compute Engine 默认服务帐户 新创建的 VM 实例代表在其所属的项目中具有 Editor 角色。
查看角色分配
要追踪从哪里继承有效权利,需要列出以下权限:
- resourcemanager.organizations.getIamPolicy
- resourcemanager.folders.getIamPolicy
- resourcemanager.projects.getIamPolicy
包含该权限的 IAM 预定义角色是:
- resourcemanager.organizationAdmin
- iam.securityAdmin
- iam.securityReviewer
可以追溯到文件夹级别的 IAM 预定义角色是:
- resourcemanager.folderAdmin
- resourcemanager.folderEditor
- resourcemanager.folderIamAdmin
IAM 原始角色:
- 观看者
- 编辑器
- 所有者
要获得生成的权限的综合视图,您应该被授予上面列出的角色,并在 IAM 层次结构(最好在组织级别)中分配到尽可能高的位置,以获得足够的管理范围进行调查。
您看不到位于您所拥有的管理范围之外的绑定。因此,您看不到从中继承权限的级别以及授予权限的安全主题。
返回问题
- 这个人有没有可能有,例如组织(或项目上方的某个文件夹)的编辑器,但我在项目的 IAM 部分中没有看到该角色?
- 是
- 如果不是,角色从哪里继承?
- 项目之上的组织层级和所有文件夹层级(可以嵌套)。
供应商文档
情况:
- 我有一个 GCP 项目 (
owner
) 在我无权访问的组织下,所以我在No Organization
中看到它
- 一个用户 (
xyz@domain.com
) 已经为现有的 pubsub 主题创建了一个订阅,我在 activity 和审计日志 下看到了
- 我在 IAM 中看不到此用户(例如
editor
,或具有某些 pubsub 特定角色) - 我在任何 pub/sub 相关 topic/subscription 中都看不到此用户具有角色,特别是不在他在 中创建订阅的主题中
总结:
xyz@domain.com
创建了一个订阅者。- 我不知道他从哪里得到这个角色(继承?)
问题:
- 这个人有没有可能有,例如
editor
在组织(或项目上方的某个文件夹)上,但我在项目的 IAM 部分中没有看到该角色? - 如果不是,角色从哪里继承?
创建订阅
要订阅 Pub/Sub 主题,用户应该能够创建订阅对象。为此,需要对主题的权限 pubsub.subscriptions.create。它可以通过以下方式显式分配给主题或从父级别(项目、文件夹、组织)继承:
- 从项目级别或更高级别继承的自定义角色;
- 在 Pub/Sub 主题级别分配的预定义角色 pubsub.editor 或 pubsub.admin 或从父级别继承;
- a Primitive Role Editor 或 Owner 继承自项目或服务资源级别或更高级别;例如,Compute Engine 默认服务帐户 新创建的 VM 实例代表在其所属的项目中具有 Editor 角色。
查看角色分配
要追踪从哪里继承有效权利,需要列出以下权限:
- resourcemanager.organizations.getIamPolicy
- resourcemanager.folders.getIamPolicy
- resourcemanager.projects.getIamPolicy
包含该权限的 IAM 预定义角色是:
- resourcemanager.organizationAdmin
- iam.securityAdmin
- iam.securityReviewer
可以追溯到文件夹级别的 IAM 预定义角色是:
- resourcemanager.folderAdmin
- resourcemanager.folderEditor
- resourcemanager.folderIamAdmin
IAM 原始角色:
- 观看者
- 编辑器
- 所有者
要获得生成的权限的综合视图,您应该被授予上面列出的角色,并在 IAM 层次结构(最好在组织级别)中分配到尽可能高的位置,以获得足够的管理范围进行调查。
您看不到位于您所拥有的管理范围之外的绑定。因此,您看不到从中继承权限的级别以及授予权限的安全主题。
返回问题
- 这个人有没有可能有,例如组织(或项目上方的某个文件夹)的编辑器,但我在项目的 IAM 部分中没有看到该角色?
- 是
- 如果不是,角色从哪里继承?
- 项目之上的组织层级和所有文件夹层级(可以嵌套)。
供应商文档