创建使用权后,您可以查看、更新或删除使用权。对某项权限的请求者和审批者所做的更改可能需要几分钟才能传播。
准备工作
如需获得管理授权所需的权限,请让管理员向您授予组织、文件夹或项目的以下 IAM 角色:
-
管理组织的使用权:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin) -
Security Admin (
roles/iam.securityAdmin)
-
Privileged Access Manager Admin (
-
管理文件夹:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin) -
Folder IAM Admin (
roles/resourcemanager.folderAdmin)
-
Privileged Access Manager Admin (
-
管理项目的使用权:
-
Privileged Access Manager Admin (
roles/privilegedaccessmanager.admin) -
Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
-
Privileged Access Manager Admin (
-
查看审核日志:Logs Viewer (
roles/logs.viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供管理使用权所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
管理使用权需要以下权限:
-
管理组织的使用权:
-
resourcemanager.organizations.get -
resourcemanager.organizations.setIamPolicy -
privilegedaccessmanager.entitlements.create -
privilegedaccessmanager.entitlements.delete -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.entitlements.setIamPolicy -
privilegedaccessmanager.operations.delete -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
查看组织的使用权:
-
resourcemanager.organizations.get -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
管理文件夹的使用权:
-
resourcemanager.folders.get -
resourcemanager.folders.setIamPolicy -
privilegedaccessmanager.entitlements.create -
privilegedaccessmanager.entitlements.delete -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.entitlements.setIamPolicy -
privilegedaccessmanager.operations.delete -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
查看文件夹的使用权:
-
resourcemanager.folders.get -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
管理项目的使用权:
-
resourcemanager.projects.get -
resourcemanager.projects.getIamPolicy -
privilegedaccessmanager.entitlements.create -
privilegedaccessmanager.entitlements.delete -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.entitlements.setIamPolicy -
privilegedaccessmanager.operations.delete -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
查看项目的使用权:
-
resourcemanager.projects.get -
privilegedaccessmanager.entitlements.get -
privilegedaccessmanager.entitlements.list -
privilegedaccessmanager.operations.get -
privilegedaccessmanager.operations.list
-
-
查看审核日志:
logging.logEntries.list
使用 Google Cloud 控制台查看、更新和删除权限
前往 Privileged Access Manager 页面。
选择您要管理权限的组织、文件夹或项目。
在使用权标签页中,点击所有用户的使用权标签页。您可以在此处查找可用的权限、它们授予的角色以及有效的请求者和审批者。
在表格中,点击您要检查的权限所在行中的 更多选项。
如需查看使用权详情,请点击查看使用权详情。
如需查看与相应使用权相关联的授权,请点击查看关联的授权。
如需撤消对该使用权的所有有效授权,请点击撤消所有授权。
如需删除相应使用权,请点击删除使用权。您无法删除包含有效授权的使用权。您必须先撤消授权。
如需更新某项使用权,请点击与要更新的使用权位于同一行的 修改使用权。
更新使用权时,请注意以下事项:
更新后的权限配置仅适用于在更新后请求的授权。不过,批准者更改也会应用于尚未获得批准或拒绝的现有授权请求。
如果 Security Command Center 高级方案或企业方案层级是在组织级层激活的,您可以对使用权的审批工作流进行结构性更改。只有在相应使用权的所有授权都未处于待审批状态时,才能进行这些更改,包括添加或移除第二级审批、添加或移除第二级审批人,或更改每个级别的所需审批数量。
此功能为预览版。
以编程方式查看使用权
如需以编程方式查看权限,您可以搜索、列出、获取和导出权限。
列出使用权
gcloud
gcloud alpha pam entitlements list 命令会列出属于特定范围的权限。
在使用下面的命令数据之前,请先进行以下替换:
RESOURCE_TYPE:可选。权利所属的资源类型。使用值organization、folder或project。RESOURCE_ID:与RESOURCE_TYPE一起使用。您要为其管理使用权的 Google Cloud项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project。文件夹和组织 ID 是数字,例如123456789012。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud alpha pam entitlements list \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements list ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha pam entitlements list ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
additionalNotificationTargets:
adminEmailRecipients:
- alex@example.com
approvalWorkflow:
manualApprovals:
requireApproverJustification: true
steps:
- id: step-1
approvalsNeeded: 3
approvers:
- principals:
- user:alex@example.com
- user: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/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
gcpIamAccess:
resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID
resourceType: cloudresourcemanager.googleapis.com/Project
roleBindings:
- role: roles/storage.admin
id: hwarq_1
conditionExpression: "request.time.getHours() >= 8"
requesterJustificationConfig:
unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'
REST
Privileged Access Manager API 的 listEntitlements 方法会列出属于特定范围的权限。
在使用任何请求数据之前,请先进行以下替换:
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?filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
[
{
"name": "projects/PROJECT_ID/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,
"id": "step-1"
},
{
"approvers": [
{
"principals": [
"user:bob@example.com",
"user:jacob@example.com"
]
}
],
"approvalsNeeded": 2,
"id": "step-2"
}
]
}
},
"privilegedAccess": {
"gcpIamAccess": {
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"roleBindings": [
{
"role": "roles/storage.admin",
"id": "hwqrt_1",
"conditionExpression": "request.time.getHours() >= 8"
}
]
}
},
"maxRequestDuration": "14400s",
"state": "AVAILABLE",
"requesterJustificationConfig": {
"unstructured": {}
},
"additionalNotificationTargets": {
"adminEmailRecipients": [
"alex@example.com"
]
},
"etag": "00000000000000000000000000000000000000000000000000000000000="
}
]
获取使用权
gcloud
gcloud alpha pam entitlements describe 命令会检索特定的使用权。
在使用下面的命令数据之前,请先进行以下替换:
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 alpha pam entitlements describe \ ENTITLEMENT_ID \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements describe ` ENTITLEMENT_ID ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha pam entitlements describe ^ ENTITLEMENT_ID ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
additionalNotificationTargets:
adminEmailRecipients:
- alex@example.com
approvalWorkflow:
manualApprovals:
requireApproverJustification: true
steps:
- id: step-1
approvalsNeeded: 3
approvers:
- principals:
- user:alex@example.com
- user: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: RESOURCE_TYPE/RESOURCE_ID/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
gcpIamAccess:
resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID
resourceType: cloudresourcemanager.googleapis.com/Project
roleBindings:
- role: roles/storage.admin
id: hwarq_1
conditionExpression: "request.time.getHours() >= 8"
requesterJustificationConfig:
unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'
REST
Privileged Access Manager API 的 getEntitlement 方法可检索特定的使用权。
在使用任何请求数据之前,请先进行以下替换:
SCOPE:从中获取权限的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID、folders/FOLDER_ID或projects/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/PROJECT_ID/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,
"id": "step-1"
},
{
"approvers": [
{
"principals": [
"user:bob@example.com",
"user:jacob@example.com"
]
}
],
"approvalsNeeded": 2,
"id": "step-2"
}
]
}
},
"privilegedAccess": {
"gcpIamAccess": {
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"roleBindings": [
{
"role": "roles/storage.admin",
"id": "hwqrt_1",
"conditionExpression": "request.time.getHours() >= 8"
}
]
}
},
"maxRequestDuration": "14400s",
"state": "AVAILABLE",
"requesterJustificationConfig": {
"unstructured": {}
},
"additionalNotificationTargets": {
"adminEmailRecipients": [
"alex@example.com"
]
},
"etag": "00000000000000000000000000000000000000000000000000000000000="
}
使用 gcloud CLI 导出使用权
gcloud alpha pam entitlements export 命令会将特定的使用权导出到 YAML 文件。
在使用下面的命令数据之前,请先进行以下替换:
ENTITLEMENT_ID:要导出的使用权的 ID。FILENAME:要将使用权内容导出到的文件名。RESOURCE_TYPE:可选。权利所属的资源类型。使用值organization、folder或project。RESOURCE_ID:与RESOURCE_TYPE一起使用。您要为其管理使用权的 Google Cloud项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project。文件夹和组织 ID 是数字,例如123456789012。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud alpha pam entitlements export \ ENTITLEMENT_ID \ --destination=FILENAME.yaml \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements export ` ENTITLEMENT_ID ` --destination=FILENAME.yaml ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha 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'.
以编程方式更新使用权
更新使用权时,请注意以下事项:
更新后的权限配置仅适用于在更新后请求的授权。不过,批准者更改也会应用于尚未获得批准或拒绝的现有授权请求。
如果 Security Command Center 高级方案或企业方案层级是在组织级层激活的,您可以对使用权的审批工作流进行结构性更改。只有在相应使用权的所有授权都未处于待审批状态时,才能进行这些更改,包括添加或移除第二级审批、添加或移除第二级审批人,或更改每个级别的所需审批数量。
此功能为预览版。
gcloud
gcloud alpha pam entitlements update 命令用于更新特定的使用权。
在使用下面的命令数据之前,请先进行以下替换:
ENTITLEMENT_ID:要更新的使用权的 ID。RESOURCE_TYPE:可选。权利所属的资源类型。使用值organization、folder或project。RESOURCE_ID:与RESOURCE_TYPE一起使用。您要为其管理使用权的 Google Cloud项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project。文件夹和组织 ID 是数字,例如123456789012。FILENAME:包含修改后的使用权配置的文件。如需创建此文件,请获取或导出现有权限,将响应保存在 YAML 文件中,然后修改该文件以用作更新请求的正文。您必须在正文中添加 ETAG,才能更新最新版本的使用权。如需了解可更改或添加的字段,请参阅以编程方式创建使用权。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud alpha pam entitlements update \ ENTITLEMENT_ID \ --entitlement-file=FILENAME.yaml \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements update ` ENTITLEMENT_ID ` --entitlement-file=FILENAME.yaml ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha pam entitlements update ^ ENTITLEMENT_ID ^ --entitlement-file=FILENAME.yaml ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
您应该会收到类似如下所示的响应:
Request issued for: [ENTITLEMENT_ID]
Waiting for operation [RESOURCE_TYPE/RESOURCE_ID/locations/global/operations/OPERATION_ID] to complete...done.
Updated entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
manualApprovals:
requireApproverJustification: true
steps:
- id: step-1
approvalsNeeded: 3
approvers:
- principals:
- user:alex@example.com
- user: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
updateTime: '2024-04-09T02:39:40.066770306Z'
REST
Privileged Access Manager API 的 updateEntitlement 方法可更新特定的使用权。
在使用任何请求数据之前,请先进行以下替换:
SCOPE:权利所属的组织、文件夹或项目,格式为organizations/ORGANIZATION_ID、folders/FOLDER_ID或projects/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 alpha pam entitlements delete 命令用于删除特定的使用权。
在使用下面的命令数据之前,请先进行以下替换:
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 alpha pam entitlements delete \ ENTITLEMENT_ID \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements delete ` ENTITLEMENT_ID ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha 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_ID、folders/FOLDER_ID或projects/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