您可以创建使用权,以允许为特定主账号提供临时权限提升。创建使用权时,请注意以下事项:
您可以在组织级、文件夹级或项目级创建使用权。 在各级别通过使用权授予的角色沿用 Google Cloud 资源层次结构。例如,在组织级层通过使用权授予的角色会在文件夹和项目级层继承。
如果 Security Command Center 高级方案或企业方案层级是在组织级激活的,那么您可以为每个使用权授权多个审批级别,允许每个使用权最多有两个级别的连续审批。每个级别最多可以授权五项审批。
收到所需数量的第一级审批后,系统会向第二级审批人发送邮件通知。在收到所需数量的第二级审批后,授权会进入
active
状态。如果有任何审批人拒绝授权,则授权会进入denied
状态,并且不会发送给任何其他审批人。此功能为预览版。
如果允许服务账号批准对相应资源的授权,您可以添加服务账号和工作负载池身份作为审批人。如需了解如何启用此设置,请参阅配置 Privileged Access Manager 设置。
此功能为预览版。
如果您将群组作为请求者添加到某项使用权,则该群组中的所有个人账号都可以请求授予该使用权。不过,只有请求授权的个人账号才能获得升级后的权限。
如果您将群组添加为某项使用权的审批者,则该群组中的所有个人账号都可以批准或拒绝授予请求。
支持基本角色(Admin、Writer 和 Reader),但不支持旧版基本角色(Owner、Editor 和 Viewer)。
请勿在权利中包含服务代理角色。
某些服务代理角色具有非常强大的权限,并且这些角色的权限可能会在不事先通知的情况下发生变化。请改为选择其他预定义角色,或创建具有所需权限的自定义角色。
准备工作
如需获得创建使用权所需的权限,请让管理员向您授予您要为其创建使用权的组织、文件夹或项目的以下 IAM 角色:
-
为组织创建使用权:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin
) -
Security Admin (
roles/iam.securityAdmin
)
-
Privileged Access Manager Admin (
-
为文件夹创建:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin
) -
Folder IAM Admin (
roles/resourcemanager.folderAdmin
)
-
Privileged Access Manager Admin (
-
为项目创建使用权:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin
) -
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
)
-
Privileged Access Manager Admin (
-
查看审核日志:Logs Viewer (
roles/logs.viewer
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建使用权所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建使用权需要以下权限:
-
为组织创建使用权和授权:
-
resourcemanager.organizations.get
-
resourcemanager.organizations.setIamPolicy
-
privilegedaccessmanager.entitlements.create
-
-
为文件夹创建使用权和授权:
-
resourcemanager.folders.get
-
resourcemanager.folders.setIamPolicy
-
privilegedaccessmanager.entitlements.create
-
-
为项目创建使用权和授权:
-
resourcemanager.projects.get
-
resourcemanager.projects.setIamPolicy
-
privilegedaccessmanager.entitlements.create
-
创建使用权
控制台
前往 Privileged Access Manager 页面。
选择您要将相应使用权应用到的组织、文件夹或项目。
点击使用权标签页。
点击创建。
在使用权详细信息部分中,输入以下使用权详细信息:
点击下一步。
在添加请求者部分中,输入最多 20 个有效的使用权请求主账号。
支持所有主账号类型,但
allUsers
和allAuthenticatedUsers
除外。您可以将 20 个以上的身份添加到群组中,并在使用权中列出该群组。选择授权请求的主账号是否需要提供理由。
输入用户的其他邮箱,以便在相应使用权符合请求条件时通知这些用户。
与相应使用权相关联的 Google 身份(例如审批人和请求者)会自动收到通知。不过,如果您想通知其他人,可以添加其邮箱。如果您使用的是员工身份而不是 Google 账号,此功能会特别有用。
点击下一步。
在添加审批人部分中,执行以下操作之一:
如需允许在未经审批的情况下授予角色,请选择激活访问权限(跳过审批)。
如需授权审批,请执行以下操作:
- 可选:如需要求审批人输入审批请求的理由,请选择要求审批人提供理由。
输入第一级审批人详细信息:
相应使用权的审批人列表
您可以添加以下任何类型的主账号作为审批人:
Google 账号
Google 群组
Google Workspace 网域
员工群组标识符
工作负载池标识符
服务账号
仅当允许服务账号批准对相应资源的授权时,服务账号和工作负载池标识符才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
必须指定审批次数
如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在
approval awaited
状态下。用于通知的审批人邮箱
可选:添加第二级审批人详细信息:
相应使用权的审批人列表
您可以添加以下任何类型的主账号作为审批人:
Google 账号
Google 群组
Google Workspace 网域
员工群组标识符
工作负载池标识符
服务账号
仅当允许服务账号批准对相应资源的授权时,服务账号和工作负载池标识符才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
必须指定审批次数
如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在
approval awaited
状态下。用于通知的审批人邮箱
每次审批最多可以添加 20 个审批主账号(身份或群组)。 如果您想添加 20 个以上的审批人,可以将他们添加到群组中,然后将该群组列为使用权的审批人。
点击下一步。
点击创建使用权。
新创建的权利可能需要几分钟才能传播并可供使用。
gcloud
gcloud alpha pam entitlements create
命令会在组织、文件夹或项目级别创建使用权。
在使用下面的命令数据之前,请先进行以下替换:
ENTITLEMENT_ID
:要创建的使用权 ID。ID 必须为 4-63 个字符,并且使用以下字符:[a-z0-9-]
。第一个字符必须是字母。RESOURCE_TYPE
:可选。权利所属的资源类型。使用值organization
、folder
或project
。RESOURCE_ID
:与RESOURCE_TYPE
一起使用。您要为其管理使用权的 Google Cloud组织、文件夹或项目的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。RESOURCE_MANAGER_RESOURCE_TYPE
:Organization
、Folder
或Project
,具体取决于范围。ROLE
:在授予使用权时要分配的角色。MAXIMUM_GRANT_DURATION
:可请求的授权时长上限(以秒为单位)。支持的范围介于 30 分钟 (1,800) 和 168 小时 (604,800) 之间。-
REQUESTING_MEMBER
:可以请求授予使用权的主账号。除allUsers
和allAuthenticatedUsers
之外,所有主账号类型均受支持。 -
APPROVING_MEMBER
:可以批准使用权请求的主账号。有效的主账号类型如下所示:- 用户
- 群组
- 网域
- 员工群组标识符
- 工作负载池标识符
仅当服务账号获准批准相应资源的授权请求时,此选项才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
- 服务账号
仅当服务账号获准批准相应资源的授权请求时,此选项才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
APPROVALS_NEEDED
:批准使用权请求所需的审批人数量。如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在
approval awaited
状态下。APPROVER_EMAIL_ADDRESSES
:可选。在请求授予访问权限时通知的其他电子邮件地址。与授权审批者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。ADMIN_EMAIL_ADDRESS
:可选。当请求者被授予访问权限时,系统会向这些电子邮件地址发送通知。与授权审批者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。REQUESTER_EMAIL_ADDRESS
:可选。当此使用权可供申请时,用于接收通知的其他电子邮件地址。与授权请求者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。CONDITION_EXPRESSION
:可选。条件表达式,用于指定主账号何时可以使用角色具有的权限。此条件仅在授权处于有效状态时适用。
将以下内容保存在名为 entitlement.yaml
的文件中:
privilegedAccess: gcpIamAccess: resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE resource: //cloudresourcemanager.googleapis.com/RESOURCE_ID roleBindings: - role: ROLE_1 conditionExpression: CONDITION_EXPRESSION_1 - role: ROLE_2 conditionExpression: CONDITION_EXPRESSION_2 maxRequestDuration: MAXIMUM_GRANT_DURATION eligibleUsers: - principals: - REQUESTING_MEMBER_1 - REQUESTING_MEMBER_2 approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: APPROVALS_NEEDED_1 approverEmailRecipients: - APPROVER_EMAIL_ADDRESSES_1 - APPROVER_EMAIL_ADDRESSES_2 approvers: - principals: - APPROVING_MEMBER_1 - APPROVING_MEMBER_2 - approvalsNeeded: APPROVALS_NEEDED_2 approverEmailRecipients: - APPROVER_EMAIL_ADDRESSES_3 - APPROVER_EMAIL_ADDRESSES_4 approvers: - principals: - APPROVING_MEMBER_3 - APPROVING_MEMBER_4 requesterJustificationConfig: unstructured: {} additionalNotificationTargets: adminEmailRecipients: - ADMIN_EMAIL_ADDRESS_1 - ADMIN_EMAIL_ADDRESS_2 requesterEmailRecipients: - REQUESTER_EMAIL_ADDRESS_1 - REQUESTER_EMAIL_ADDRESS_2
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud alpha pam entitlements create \ ENTITLEMENT_ID \ --entitlement-file=entitlement.yaml \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements create ` ENTITLEMENT_ID ` --entitlement-file=entitlement.yaml ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha pam entitlements create ^ ENTITLEMENT_ID ^ --entitlement-file=entitlement.yaml ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
Create request issued for: [ENTITLEMENT_ID] Waiting for operation [projects/PROJECT_ID/locations/global/operations/OPERATION_ID] to complete...done. Created entitlement [ENTITLEMENT_ID]. additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - id: step-1 approvalsNeeded: 3 approvers: - principals: - user:alex@example.com - group:dev-team@example.com - id: step-2 approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '2024-04-09T02:39:37.011866832Z' eligibleUsers: - principals: - user:bola@example.com etag: 00000000000000000000000000000000000000000000000000000000000= maxRequestDuration: 7200s name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/RESOURCE_TYPE/RESOURCE_ID resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin id: hwarq_1 conditionExpression: "request.time.getHours() >= 8" requesterJustificationConfig: unstructured: {} state: AVAILABLE
REST
Privileged Access Manager API 的 createEntitlement
方法可在组织、文件夹或项目级别创建权限。
在使用任何请求数据之前,请先进行以下替换:
SCOPE
:要创建使用权的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID
、folders/FOLDER_ID
或projects/PROJECT_ID
。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。ENTITLEMENT_ID
:要创建的使用权 ID。ID 必须为 4-63 个字符,并且使用以下字符:[a-z0-9-]
。第一个字符必须是字母。RESOURCE_MANAGER_RESOURCE_TYPE
:Organization
、Folder
或Project
,具体取决于范围。ROLE
:在授予使用权时要分配的角色。MAXIMUM_GRANT_DURATION
:可请求的授权时长上限(以秒为单位)。支持的范围介于 30 分钟 (1,800) 和 168 小时 (604,800) 之间。-
REQUESTING_MEMBER
:可以请求授予使用权的主账号。除allUsers
和allAuthenticatedUsers
之外,所有主账号类型均受支持。 -
APPROVING_MEMBER
:可以批准使用权请求的主账号。有效的主账号类型如下所示:- 用户
- 群组
- 网域
- 员工群组标识符
- 工作负载池标识符
仅当服务账号获准批准相应资源的授权请求时,此选项才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
- 服务账号
仅当服务账号获准批准相应资源的授权请求时,此选项才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置。
APPROVALS_NEEDED
:批准使用权请求所需的审批人数量。如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在
approval awaited
状态下。APPROVER_EMAIL_ADDRESSES
:可选。在请求授予访问权限时通知的其他电子邮件地址。与授权审批者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。ADMIN_EMAIL_ADDRESS
:可选。当请求者被授予访问权限时,系统会向这些电子邮件地址发送通知。与授权审批者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。REQUESTER_EMAIL_ADDRESS
:可选。当此使用权可供申请时,用于接收通知的其他电子邮件地址。与授权请求者关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。CONDITION_EXPRESSION
:可选。条件表达式,用于指定主账号何时可以使用角色具有的权限。此条件仅在授权处于有效状态时适用。
HTTP 方法和网址:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID
请求 JSON 正文:
{ "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE", "resource": "//cloudresourcemanager.googleapis.com/SCOPE", "roleBindings": [ { "role": "ROLE_1", "conditionExpression": "CONDITION_EXPRESSION_1", }, { "role": "ROLE_2", "conditionExpression": "CONDITION_EXPRESSION_2", }, ] } }, "maxRequestDuration": "MAXIMUM_GRANT_DURATION", "eligibleUsers": [ { "principals": [ "REQUESTING_MEMBER_1", "REQUESTING_MEMBER_2", ... ] } ], "approvalWorkflow": { "manualApprovals": { "requireApproverJustification": true, "steps": [ { "approvers": [ { "principals": [ "APPROVING_MEMBER_1", "APPROVING_MEMBER_2", ] } ], "approvalsNeeded": APPROVALS_NEEDED_1, "approverEmailRecipients": [ "APPROVER_EMAIL_ADDRESSES_1", "APPROVER_EMAIL_ADDRESSES_2", ] }, { "approvers": [ { "principals": [ "APPROVING_MEMBER_3", "APPROVING_MEMBER_4", ] } ], "approvalsNeeded": APPROVALS_NEEDED_2, "approverEmailRecipients": [ "APPROVER_EMAIL_ADDRESSES_3", "APPROVER_EMAIL_ADDRESSES_4", ] } ] } }, "requesterJustificationConfig": { "unstructured": { } }, "additionalNotificationTargets": { "adminEmailRecipients": [ "ADMIN_EMAIL_ADDRESS_1", "ADMIN_EMAIL_ADDRESS_2", ], "requesterEmailRecipients": [ "REQUESTER_EMAIL_ADDRESS_1", "REQUESTER_EMAIL_ADDRESS_2", ] } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata", "createTime": "2024-03-05T03:35:14.596739353Z", "target": "projects/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1beta" }, "done": false }
如需检查创建操作的进度,您可以向以下端点发送 GET
请求:
https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID
向以下端点发送 GET
请求以列出所有操作:
https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations
Terraform
您可以使用 Terraform 创建权限。如需了解详情,请参阅 Terraform 文档中的 google_privileged_access_manager_entitlement。 新创建的权利可能需要几分钟才能传播并可供使用。
Config Connector
您可以使用 Kubernetes Config Connector 创建使用权。如需了解详情,请参阅 Config Connector 文档中的 PrivilegedAccessManagerEntitlement。 新创建的权利可能需要几分钟才能传播并可供使用。