在 Privileged Access Manager 中查看授权

您可以查看授权的状态和历史记录,或者撤消其他主账号的授权(如果该授权处于有效状态)。授权结束后,授权历史记录可保留 30 天。

准备工作

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

使用 Google Cloud 控制台查看授权

如需查看授权,请按照以下说明操作:

  1. 前往 Privileged Access Manager 页面。

    前往 Privileged Access Manager

  2. 选择您要查看其授权的组织、文件夹或项目。

  3. 依次点击授权标签页和所有用户的授权标签页。此标签页包含所有授权、这些授权的请求者以及授权状态。授权可能具有以下状态:

    状态 说明
    正在激活 授权正在激活。
    激活失败 由于无法重试的错误,Privileged Access Manager 无法授予角色。
    有效 授予处于有效状态,并且主账号有权访问角色允许访问的资源。
    等待批准 授权请求正在等待审批者做出决定。
    已拒绝 授权请求已被审批者拒绝。
    已结束 授权已结束,并且角色已从主账号中移除。
    已过期 由于未在 24 小时内获得批准,授予请求已过期。
    已撤消 授予的权限会被撤消,主账号将无法再访问角色允许访问的资源。
    正在撤消 授权正在被撤销。

    状态标签

    除了这些状态外,授权的状态旁边还可能会显示以下状态标签,以指明特殊情况:

    已通过 IAM 修改

    与此授予关联的 IAM 政策绑定已直接通过 IAM 进行修改。如需详细了解修改后的绑定,请参阅 Google Cloud 控制台中的 IAM 页面。修改后的授权被撤消或到期后,Privileged Access Manager 只会移除其创建但未通过 IAM 修改的绑定。

    修改 IAM 条件标题或表达式,或移除请求者对已授予角色的访问权限,均会被视为外部修改。添加或修改 IAM 条件说明不属于外部修改。

    Privileged Access Manager 会每 5 分钟检查一次授权的对外修改。这些更改最长可能需要 5 分钟才会生效。Privileged Access Manager 可能无法检测到在此 5 分钟窗口内进行的临时更改和回滚。

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

    • 如需查看授予的详细信息(包括其历史记录),请点击查看详细信息。您还可以通过此面板撤消授权。

    • 如需撤消有效的授权,请点击撤消授权

您还可以在 Google Cloud 控制台的 IAM 页面上查看临时授予的角色。在按主账号查看标签页中,临时授予的角色具有创建者:PAM 条件。

以编程方式查看授权

如需以编程方式查看授权,您可以搜索、列出和获取授权。

搜索授权

gcloud

gcloud beta pam grants search 命令用于搜索您已创建、可以批准或拒绝或已批准或拒绝的授权。此方法不需要特定的 Privileged Access Manager 权限。

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

  • ENTITLEMENT_ID:授予权限所属的权利的 ID。您可以通过查看权限来检索 ID。
  • CALLER_RELATIONSHIP_TYPE:请使用以下某个值:

    • had-created:返回调用方创建的授权。
    • had-approved:返回调用方已批准或拒绝的授权。
    • can-approve:返回调用方可以批准或拒绝的授权。
  • RESOURCE_TYPE:可选。该权利所属的资源类型。使用值 organizationfolderproject
  • RESOURCE_ID:与 RESOURCE_TYPE 一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam grants search \
    --entitlement=ENTITLEMENT_ID \
    --caller-relationship=CALLER_RELATIONSHIP_TYPE \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam grants search `
    --entitlement=ENTITLEMENT_ID `
    --caller-relationship=CALLER_RELATIONSHIP_TYPE `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam grants search ^
    --entitlement=ENTITLEMENT_ID ^
    --caller-relationship=CALLER_RELATIONSHIP_TYPE ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

additionalEmailRecipients:
- bola@example.com
createTime: '2024-03-07T00:34:32.557017289Z'
justification:
  unstructuredJustification: Renaming a file to mitigate issue #312
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requestedDuration: 3600s
requester: cruz@example.com
state: DENIED
timeline:
  events:
  - eventTime: '2024-03-07T00:34:32.793769042Z'
    requested:
      expireTime: '2024-03-08T00:34:32.793769042Z'
  - denied:
      actor: alex@example.com
      reason: Issue has already been resolved
    eventTime: '2024-03-07T00:36:08.309116203Z'
updateTime: '2024-03-07T00:34:32.926967128Z'

REST

Privileged Access Manager API 的 searchGrants 方法会搜索您已创建的授权,可以批准或拒绝的授权,或已批准或拒绝的授权。此方法不需要特定的 Privileged Access Manager 权限。

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

  • SCOPE:相应权利在其中的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:授予权限所属的权利的 ID。您可以通过查看权限来检索 ID。
  • RELATIONSHIP_TYPE:有效值包括:
    • HAD_CREATED:返回调用方创建的授权。
    • HAD_APPROVED:返回调用方之前批准或拒绝的授权。
    • CAN_APPROVE:返回调用方可以批准或拒绝的授权。
  • FILTER:可选。返回字段值与 AIP-160 表达式匹配的授权。
  • PAGE_SIZE:可选。响应中要返回的项数。
  • PAGE_TOKEN:可选。使用上一个响应中返回的页码令牌,从哪个页面开始响应。

HTTP 方法和网址:

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

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

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

{
  "grants": [
    {
      "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
      "createTime": "2024-03-06T03:08:49.330577625Z",
      "updateTime": "2024-03-06T03:08:49.625874598Z",
      "requester": "alex@example.com",
      "requestedDuration": "3600s",
      "justification": {
        "unstructuredJustification": "Emergency service for outage"
      },
      "state": "APPROVAL_AWAITED",
      "timeline": {
        "events": [
          {
            "eventTime": "2024-03-06T03:08:49.462765846Z",
            "requested": {
              "expireTime": "2024-03-07T03:08:49.462765846Z"
            }
          }
        ]
      },
      "privilegedAccess": {
        "gcpIamAccess": {
          "resourceType": "cloudresourcemanager.googleapis.com/Project",
          "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
          "roleBindings": [
            {
              "role": "roles/storage.admin"
            }
          ]
        }
      },
      "additionalEmailRecipients": [
        "bola@google.com"
      ]
    }
  ]
}

列出授权

gcloud

gcloud beta pam grants list 命令会列出属于特定权限的授权。

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

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

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud beta pam grants list \
    --entitlement=ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam grants list `
    --entitlement=ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam grants list ^
    --entitlement=ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

createTime: '2024-03-25T23:10:16.952789492Z'
justification:
  unstructuredJustification: Adding missing file for service to work properly
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requestedDuration: 1800s
requester: alex@example.com
state: EXPIRED
timeline:
  events:
  - eventTime: '2024-03-25T23:10:17.155612987Z'
    requested:
      expireTime: '2024-03-26T23:10:17.155612987Z'
  - eventTime: '2024-03-26T23:10:17.279777370Z'
    expired: {}
updateTime: '2024-03-25T23:10:17.273416257Z'

REST

Privileged Access Manager API 的 listGrants 方法会列出属于特定权利的授权。

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

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

HTTP 方法和网址:

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

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

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

{
  "grants": [
    {
      "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
      "createTime": "2024-03-06T03:08:49.330577625Z",
      "updateTime": "2024-03-06T03:08:49.625874598Z",
      "requester": "alex@example.com",
      "requestedDuration": "3600s",
      "justification": {
        "unstructuredJustification": "Emergency service for outage"
      },
      "state": "APPROVAL_AWAITED",
      "timeline": {
        "events": [
          {
            "eventTime": "2024-03-06T03:08:49.462765846Z",
            "requested": {
              "expireTime": "2024-03-07T03:08:49.462765846Z"
            }
          }
        ]
      },
      "privilegedAccess": {
        "gcpIamAccess": {
          "resourceType": "cloudresourcemanager.googleapis.com/Project",
          "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
          "roleBindings": [
            {
              "role": "roles/storage.admin"
            }
          ]
        }
      },
      "additionalEmailRecipients": [
        "bola@google.com"
      ]
    }
  ]
}

获取授权

gcloud

gcloud beta pam grants describe 命令会检索特定授权。

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

  • GRANT_ID:您要获取详细信息的授权的 ID。
  • 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 grants describe \
    GRANT_ID \
    --entitlement=ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam grants describe `
    GRANT_ID `
    --entitlement=ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam grants describe ^
    GRANT_ID ^
    --entitlement=ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

createTime: '2024-03-25T23:10:16.952789492Z'
justification:
  unstructuredJustification: Adding missing file for service to work properly
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requestedDuration: 1800s
requester: alex@example.com
state: EXPIRED
timeline:
  events:
  - eventTime: '2024-03-25T23:10:17.155612987Z'
    requested:
      expireTime: '2024-03-26T23:10:17.155612987Z'
  - eventTime: '2024-03-26T23:10:17.279777370Z'
    expired: {}
updateTime: '2024-03-25T23:10:17.273416257Z'

REST

Privileged Access Manager API 的 getGrant 方法可检索特定授权。

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

  • SCOPE:相应权利在其中的组织、文件夹或项目,格式为 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。项目 ID 是字母数字字符串,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012
  • ENTITLEMENT_ID:授予权限所属的权利的 ID。
  • GRANT_ID:您要获取详细信息的授权的 ID。

HTTP 方法和网址:

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

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

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

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID",
  "createTime": "2024-03-06T03:08:49.330577625Z",
  "updateTime": "2024-03-06T03:08:49.625874598Z",
  "requester": "alex@example.com",
  "requestedDuration": "3600s",
  "justification": {
    "unstructuredJustification": "Emergency service for outage"
  },
  "state": "APPROVAL_AWAITED",
  "timeline": {
    "events": [
      {
        "eventTime": "2024-03-06T03:08:49.462765846Z",
        "requested": {
          "expireTime": "2024-03-07T03:08:49.462765846Z"
        }
      }
    ]
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "additionalEmailRecipients": [
    "bola@google.com"
  ]
}