透過 Privileged Access Manager 要求暫時提升的存取權

如要暫時提升權限,您可以在 Privileged Access Manager (PAM) 中,針對授權要求在固定時間內獲得授權。

授權包含在授權要求成功後授予您的角色。授權結束時,Privileged Access Manager 會移除這些角色。

如要根據權利要求授予權限,請注意下列事項:

  • 你只能針對已新增的授權要求授權。 如要新增至權利,請與管理權利的主體聯絡。

  • 一次只能對一項授權啟用一項授權。

  • 視設定方式而定,授權要求可能需要經過核准才能授予。

  • 如果授權要求需要核准,且在 24 小時內未獲核准或遭拒,授權狀態就會變更為 Expired。之後,如果仍需提升權限,您必須提出新的授權要求。

  • 成功授予存取權後,可能需要幾分鐘的時間才會生效。

使用 Google Cloud 控制台要求授權

如要根據權利要求授權,請完成下列操作:

  1. 前往「Privileged Access Manager」頁面。

    前往 Privileged Access Manager

  2. 選取要申請補助的機構、資料夾或專案。

  3. 在「我的權利」分頁中,找出要提出要求的權利,然後按一下同一列中的「要求授權」

  4. 請提供下列詳細資料:

    • 授權的必要時間長度,最長不得超過權利中設定的時間長度上限。

    • 如有需要,請提供授權理由。

    • 選用:要通知哪些電子郵件地址有關授權要求。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知其他電子郵件地址,特別是使用 Workforce Identity Federation 時。

  5. 按一下「申請補助」

  6. 如要查看補助金記錄 (包括核准狀態),請依序點選「補助金」分頁和「我的補助金」分頁。

以程式輔助方式要求授予權限

如要針對權利要求授予權限,請完成下列步驟:

  1. 搜尋可要求授權的可用授權 ID。

  2. 要求授予權限。

之後,您可以查看授權狀態,確認是否已啟用,也就是您已獲得暫時提升的權限。

搜尋可用的授權

gcloud

gcloud pam entitlements search grant-requester 呼叫端存取權類型的命令會搜尋可要求授權的授權。

使用下方的任何指令資料之前,請先替換以下項目:

  • RESOURCE_TYPE:選用。權利所屬的資源類型。請使用 organizationfolderproject 值。
  • RESOURCE_ID:與 RESOURCE_TYPE 搭配使用。要管理權限的 Google Cloud專案、資料夾或機構的 ID。專案 ID 為英數字串,例如 my-project。 資料夾和機構 ID 是數字,例如 123456789012

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud pam entitlements search \
    --caller-access-type=grant-requester \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements search `
    --caller-access-type=grant-requester `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud 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_IDfolders/FOLDER_IDprojects/PROJECT_ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • FILTER:選用。傳回欄位值符合 AIP-160 運算式的授權。
  • PAGE_SIZE:選用。要在回應中傳回的項目數。
  • PAGE_TOKEN:選用。要從哪個頁面開始回應,使用先前回應中傳回的頁面權杖。

HTTP 方法和網址:

GET https://privilegedaccessmanager.googleapis.com/v1/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 pam grants create 指令會要求授權。

使用下方的任何指令資料之前,請先替換以下項目:

  • ENTITLEMENT_ID:用來建立授權的權利 ID。
  • GRANT_DURATION:要求的授權長度,以秒為單位。
  • JUSTIFICATION:要求授予權限的理由。
  • EMAIL_ADDRESS:選用。要接收授權要求通知的其他電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能需要通知一組不同的電子郵件地址,特別是使用 員工身分聯盟時。
  • RESOURCE_TYPE:選用。權利所屬的資源類型。請使用 organizationfolderproject 值。
  • RESOURCE_ID:與 RESOURCE_TYPE 搭配使用。要管理權限的 Google Cloud專案、資料夾或機構的 ID。專案 ID 為英數字串,例如 my-project。 資料夾和機構 ID 是數字,例如 123456789012

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud 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 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 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_IDfolders/FOLDER_IDprojects/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/v1/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 pam grants search 指令會搜尋您建立的授權。如要查看狀態,請在回應中尋找 state 欄位。

使用下方的任何指令資料之前,請先替換以下項目:

  • ENTITLEMENT_ID:授權所屬的授權 ID。
  • RESOURCE_TYPE:選用。權利所屬的資源類型。請使用 organizationfolderproject 值。
  • RESOURCE_ID:與 RESOURCE_TYPE 搭配使用。要管理權限的 Google Cloud專案、資料夾或機構的 ID。專案 ID 為英數字串,例如 my-project。 資料夾和機構 ID 是數字,例如 123456789012

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud pam grants search \
    --entitlement=ENTITLEMENT_ID \
    --caller-relationship=had-created \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam grants search `
    --entitlement=ENTITLEMENT_ID `
    --caller-relationship=had-created `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud 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_IDfolders/FOLDER_IDprojects/PROJECT_ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • ENTITLEMENT_ID:授權所屬的授權 ID。
  • FILTER:選用。傳回欄位值符合 AIP-160 運算式的授權。
  • PAGE_SIZE:選用。要在回應中傳回的項目數。
  • PAGE_TOKEN:選用。要從哪個頁面開始回應,使用先前回應中傳回的頁面權杖。

HTTP 方法和網址:

GET https://privilegedaccessmanager.googleapis.com/v1/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 小時內核准,授權要求已過期。
已撤銷 授權遭撤銷,主體無法再存取角色允許的資源。
撤銷 系統正在撤銷授予項目。