管理其他資源的存取權

本頁說明如何授予、變更及撤銷接受允許政策的資源存取權。

在 Identity and Access Management (IAM) 中,存取權是透過允許政策 (也稱為 IAM 政策) 授予。允許政策會附加至Trusted Cloud by S3NS 資源。每項允許政策都包含一組角色繫結,可將一或多個主體 (例如使用者或服務帳戶) 與 IAM 角色建立關聯。這些角色繫結會將指定角色授予主體,包括附加允許政策的資源,以及該資源的所有子系。如要進一步瞭解允許政策,請參閱瞭解允許政策

本頁說明如何使用Trusted Cloud 控制台、Google Cloud CLI 和 REST API 管理資源存取權。您也可以使用 Trusted Cloud 用戶端程式庫管理存取權。

事前準備

查看接受允許政策的資源類型清單。

所需權限

如要管理資源的存取權,您必須具備資源的取得權限,以及資源的允許政策取得和設定權限。這些權限的格式如下,其中 SERVICE 是擁有資源的服務名稱,RESOURCE_TYPE 則是您要管理存取權的資源類型名稱:

  • SERVICE.RESOURCE_TYPE.get
  • SERVICE.RESOURCE_TYPE.getIamPolicy
  • SERVICE.RESOURCE_TYPE.setIamPolicy

舉例來說,如要管理 Compute Engine 執行個體的存取權,您需要下列權限:

  • compute.instances.get
  • compute.instances.getIamPolicy
  • compute.instances.setIamPolicy

如要取得必要權限,請要求管理員授予包含這些權限的預先定義或自訂角色。舉例來說,管理員可以授予您安全管理員角色 (roles/iam.securityAdmin),這個角色包含管理幾乎所有 Trusted Cloud 資源存取權的權限。

查看目前的存取權

以下章節說明如何使用 Trusted Cloud 控制台、gcloud CLI 和 REST API,查看哪些人有權存取資源。您也可以使用 Trusted Cloud 用戶端程式庫取得資源的允許政策,藉此查看存取權。

控制台

  1. 前往 Trusted Cloud 控制台,找出要查看存取權的資源。

    舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 找出要查看存取權的資源,然後勾選旁邊的核取方塊。

  3. 確認資訊面板顯示在畫面上。如果沒有看到,請按一下「顯示資訊面板」。資訊面板的「權限」分頁會列出所有可存取資源的主體。

    如果開啟「顯示繼承的權限」切換鈕,清單會包含具有繼承角色的主體,也就是存取權來自父項資源角色,而非資源本身角色的主體。如要進一步瞭解政策沿用機制,請參閱「政策沿用機制和資源階層」。

gcloud

如要查看資源的存取權,請取得資源的允許政策。 如要瞭解如何解讀允許政策,請參閱瞭解允許政策

如要取得資源的允許政策,請執行資源的 get-iam-policy 指令。

這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 get-iam-policy 指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要取得 Compute Engine VM 執行個體的允許政策,請按照gcloud compute instances get-iam-policy參照所述格式操作。

視需要將下列引數新增至指令,指定格式並匯出結果:

--format=FORMAT > PATH

提供以下這些值:

  • FORMAT:政策的所需格式。使用 jsonyaml
  • PATH:政策的新輸出檔案路徑。

執行指令時,資源的允許政策會列印至控制台,或匯出至指定檔案。

REST

如要查看資源的存取權,請取得資源的允許政策。如要瞭解如何解讀允許政策,請參閱「瞭解允許政策」。

如要取得資源的允許政策,請使用資源的 getIamPolicy 方法。

HTTP 方法、網址和要求主體取決於您要查看存取權的資源。如要查看這些詳細資料,請找出擁有資源的服務 API 參考資料,然後找出資源 getIamPolicy 方法的參考資料。舉例來說,Compute Engine 執行個體的 HTTP 方法、網址和要求主體,都指定在執行個體 getIamPolicy 參考資料中。

任何資源的 getIamPolicy 方法回應都包含資源的允許政策。

授予或撤銷單一 IAM 角色

您可以使用 Trusted Cloud 主控台和 gcloud CLI,對單一主體快速授予或撤銷單一角色,而不直接編輯資源的允許政策。常見的主體類型包括服務帳戶、工作團隊身分池中的身分,以及工作負載身分池中的身分。如需所有主體類型的清單,請參閱「主體類型」。

一般而言,政策變更會在 2 分鐘內生效,但在某些情況下,可能需要 7 分鐘以上,系統才會全面套用變更。

如需協助找出最合適的預先定義角色,請參閱「找出合適的預先定義角色」。

授予單一 IAM 角色

如要將單一角色授予主體,請執行下列操作:

控制台

  1. 在 Trusted Cloud 控制台中,前往列出您要查看存取權的資源的頁面。

    舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 找出要管理存取權的資源,然後勾選旁邊的核取方塊。

  3. 確認資訊面板顯示在畫面上。如果沒有顯示,請按一下「顯示資訊面板」

  4. 選取要授予角色的主體:

    • 如要將角色授予資源上已有其他角色的主體,請找出包含該主體的列,然後點選該列中的 「Edit principal」(編輯主體),並按一下 「Add another role」(新增其他角色)

    • 如要將角色授予資源上還沒有其他角色的主體,請按一下 「新增主體」,然後輸入主體的 ID,例如 //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com

  5. 從下拉式清單中選取要授予的角色。為遵循安全性最佳做法,請選擇僅含主體所需權限的角色。

  6. 選用:為角色新增條件

  7. 按一下 [儲存]。主體就會取得指定資源的角色。

gcloud

如要將角色授予主體,請執行 add-iam-policy-binding 指令。

這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 add-iam-policy-binding 指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要授予主體 Compute Engine 執行個體的角色,請按照gcloud compute instances add-iam-policy- binding參考資料中說明的格式操作。

撤銷單一 IAM 角色

如要撤銷主體的單一角色,請執行下列步驟:

控制台

  1. 在 Trusted Cloud 控制台中,前往列出要撤銷存取權的資源的頁面。

    舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面:

    前往 VM 執行個體

  2. 找出要管理存取權的資源,然後勾選旁邊的核取方塊。

  3. 確認資訊面板顯示在畫面上。如果沒有顯示,請按一下「顯示資訊面板」

  4. 找到包含要撤銷存取權主體的資料列。然後點選該列中的「編輯主體」

  5. 針對要撤銷的角色按一下「刪除」圖示 按鈕,然後按一下「儲存」

gcloud

如要快速撤銷主體的角色,請執行 remove-iam-policy-binding 指令。

這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 remove-iam-policy-binding 指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要授予主體 Compute Engine 執行個體的角色,請按照gcloud compute instances remove-iam-policy-binding參考資料中說明的格式操作。

使用 Trusted Cloud 控制台授予或撤銷多個 IAM 角色

您可以使用 Trusted Cloud 控制台,為單一主體授予及撤銷多個角色:

  1. 在 Trusted Cloud 控制台中,前往列出您要查看存取權的資源的頁面。

    舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 找出要管理存取權的資源,然後勾選旁邊的核取方塊。

  3. 如果畫面上未顯示資訊面板,請按一下「Show info panel」(顯示資訊面板)

  4. 選取要修改角色的主體:

    • 如要修改資源上已有角色的主體,請找出含有該主體的列,然後點選該列中的 「Edit principal」(編輯主體),並按一下 「Add another role」(新增其他角色)

    • 如要將角色授予資源上沒有任何角色的主體,請按一下 「Add principal」(新增主體),然後輸入主體的 ID,例如 //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com

  5. 修改主體的角色:

    • 如要將角色授予還沒有任何資源角色的主體,請按一下「Select a role」(選取角色),然後從下拉式清單中選取要授予的角色。
    • 如要將其他角色授予主體,請按一下「新增其他角色」,然後從下拉式清單中選取要授予的角色。
    • 如要以其他角色取代主體的其中一個角色,請按一下現有角色,然後從下拉式清單中選擇要授予的角色。
    • 如要撤銷主體的其中一個角色,請針對要撤銷的每個角色按一下「刪除」 按鈕。

    您也可以為角色新增條件修改角色的條件,或移除角色的條件

  6. 按一下 [儲存]

以程式輔助方式授予或撤銷多個 IAM 角色

如要進行大規模存取權變更,包括授予及撤銷多個主體的多個角色,請使用「讀取 - 修改 - 寫入」模式更新資源的允許政策:

  1. 呼叫 getIamPolicy() 讀取目前的允許政策。
  2. 使用文字編輯器或透過程式來編輯允許政策,藉此新增或移除任何主體或角色繫結。
  3. 呼叫 setIamPolicy() 寫入更新後的允許政策。

本節說明如何使用 gcloud CLI 和 REST API 更新允許政策。您也可以使用Trusted Cloud 用戶端程式庫更新允許政策。

一般而言,政策變更會在 2 分鐘內生效,但在某些情況下,可能需要 7 分鐘以上,系統才會全面套用變更。

取得目前的允許政策

gcloud

如要取得資源的允許政策,請執行資源的 get-iam-policy 指令。

這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 get-iam-policy 指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要取得 Compute Engine VM 執行個體的允許政策,請按照gcloud compute instances get-iam-policy參照所述格式操作。

視需要將下列引數新增至指令,指定格式並匯出結果:

--format=FORMAT > PATH

提供以下這些值:

  • FORMAT:允許政策的所需格式。使用 jsonyaml
  • PATH:允許政策的新輸出檔案路徑。

執行指令時,資源的允許政策會列印至控制台,或匯出至指定檔案。

REST

如要取得資源的允許政策,請使用資源的 getIamPolicy 方法。

HTTP 方法、網址和要求主體取決於您要查看存取權的資源。如要查看這些詳細資料,請找出擁有資源的服務 API 參考資料,然後找出資源 getIamPolicy 方法的參考資料。舉例來說,Compute Engine VM 執行個體的 HTTP 方法、網址和要求主體,都指定在執行個體 getIamPolicy 參考資料中。

任何資源的 getIamPolicy 方法回應都包含資源的允許政策。將回應儲存為適當類型的檔案 (jsonyaml)。

修改允許政策

透過程式或使用文字編輯器修改資源允許政策的本機副本,以反映您要授予或撤銷的角色。

為確保不會覆寫其他變更,請勿編輯或移除允許政策的 etag 欄位。etag 欄位會指出允許政策的目前狀態。當您設定更新後的允許政策時,IAM 會比較要求中的 etag 值與現有的 etag,並且只會在兩個值相符時才寫入允許政策。

如要編輯允許政策授予的角色,請編輯允許政策中的角色繫結。角色繫結的格式如下:

{
  "role": "ROLE_NAME",
  "members": [
    "PRINCIPAL_1",
    "PRINCIPAL_2",
    ...
    "PRINCIPAL_N"
  ],
  "conditions:" {
    CONDITIONS
  }
}

預留位置的值如下:

  • ROLE_NAME:要授予的角色名稱。請使用下列其中一種格式:

    • 預先定義的角色:roles/SERVICE.IDENTIFIER
    • 專案層級自訂角色:projects/PROJECT_ID/roles/IDENTIFIER
    • 機構層級的自訂角色:organizations/ORG_ID/roles/IDENTIFIER

    如需預先定義角色清單,請參閱「瞭解角色」。

  • PRINCIPAL_1PRINCIPAL_2...PRINCIPAL_N:要授予角色的主體 ID。

    主體 ID 通常採用以下格式: PRINCIPAL-TYPE:ID。 例如 principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.comprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。如需 PRINCIPAL 可用的完整值清單,請參閱「主體 ID」。

  • CONDITIONS:選用。指定授予存取權時機的條件

授予角色

如要將角色授予主體,請修改允許政策中的角色繫結。 如要瞭解可授予的角色,請參閱「瞭解角色」一文,或查看資源可授予的角色。如需協助找出最合適的預先定義角色,請參閱「找出合適的預先定義角色」。

您也可以選擇使用條件,只在符合特定需求時授予角色。

如要授予已包含在允許政策中的角色,請將主體新增至現有角色繫結:

gcloud

編輯允許政策,將主體新增至現有角色繫結。請注意,您必須設定更新後的允許政策,這項變更才會生效。

舉例來說,假設允許政策包含下列角色繫結,可將 Compute 執行個體管理員角色 (roles/compute.instanceAdmin) 授予 Kai:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/kai@example.com"
  ]
}

如要將相同角色授予 Raha,請將 Raha 的主體 ID 新增至現有角色繫結:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/kai@example.com",
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
  ]
}

REST

編輯允許政策,將主體新增至現有角色繫結。請注意,您必須設定更新後的允許政策,這項變更才會生效。

舉例來說,假設允許政策包含下列角色繫結,可將 Compute 執行個體管理員角色 (roles/compute.instanceAdmin) 授予 Kai:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/kai@example.com"
  ]
}

如要將相同角色授予 Raha,請將 Raha 的主體 ID 新增至現有角色繫結:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/kai@example.com",
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
  ]
}

如要授予允許政策尚未包含的角色,請新增角色繫結:

gcloud

編輯允許政策,新增角色繫結,將角色授予主體。您必須設定更新後的允許政策,這項變更才會生效。

舉例來說,如要將 Compute Load Balancer 管理員角色 (roles/compute.loadBalancerAdmin) 授予 Raha,請將下列角色繫結新增至允許政策的 bindings 陣列:

{
  "role": "roles/compute.loadBalancerAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
  ]
}

REST

編輯允許政策,新增角色繫結,將角色授予主體。您必須設定更新後的允許政策,這項變更才會生效。

舉例來說,如要將 Compute Load Balancer 管理員角色 (roles/compute.loadBalancerAdmin) 授予 Raha,請將下列角色繫結新增至允許政策的 bindings 陣列:

{
  "role": "roles/compute.loadBalancerAdmin",
  "members": [
    "principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
  ]
}

撤銷角色

如要撤銷角色,請從角色繫結中移除主體。如果角色繫結中沒有其他主體,請移除整個角色繫結。

gcloud

如要撤銷角色,請編輯 get-iam-policy 指令傳回的 JSON 或 YAML 允許政策。您必須設定更新後的允許政策,這項變更才會生效。

如要撤銷主體的角色,請從允許政策的 bindings 陣列中刪除所需的主體或繫結。

REST

如要撤銷角色,請編輯 get-iam-policy 指令傳回的 JSON 或 YAML 允許政策。您必須設定更新後的允許政策,這項變更才會生效。

如要撤銷主體的角色,請從允許政策的 bindings 陣列中刪除所需的主體或繫結。

設定允許政策

修改允許政策以授予及撤銷所需角色後,請呼叫 setIamPolicy() 進行更新。

gcloud

如要為資源設定允許政策,請為該資源執行 set-iam-policy 指令。

這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 set-iam-policy 指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要取得 Compute Engine VM 執行個體的允許政策,請按照gcloud compute instances set-iam-policy參照所述格式操作。

任何資源的 set-iam-policy 指令回應都會包含資源更新後的允許政策。

REST

如要設定資源的允許政策,請使用資源的 setIamPolicy 方法。

HTTP 方法、網址和要求主體取決於您要查看存取權的資源。如要查看這些詳細資料,請找出擁有資源的服務 API 參考資料,然後找出資源 setIamPolicy 方法的參考資料。舉例來說,Compute Engine VM 執行個體的 HTTP 方法、網址和要求主體,都指定在執行個體 setIamPolicy 參考資料中。

任何資源的 setIamPolicy 方法回應都會包含資源更新後的允許政策。

後續步驟