如需暂时提升权限,您可以在 Privileged Access Manager (PAM) 中申请在固定时间内针对使用权授予访问权限。
权利包含在授予请求成功后向您授予的角色。授予权限结束后,Privileged Access Manager 会移除这些角色。
如果您想针对某项权利申请授予,请注意以下事项:
您只能针对已添加您的权利请求授予。如需添加到某项使用权中,请与管理该使用权的负责人联系。
授予请求可能需要获得批准才能获得授予,具体取决于其设置方式。
如果授权请求需要获得批准,但在 24 小时内未获得批准或拒绝,则授权状态会更改为
Expired
。在此之后,如果仍需要提升权限,您必须重新提交授予请求。成功的授予请求可能需要几分钟时间才能生效。
使用 Google Cloud 控制台请求授权
如需针对某项权利请求授予权限,请按照以下说明操作:
前往 Privileged Access Manager 页面。
选择您要请求授予访问权限的组织、文件夹或项目。
在我的权利标签页中,找到要申请的权利,然后点击同一行中的请求授予。
提供以下详细信息:
授权所需的时长,最长不超过在权利上设置的时长上限。
如果需要,请提供授予权限的理由。
可选:要通知授予请求的电子邮件地址。与审批人关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。
点击请求授权。
如需查看您的授权历史记录(包括审批状态),请点击授权标签页和我的授权标签页。
以程序化方式请求授权
如需针对某项权利申请授予,您需要完成以下步骤:
搜索您可以请求授予使用权的有效使用权 ID。
请求授权。
之后,您可以查看授予的权限的状态,看看它是否处于有效状态,也就是说您是否已获得临时升级权限。
搜索可用的权限
gcloud
使用 grant-requester
调用方访问权限类型的 gcloud beta pam entitlements search
命令可搜索您可以请求授权的使用权。
在使用下面的命令数据之前,请先进行以下替换:
RESOURCE_TYPE
:可选。该权利所属的资源类型。使用值organization
、folder
或project
。RESOURCE_ID
:与RESOURCE_TYPE
一起使用。您要为其管理使用权限的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud beta pam entitlements search \ --caller-access-type=grant-requester \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam entitlements search ` --caller-access-type=grant-requester ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam entitlements search ^ --caller-access-type=grant-requester ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '22024-03-26T11:07:37.009498890Z' etag: ETAG 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: notMandatory: {} state: AVAILABLE updateTime: '2024-03-26T11:07:40.056780645Z'
REST
Privileged Access Manager API 的 searchEntitlements
方法使用 GRANT_REQUESTER
调用方访问权限类型搜索您可以申请授权的权限。
在使用任何请求数据之前,请先进行以下替换:
SCOPE
:相应权利在其中的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID
、folders/FOLDER_ID
或projects/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:search?callerAccessType=GRANT_REQUESTER&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": "ETAG" } ]
请求授予使用权
gcloud
gcloud beta pam grants create
命令用于请求授权。
在使用下面的命令数据之前,请先进行以下替换:
ENTITLEMENT_ID
:要针对其创建授权的权利 ID。GRANT_DURATION
:请求的授权时长(以秒为单位)。JUSTIFICATION
:请求授权的理由。EMAIL_ADDRESS
:可选。用于接收授予请求通知的其他电子邮件地址。与审批人关联的 Google 身份会自动收到通知。不过,您可能需要通知一组不同的电子邮件地址,尤其是在使用员工身份联合时。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 create \ --entitlement=ENTITLEMENT_ID \ --requested-duration="GRANT_DURATIONs" \ --justification="JUSTIFICATION" \ --location=global \ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants create ` --entitlement=ENTITLEMENT_ID ` --requested-duration="GRANT_DURATIONs" ` --justification="JUSTIFICATION" ` --location=global ` [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants create ^ --entitlement=ENTITLEMENT_ID ^ --requested-duration="GRANT_DURATIONs" ^ --justification="JUSTIFICATION" ^ --location=global ^ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
Created [GRANT_ID].
REST
Privileged Access Manager API 的 createGrant
方法会请求授权。
在使用任何请求数据之前,请先进行以下替换:
SCOPE
:相应权利在其中的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID
、folders/FOLDER_ID
或projects/PROJECT_ID
。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。ENTITLEMENT_ID
:要针对其创建授权的权利 ID。REQUEST_ID
:可选。必须是非零 UUID。 如果服务器收到带有请求 ID 的请求,则会检查是否在过去 60 分钟内已完成带有该 ID 的其他请求。如果是,则系统会忽略新请求。GRANT_DURATION
:请求的授权时长(以秒为单位)。JUSTIFICATION
:请求授权的理由。EMAIL_ADDRESS
:可选。用于接收授予请求通知的其他电子邮件地址。与审批人关联的 Google 身份会自动收到通知。不过,您可能需要通知另一组电子邮件地址,尤其是在使用员工身份联合时。
HTTP 方法和网址:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID
请求 JSON 正文:
{ "requestedDuration": "GRANT_DURATIONs", "justification": { "unstructuredJustification": "JUSTIFICATION" }, "additionalEmailRecipients": [ "EMAIL_ADDRESS_1", "EMAIL_ADDRESS_2", ... ] }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 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.330577625Z", "requester": "bola@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": [ "alex@example.com" ] }
查看授权请求的状态
gcloud
与 had-created
调用方关系一起使用的 gcloud beta pam grants search
命令可搜索您创建的授权。如需查看其状态,请在响应中查找 state
字段。
在使用下面的命令数据之前,请先进行以下替换:
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 search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=had-created \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=had-created ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=had-created ^ --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'
授权可能具有以下状态:
状态 | 说明 |
---|---|
正在激活 | 授权正在激活。 |
ACTIVATION_FAILED | 由于无法重试的错误,Privileged Access Manager 无法授予角色。 |
有效 | 授予处于有效状态,并且主账号有权访问角色允许访问的资源。 |
APPROVAL_AWAITED | 授权请求正在等待审批者做出决定。 |
被拒绝 | 授权请求已被审批者拒绝。 |
已结束 | 授权已结束,并且角色已从主账号中移除。 |
已过期 | 由于未在 24 小时内获得批准,授予请求已过期。 |
已撤消 | 授予的权限会被撤消,主账号将无法再访问角色允许访问的资源。 |
正在撤消 | 授权正在被撤销。 |
REST
Privileged Access Manager API 的 searchGrants
方法(与 HAD_CREATED
调用方关系一起使用)会搜索您创建的授权。如需查看其状态,请在响应中查找 state
字段。
在使用任何请求数据之前,请先进行以下替换:
SCOPE
:相应权利在其中的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID
、folders/FOLDER_ID
或projects/PROJECT_ID
。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。ENTITLEMENT_ID
:授予权限所属的权利的 ID。FILTER
:可选。返回字段值与 AIP-160 表达式匹配的授权。PAGE_SIZE
:可选。响应中要返回的项数。PAGE_TOKEN
:可选。使用上一个响应中返回的页码令牌,从哪个页面开始响应。
HTTP 方法和网址:
GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&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" ] } ] }
下表详细说明了授权状态。
状态 | 说明 |
---|---|
正在激活 | 授权正在激活。 |
ACTIVATION_FAILED | 由于无法重试的错误,Privileged Access Manager 无法授予角色。 |
有效 | 授予处于有效状态,并且主账号有权访问角色允许访问的资源。 |
APPROVAL_AWAITED | 授权请求正在等待审批者做出决定。 |
被拒绝 | 授权请求已被审批者拒绝。 |
已结束 | 授权已结束,并且角色已从主账号中移除。 |
已过期 | 由于未在 24 小时内获得批准,授予请求已过期。 |
已撤消 | 授予的权限会被撤消,主账号将无法再访问角色允许访问的资源。 |
正在撤消 | 授权正在被撤销。 |