在 Privileged Access Manager 中建立授權

您可以建立授權,暫時提高所選主體的權限。建立授權時,請注意下列事項:

  • 您可以在機構、資料夾或專案層級建立權利。各層級的授權所授予的角色會遵循 Google Cloud 資源階層。舉例來說,在機構層級透過授權授予的角色,會沿用至資料夾和專案層級。

  • 如果您將群組新增為授權的申請者,該群組中的所有個別帳戶都可以申請授權。不過,只有要求授予權限的個人帳戶才能獲得提升的權限。

  • 如果將群組新增為授權的核准者,該群組中的所有帳戶都能核准或拒絕授權要求。

  • 系統支援基本角色 (管理員、寫入者和讀取者),但不支援舊版基本角色 (擁有者、編輯者和檢視者)。

  • 請勿在權利中加入服務代理角色。

    部分服務代理角色包含非常強大的權限,且這些角色中的權限可能會變更,恕不另行通知。請改為選擇其他預先定義的角色,或建立具備所需權限的自訂角色

事前準備

請確認您已啟用 Privileged Access Manager 並設定相關權限

使用 Google Cloud 控制台建立授權

如要建立授權,請完成下列操作:

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

    前往 Privileged Access Manager

  2. 選取要套用權限的機構、資料夾或專案。

  3. 按一下「權利」分頁標籤。

  4. 點選「建立」

  5. 新增下列授權詳細資料:

    • 授權名稱。

    • 最多可在機構、資料夾或專案中授予 30 個角色。

      您也可以為這些角色新增 IAM 條件,做法與新增條件來允許政策角色繫結相同。不過,在 Privileged Access Manager 權利中,使用條件檢查資源的標記仍處於預覽階段。

    • 授權可對應權利持續多久時間。權利的時間長度上限為 24 小時。

  6. 點選「下一步」

  7. 搜尋並新增最多 20 個有效權利要求主體。 系統支援所有主體類型,但 allUsersallAuthenticatedUsers 除外。如要新增超過 20 個身分,請將身分加入群組,並在授權中列出該群組。

  8. 選擇主體是否需要提供授權要求正當理由。

  9. 點選「下一步」

  10. 選擇允許授予角色,不必經過核准,或是搜尋並新增可核准要求的有效主體。有效主體類型如下:

    • Google 帳戶

    • Google 網路論壇

    • Google Workspace 網域

    • 工作團隊集區 ID

    如果選擇核准者,請同時選擇核准者是否需要提供核准授權要求的正當理由。每個授權最多可新增 20 位核准主體。如要新增超過 20 個身分,請將身分加入群組,並在授權中列出該群組。

  11. 點選「下一步」

  12. 選用:新增電子郵件地址,以便在授權開放索取、授權待核准,以及要求者獲得存取權時通知相關人員。系統會自動通知與授權相關聯的 Google 身分,例如核准者和要求者。不過,您可能想通知其他電子郵件地址,特別是使用員工身分聯盟時。

  13. 按一下「建立授權」

新建立的授權可能需要幾分鐘才會全面生效,並準備就緒可供使用。

透過程式建立授權

gcloud

gcloud pam entitlements create 指令會在機構、資料夾或專案層級建立授權。

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

  • ENTITLEMENT_ID:要建立的授權 ID。ID 長度必須介於 4 至 63 個字元之間,且只能使用以下字元:[a-z0-9-]。第一個字元必須是英文字母。
  • RESOURCE_TYPE:選用。權利所屬的資源類型。請使用 organizationfolderproject 值。
  • RESOURCE_ID:與 RESOURCE_TYPE 搭配使用。您要管理授權的機構、資料夾或專案 ID。 Google Cloud專案 ID 為英數字串,例如 my-project。 資料夾和機構 ID 是數字,例如 123456789012
  • SCOPE:要在其中建立授權的機構、資料夾或專案,格式為 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • RESOURCE_MANAGER_RESOURCE_TYPE:視範圍而定,可以是 OrganizationFolderProject
  • ROLE:授予權益時要指派的角色
  • TIME_IN_SECONDS:可要求授權的最長時間,以秒為單位。支援的範圍介於 30 分鐘 (1800) 和 24 小時 (86400) 之間。
  • REQUESTING_MEMBER:可要求授予授權的主體。系統支援所有 主體類型,但 allUsersallAuthenticatedUsers 除外。

  • APPROVING_EMAIL:選用。要求授權時,要通知的其他電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知另一組電子郵件地址,特別是使用 Workforce Identity Federation 時。
  • APPROVING_MEMBER:可核准授權要求的主體。有效的 主體類型如下:

    • 使用者
    • 群組
    • 網域
    • 工作團隊集區 ID
  • ADMIN_EMAIL_ADDRESS:選用。要求者獲得存取權時,用於接收通知的其他電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知另一組電子郵件地址,特別是使用 Workforce Identity Federation 時。
  • REQUESTER_EMAIL_ADDRESS:選用。授權開放索取時,用於接收通知的其他電子郵件地址。系統會自動通知與授權要求者相關聯的 Google 身分。不過,您可能想通知其他電子郵件地址,特別是使用 Workforce Identity Federation 時。

將下列內容儲存到名為 entitlement.yaml 的檔案:

privilegedAccess:
  gcpIamAccess:
    resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE
    resource: //cloudresourcemanager.googleapis.com/SCOPE
    roleBindings:
    - role: ROLE_1
    - role: ROLE_2
maxRequestDuration: TIME_IN_SECONDSs
eligibleUsers:
- principals:
  - REQUESTING_MEMBER_1
  - REQUESTING_MEMBER_2
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approverEmailRecipients:
      - APPROVING_EMAIL_1
      - APPROVING_EMAIL_2
      approvers:
      - principals:
        - APPROVING_MEMBER_1
        - APPROVING_MEMBER_2
requesterJustificationConfig:
  unstructured: {}
additionalNotificationTargets:
  adminEmailRecipients:
  - ADMIN_EMAIL_ADDRESS_1
  - ADMIN_EMAIL_ADDRESS_2
  requesterEmailRecipients:
  - REQUESTER_EMAIL_ADDRESS_1
  - REQUESTER_EMAIL_ADDRESS_2

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements create `
    ENTITLEMENT_ID `
    --entitlement-file=entitlement.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements create ^
    ENTITLEMENT_ID ^
    --entitlement-file=entitlement.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

您應該會收到類似以下的回應:

Create request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - 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/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'
新建立的授權可能需要幾分鐘才會全面生效, 並可供使用。

REST

Privileged Access Manager API 的 createEntitlement 方法會在機構、資料夾或專案層級建立授權。

使用任何要求資料之前,請先替換以下項目:

  • SCOPE:要在其中建立授權的機構、資料夾或專案,格式為 organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • ENTITLEMENT_ID:要建立的授權 ID。ID 長度必須介於 4 至 63 個字元之間,且只能使用以下字元:[a-z0-9-]。第一個字元必須是英文字母。
  • REQUEST_ID:選用。必須為非零 UUID。 如果伺服器收到含有要求 ID 的要求,會檢查過去 60 分鐘內是否已完成具有該 ID 的其他要求。如果是,系統會忽略新要求。
  • RESOURCE_MANAGER_RESOURCE_TYPE:視範圍而定,可以是 OrganizationFolderProject
  • ROLE:授予權益時要指派的角色
  • TIME_IN_SECONDS:可要求授權的最長時間,以秒為單位。支援的範圍介於 30 分鐘 (1800) 和 24 小時 (86400) 之間。
  • REQUESTING_MEMBER:可要求授予授權的主體。系統支援所有 主體類型,但 allUsersallAuthenticatedUsers 除外。

  • APPROVING_MEMBER:可核准授權要求的主體。有效的 主體類型如下:

    • 使用者
    • 群組
    • 網域
    • 工作團隊集區 ID
  • APPROVING_EMAIL:選用。要求授權時,要通知的其他電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知另一組電子郵件地址,特別是使用 Workforce Identity Federation 時。
  • ADMIN_EMAIL_ADDRESS:選用。要求者獲得存取權時,用於接收通知的其他電子郵件地址。系統會自動通知與核准者相關聯的 Google 身分。不過,您可能想通知一組不同的電子郵件地址,特別是使用 Workforce Identity Federation 時。
  • REQUESTER_EMAIL_ADDRESS:選用。授權開放索取時,用於接收通知的其他電子郵件地址。系統會自動通知與授權要求者相關聯的 Google 身分。不過,您可能想通知其他電子郵件地址,特別是使用 Workforce Identity Federation 時。

HTTP 方法和網址:

POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID&requestId=REQUEST_ID

JSON 要求主體:

{
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE",
      "resource": "//cloudresourcemanager.googleapis.com/SCOPE",
      "roleBindings": [
        {
          "role": "ROLE_1"
        },
        {
          "role": "ROLE_2"
        }
      ]
    }
  },
  "maxRequestDuration": "TIME_IN_SECONDSs",
  "eligibleUsers": [
    {
      "principals": [
        "REQUESTING_MEMBER_1",
        "REQUESTING_MEMBER_2",
        ...
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "requireApproverJustification": true,
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_1",
                "APPROVING_MEMBER_2",
                ...
              ]
            }
          ],
          "approvalsNeeded": 1,
          "approverEmailRecipients": [
            "APPROVING_EMAIL_1",
            "APPROVING_EMAIL_2",
            ...
          ]
        }
      ]
    }
  },
  "requesterJustificationConfig": {
    "unstructured": {
    }
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "ADMIN_EMAIL_ADDRESS_1",
      "ADMIN_EMAIL_ADDRESS_2",
      ...
    ],
    "requesterEmailRecipients": [
      "REQUESTER_EMAIL_ADDRESS_1",
      "REQUESTER_EMAIL_ADDRESS_2",
      ...
    ]
  }
}

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

{
    "name": "projects/my-project/locations/global/operations/OPERATION_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1.OperationMetadata",
      "createTime": "2024-03-05T03:35:14.596739353Z",
      "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
}

如要查看建立作業的進度,可以將 GET 要求傳送至下列端點:

https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/operations/OPERATION_ID

傳送 GET 要求至下列端點,列出所有作業:

https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/operations
新建立的授權可能需要幾分鐘才會全面生效, 並準備就緒可供使用。

Terraform

您可以使用 Terraform 建立授權。詳情請參閱 Terraform 說明文件中的 google_privileged_access_manager_entitlement。新建立的授權可能需要幾分鐘才會全面生效,並準備就緒可供使用。

Config Connector

您可以使用 Kubernetes Config Connector 建立權利。詳情請參閱 Config Connector 說明文件中的 PrivilegedAccessManagerEntitlement。 新建立的授權可能需要幾分鐘才會全面生效,並準備就緒可供使用。

後續步驟