在 Privileged Access Manager 中查看、更新和删除权限

创建使用权后,您可以查看、更新或删除使用权。

准备工作

确保您已启用 Privileged Access Manager 并为其设置权限

使用 Google Cloud 控制台查看、更新和删除权限

  1. 前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 选择您要管理权限的组织、文件夹或项目。

  3. 使用权标签页中,点击所有用户的使用权标签页。您可以在此处查找可用的权限、它们授予的角色以及有效的请求者和审批者。

  4. 在表格中,点击您要检查的权限所在行中的 更多选项

    • 如需查看使用权详情,请点击查看使用权详情

    • 如需查看与相应权利相关联的授权,请点击查看关联的授权

    • 如需撤消对该权利的所有有效授予,请点击撤消所有授予

    • 如需删除相应权利,请点击删除权利。您无法删除包含有效授权的使用权。您必须先撤消授权。

  5. 如需更新某项权利,请点击与要更新的权利位于同一行的 修改权利

    更新使用权时,请注意以下事项:

    • 更新后的权限配置仅适用于在更新后请求的授权。不过,批准者更改也会应用于尚未获得批准或拒绝的现有授予请求。

    • 更新使用权时,您无法更改是否需要批准。如果您需要更改审批状态,请改为创建新的权限。

    • 对某项权限的请求者和审批者所做的更改可能需要几分钟才能传播

以编程方式查看使用权

如需以程序化方式查看权限,您可以搜索、列出、获取和导出权限。

列出使用权

gcloud

gcloud beta pam entitlements list 命令会列出属于特定范围的权限。

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

  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam entitlements list \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements list `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements list ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您应该会收到类似如下所示的响应:

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

Privileged Access Manager API 的 listEntitlements 方法会列出属于特定范围的权限。

在使用任何请求数据之前,请先进行以下替换:

  • SCOPE:相应权利在其中的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • FILTER:可选。返回字段值与 AIP-160 表达式匹配的权利。
  • PAGE_SIZE:可选。响应中要返回的项数。
  • PAGE_TOKEN:可选。使用上一个响应中返回的页码令牌,从哪个页面开始响应。

HTTP 方法和网址:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

[
  {
    "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "createTime": "2023-11-21T17:28:39.962144708Z",
    "updateTime": "2023-11-21T17:28:43.160309410Z",
    "eligibleUsers": [
      {
        "principals": [
          "user:alex@example.com"
        ]
      }
    ],
    "approvalWorkflow": {
      "manualApprovals": {
        "steps": [
          {
            "approvers": [
              {
                "principals": [
                  "user:bola@example.com"
                ]
              }
            ],
            "approvalsNeeded": 1
          }
        ]
      }
    },
    "privilegedAccess": {
      "gcpIamAccess": {
        "resourceType": "cloudresourcemanager.googleapis.com/Project",
        "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "roleBindings": [
          {
            "role": "roles/storage.admin"
          }
        ]
      }
    },
    "maxRequestDuration": "14400s",
    "state": "AVAILABLE",
    "requesterJustificationConfig": {
      "unstructured": {}
    },
    "additionalNotificationTargets": {
      "adminEmailRecipients": [
        "alex@example.com"
      ]
    },
    "etag": "00000000000000000000000000000000000000000000000000000000000="
  }
]

获取使用权

gcloud

gcloud beta pam entitlements describe 命令会检索特定的权利。

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

  • ENTITLEMENT_ID:您要获取详细信息的使用权的 ID。
  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam entitlements describe \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements describe `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements describe ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您应该会收到类似如下所示的响应:

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

Privileged Access Manager API 的 getEntitlement 方法可检索特定的权利。

在使用任何请求数据之前,请先进行以下替换:

  • SCOPE:从中获取权限的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:您要获取详细信息的使用权的 ID。

HTTP 方法和网址:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
  "createTime": "2023-11-21T17:28:39.962144708Z",
  "updateTime": "2023-11-21T17:28:43.160309410Z",
  "eligibleUsers": [
    {
      "principals": [
        "user:alex@example.com"
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "user:bola@example.com"
              ]
            }
          ],
          "approvalsNeeded": 1
        }
      ]
    }
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "maxRequestDuration": "14400s",
  "state": "AVAILABLE",
  "requesterJustificationConfig": {
    "unstructured": {}
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "alex@example.com"
    ]
  },
  "etag": "00000000000000000000000000000000000000000000000000000000000="
}

使用 gcloud CLI 导出权限

gcloud beta pam entitlements export 命令会将特定的权利导出到 YAML 文件。

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

  • ENTITLEMENT_ID:要导出的权利的 ID。
  • FILENAME:要将使用权内容导出到的文件名。
  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam entitlements export \
    ENTITLEMENT_ID \
    --destination=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements export `
    ENTITLEMENT_ID `
    --destination=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements export ^
    ENTITLEMENT_ID ^
    --destination=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您应该会收到类似如下所示的响应:

Exported [projects/my-project/locations/global/entitlements/ENTITLEMENT_ID] to 'FILENAME.yaml'.

以编程方式更新使用权

更新使用权时,请注意以下事项:

  • 更新后的权限配置仅适用于在更新后请求的授权。不过,批准者更改也会应用于尚未获得批准或拒绝的现有授予请求。

  • 更新使用权时,您无法更改是否需要批准。如果您需要更改审批状态,请改为创建新的权限。

  • 对某项权限的请求者和审批者所做的更改可能需要几分钟才能传播

gcloud

gcloud beta pam entitlements update 命令用于更新特定的权限。

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

  • ENTITLEMENT_ID:要更新的权利的 ID。
  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • FILENAME:包含修改后的使用权配置的文件。如需创建此文件,请获取导出现有权限,将响应保存在 YAML 文件中,然后修改该文件以用作更新请求的正文。您必须在正文中添加 ETAG,才能更新最新版本的权限。如需了解可更改或添加的字段,请参阅 以程序化方式创建权限

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam entitlements update \
    ENTITLEMENT_ID \
    --entitlement-file=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements update `
    ENTITLEMENT_ID `
    --entitlement-file=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements update ^
    ENTITLEMENT_ID ^
    --entitlement-file=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您应该会收到类似如下所示的响应:

Request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Updated entitlement [ENTITLEMENT_ID].
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - 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/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'

REST

Privileged Access Manager API 的 updateEntitlement 方法可更新特定的权利。

在使用任何请求数据之前,请先进行以下替换:

  • SCOPE:相应权利在其中的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:要更新的权利的 ID。
  • UPDATED_FIELDS:在权利中更新的字段的英文逗号分隔列表。例如:

    ?updateMask=privilegedAccess,maxRequestDuration

    对于所有可更新的字段,请将更新掩码设置为 *

  • REQUEST_ID:可选。必须是非零 UUID。 如果服务器收到带有请求 ID 的请求,则会检查是否有其他带有该 ID 的请求在过去 60 分钟内已完成。如果是,则系统会忽略新请求。
  • request.json:包含修改后的使用权配置的文件。如需创建此文件,请获取导出现有权利,将响应保存在名为 request.json 的文件中,然后修改该文件以用作更新请求的正文。您必须在正文中添加 ETAG,才能更新最新版本的权限。如需了解可更改或添加的字段,请参阅 以程序化方式创建权限

HTTP 方法和网址:

PATCH https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?updateMask=UPDATED_FIELDS&requestId=REQUEST_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "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

以编程方式删除使用权

gcloud

gcloud beta pam entitlements delete 命令用于删除特定的权利。

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

  • ENTITLEMENT_ID:要删除的权利的 ID。
  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam entitlements delete \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements delete `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements delete ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您应该会收到类似如下所示的响应:

Delete request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Deleted entitlement [ENTITLEMENT_ID].

REST

Privileged Access Manager API 的 deleteEntitlement 方法可删除特定的权限。

在使用任何请求数据之前,请先进行以下替换:

  • SCOPE:要删除相应权利的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:要删除的权利的 ID。
  • REQUEST_ID:可选。必须是非零 UUID。如果服务器收到带有请求 ID 的请求,则会检查是否有其他带有该 ID 的请求在过去 60 分钟内已完成。如果是,则系统会忽略新请求。

HTTP 方法和网址:

DELETE https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?requestId=REQUEST_ID

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "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