在 Privileged Access Manager 中创建使用权

您可以创建使用权,以允许为特定主账号提供临时权限提升。创建使用权时,请注意以下事项:

  • 您可以在组织级、文件夹级或项目级创建使用权。 在各级别通过使用权授予的角色沿用 Google Cloud 资源层次结构。例如,在组织级层通过使用权授予的角色会在文件夹和项目级层继承。

  • 如果 Security Command Center 高级方案或企业方案层级是在组织级激活的,那么您可以为每个使用权授权多个审批级别,允许每个使用权最多有两个级别的连续审批。每个级别最多可以授权五项审批。

    收到所需数量的第一级审批后,系统会向第二级审批人发送邮件通知。在收到所需数量的第二级审批后,授权会进入 active 状态。如果有任何审批人拒绝授权,则授权会进入 denied 状态,并且不会发送给任何其他审批人。

    此功能为预览版

  • 如果允许服务账号批准对相应资源的授权,您可以添加服务账号和工作负载池身份作为审批人。如需了解如何启用此设置,请参阅配置 Privileged Access Manager 设置

    此功能为预览版

  • 如果您将群组作为请求者添加到某项使用权,则该群组中的所有个人账号都可以请求授予该使用权。不过,只有请求授权的个人账号才能获得升级后的权限。

  • 如果您将群组添加为某项使用权的审批者,则该群组中的所有个人账号都可以批准或拒绝授予请求。

  • 支持基本角色(Admin、Writer 和 Reader),但不支持旧版基本角色(Owner、Editor 和 Viewer)。

  • 请勿在权利中包含服务代理角色。

    某些服务代理角色具有非常强大的权限,并且这些角色的权限可能会在不事先通知的情况下发生变化。请改为选择其他预定义角色,或创建具有所需权限的自定义角色

准备工作

如需获得创建使用权所需的权限,请让管理员向您授予您要为其创建使用权的组织、文件夹或项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含创建使用权所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建使用权需要以下权限:

  • 为组织创建使用权和授权:
    • 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

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建使用权

控制台

  1. 前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 选择您要将相应使用权应用到的组织、文件夹或项目。

  3. 点击使用权标签页。

  4. 点击创建

  5. 使用权详细信息部分中,输入以下使用权详细信息:

    • 使用权名称。 使用权名称的长度可以为 4 到 63 个字符。必须以小写字母开头,并且只能包含小写字母、数字和连字符。

    • 最多可针对组织、文件夹或项目授予 30 个角色。

      您还可以按照向允许政策角色绑定添加条件相同的方式,向这些角色添加 IAM 条件。但是,在 Privileged Access Manager 权利中,使用检查资源标记的条件目前处于预览版阶段。

    • 授权时长上限。您可以为使用权设置的时长上限为 7 天。

  6. 点击下一步

  7. 添加请求者部分中,输入最多 20 个有效的使用权请求主账号。

    支持所有主账号类型,但 allUsersallAuthenticatedUsers 除外。您可以将 20 个以上的身份添加到群组中,并在使用权中列出该群组。

  8. 选择授权请求的主账号是否需要提供理由。

  9. 输入用户的其他邮箱,以便在相应使用权符合请求条件时通知这些用户。

    与相应使用权相关联的 Google 身份(例如审批人和请求者)会自动收到通知。不过,如果您想通知其他人,可以添加其邮箱。如果您使用的是员工身份而不是 Google 账号,此功能会特别有用。

  10. 点击下一步

  11. 添加审批人部分中,执行以下操作之一:

    • 如需允许在未经审批的情况下授予角色,请选择激活访问权限(跳过审批)

    • 如需授权审批,请执行以下操作:

      1. 可选:如需要求审批人输入审批请求的理由,请选择要求审批人提供理由
      2. 输入第一级审批人详细信息:

        • 相应使用权的审批人列表

          您可以添加以下任何类型的主账号作为审批人:

          • Google 账号

          • Google 群组

          • Google Workspace 网域

          • 员工群组标识符

          • 工作负载池标识符

          • 服务账号

            仅当允许服务账号批准对相应资源的授权时,服务账号和工作负载池标识符才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置

        • 必须指定审批次数

          如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在 approval awaited 状态下。

        • 用于通知的审批人邮箱

      3. 可选:添加第二级审批人详细信息:

        • 相应使用权的审批人列表

          您可以添加以下任何类型的主账号作为审批人:

          • Google 账号

          • Google 群组

          • Google Workspace 网域

          • 员工群组标识符

          • 工作负载池标识符

          • 服务账号

            仅当允许服务账号批准对相应资源的授权时,服务账号和工作负载池标识符才可用。如需了解详细信息,请参阅配置 Privileged Access Manager 设置

        • 必须指定审批次数

          如果您添加了群组作为审批人,请确保所需审批数量小于或等于群组中的主账号数量。 否则,授权将始终卡在 approval awaited 状态下。

        • 用于通知的审批人邮箱

    每次审批最多可以添加 20 个审批主账号(身份或群组)。 如果您想添加 20 个以上的审批人,可以将他们添加到群组中,然后将该群组列为使用权的审批人。

  12. 点击下一步

  13. 点击创建使用权

新创建的权利可能需要几分钟才能传播并可供使用。

gcloud

gcloud alpha pam entitlements create 命令会在组织、文件夹或项目级别创建使用权。

在使用下面的命令数据之前,请先进行以下替换:

  • ENTITLEMENT_ID:要创建的使用权 ID。ID 必须为 4-63 个字符,并且使用以下字符:[a-z0-9-]。第一个字符必须是字母。
  • RESOURCE_TYPE:可选。权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权的 Google Cloud组织、文件夹或项目的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • RESOURCE_MANAGER_RESOURCE_TYPEOrganizationFolderProject,具体取决于范围。
  • ROLE:在授予使用权时要分配的角色
  • MAXIMUM_GRANT_DURATION:可请求的授权时长上限(以秒为单位)。支持的范围介于 30 分钟 (1,800) 和 168 小时 (604,800) 之间。
  • REQUESTING_MEMBER:可以请求授予使用权的主账号。除 allUsersallAuthenticatedUsers 之外,所有主账号类型均受支持。

  • 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_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:要创建的使用权 ID。ID 必须为 4-63 个字符,并且使用以下字符:[a-z0-9-]。第一个字符必须是字母。
  • RESOURCE_MANAGER_RESOURCE_TYPEOrganizationFolderProject,具体取决于范围。
  • ROLE:在授予使用权时要分配的角色
  • MAXIMUM_GRANT_DURATION:可请求的授权时长上限(以秒为单位)。支持的范围介于 30 分钟 (1,800) 和 168 小时 (604,800) 之间。
  • REQUESTING_MEMBER:可以请求授予使用权的主账号。除 allUsersallAuthenticatedUsers 之外,所有主账号类型均受支持。

  • 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。 新创建的权利可能需要几分钟才能传播并可供使用。

后续步骤