您可以创建使用权,以允许为特定主账号提供临时权限提升。创建使用权时,请注意以下事项:
您可以在组织级、文件夹级或项目级创建使用权。 在各级别通过使用权授予的角色沿用 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。 新创建的权利可能需要几分钟才能传播并可供使用。