您可以查看授权的状态和历史记录,或者撤消其他主账号的授权(如果该授权处于有效状态)。授权结束后,授权历史记录可保留 30 天。
准备工作
确保您已启用 Privileged Access Manager 并为其设置权限。
使用 Google Cloud 控制台查看授权
如需查看授权,请按照以下说明操作:
前往 Privileged Access Manager 页面。
选择您要查看其授权的组织、文件夹或项目。
依次点击授权标签页和所有用户的授权标签页。此标签页包含所有授权、这些授权的请求者以及授权状态。授权可能具有以下状态:
状态 说明 正在激活 授权正在激活。 激活失败 由于无法重试的错误,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 分钟窗口内进行的临时更改和回滚。
在表格中,点击您要检查的权限所在行中的
更多选项。如需查看授予的详细信息(包括其历史记录),请点击查看详细信息。您还可以通过此面板撤消授权。
如需撤消有效的授权,请点击撤消授权。
您还可以在 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
:可选。该权利所属的资源类型。使用值organization
、folder
或project
。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_ID
、folders/FOLDER_ID
或projects/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
:可选。该权利所属的资源类型。使用值organization
、folder
或project
。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_ID
、folders/FOLDER_ID
或projects/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
:可选。该权利所属的资源类型。使用值organization
、folder
或project
。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_ID
、folders/FOLDER_ID
或projects/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" ] }