本頁說明如何授予、變更及撤銷接受允許政策的資源存取權。
在 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 用戶端程式庫取得資源的允許政策,藉此查看存取權。
控制台
前往 Trusted Cloud 控制台,找出要查看存取權的資源。
舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。
找出要查看存取權的資源,然後勾選旁邊的核取方塊。
確認資訊面板顯示在畫面上。如果沒有看到,請按一下「顯示資訊面板」。資訊面板的「權限」分頁會列出所有可存取資源的主體。
如果開啟「顯示繼承的權限」切換鈕,清單會包含具有繼承角色的主體,也就是存取權來自父項資源角色,而非資源本身角色的主體。如要進一步瞭解政策沿用機制,請參閱「政策沿用機制和資源階層」。
gcloud
如要查看資源的存取權,請取得資源的允許政策。 如要瞭解如何解讀允許政策,請參閱瞭解允許政策。
如要取得資源的允許政策,請執行資源的 get-iam-policy
指令。
這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 get-iam-policy
指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要取得 Compute Engine VM 執行個體的允許政策,請按照gcloud compute instances get-iam-policy
參照所述格式操作。
視需要將下列引數新增至指令,指定格式並匯出結果:
--format=FORMAT > PATH
提供以下這些值:
FORMAT
:政策的所需格式。使用json
或yaml
。PATH
:政策的新輸出檔案路徑。
執行指令時,資源的允許政策會列印至控制台,或匯出至指定檔案。
REST
如要查看資源的存取權,請取得資源的允許政策。如要瞭解如何解讀允許政策,請參閱「瞭解允許政策」。
如要取得資源的允許政策,請使用資源的 getIamPolicy
方法。
HTTP 方法、網址和要求主體取決於您要查看存取權的資源。如要查看這些詳細資料,請找出擁有資源的服務 API 參考資料,然後找出資源 getIamPolicy
方法的參考資料。舉例來說,Compute Engine 執行個體的 HTTP 方法、網址和要求主體,都指定在執行個體 getIamPolicy
參考資料中。
任何資源的 getIamPolicy
方法回應都包含資源的允許政策。
授予或撤銷單一 IAM 角色
您可以使用 Trusted Cloud 主控台和 gcloud CLI,對單一主體快速授予或撤銷單一角色,而不直接編輯資源的允許政策。常見的主體類型包括服務帳戶、工作團隊身分池中的身分,以及工作負載身分池中的身分。如需所有主體類型的清單,請參閱「主體類型」。
一般而言,政策變更會在 2 分鐘內生效,但在某些情況下,可能需要 7 分鐘以上,系統才會全面套用變更。
如需協助找出最合適的預先定義角色,請參閱「找出合適的預先定義角色」。
授予單一 IAM 角色
如要將單一角色授予主體,請執行下列操作:
控制台
在 Trusted Cloud 控制台中,前往列出您要查看存取權的資源的頁面。
舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。
找出要管理存取權的資源,然後勾選旁邊的核取方塊。
確認資訊面板顯示在畫面上。如果沒有顯示,請按一下「顯示資訊面板」。
選取要授予角色的主體:
如要將角色授予資源上已有其他角色的主體,請找出包含該主體的列,然後點選該列中的
「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
。
從下拉式清單中選取要授予的角色。為遵循安全性最佳做法,請選擇僅含主體所需權限的角色。
選用:為角色新增條件。
按一下 [儲存]。主體就會取得指定資源的角色。
gcloud
如要將角色授予主體,請執行 add-iam-policy-binding
指令。
這個指令的格式會因您要管理存取權的資源類型而異。如要尋找資源的格式,請在 Google Cloud CLI 參考資料中,找出資源的 add-iam-policy-binding
指令參考資料。這份參考資料會依服務和資源分類。舉例來說,如要授予主體 Compute Engine 執行個體的角色,請按照gcloud compute instances add-iam-policy-
binding
參考資料中說明的格式操作。
撤銷單一 IAM 角色
如要撤銷主體的單一角色,請執行下列步驟:
控制台
在 Trusted Cloud 控制台中,前往列出要撤銷存取權的資源的頁面。
舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面:
找出要管理存取權的資源,然後勾選旁邊的核取方塊。
確認資訊面板顯示在畫面上。如果沒有顯示,請按一下「顯示資訊面板」。
找到包含要撤銷存取權主體的資料列。然後點選該列中的「編輯主體」
。針對要撤銷的角色按一下「刪除」圖示
按鈕,然後按一下「儲存」。
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 控制台,為單一主體授予及撤銷多個角色:
在 Trusted Cloud 控制台中,前往列出您要查看存取權的資源的頁面。
舉例來說,如要管理 Compute Engine 執行個體的存取權,請前往「VM instances」(VM 執行個體) 頁面。
找出要管理存取權的資源,然後勾選旁邊的核取方塊。
如果畫面上未顯示資訊面板,請按一下「Show info panel」(顯示資訊面板)。
選取要修改角色的主體:
如要修改資源上已有角色的主體,請找出含有該主體的列,然後點選該列中的
「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
。
修改主體的角色:
- 如要將角色授予還沒有任何資源角色的主體,請按一下「Select a role」(選取角色),然後從下拉式清單中選取要授予的角色。
- 如要將其他角色授予主體,請按一下「新增其他角色」,然後從下拉式清單中選取要授予的角色。
- 如要以其他角色取代主體的其中一個角色,請按一下現有角色,然後從下拉式清單中選擇要授予的角色。
- 如要撤銷主體的其中一個角色,請針對要撤銷的每個角色按一下「刪除」 按鈕。
按一下 [儲存]。
以程式輔助方式授予或撤銷多個 IAM 角色
如要進行大規模存取權變更,包括授予及撤銷多個主體的多個角色,請使用「讀取 - 修改 - 寫入」模式更新資源的允許政策:
- 呼叫
getIamPolicy()
讀取目前的允許政策。 - 使用文字編輯器或透過程式來編輯允許政策,藉此新增或移除任何主體或角色繫結。
- 呼叫
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
:允許政策的所需格式。使用json
或yaml
。PATH
:允許政策的新輸出檔案路徑。
執行指令時,資源的允許政策會列印至控制台,或匯出至指定檔案。
REST
如要取得資源的允許政策,請使用資源的 getIamPolicy
方法。
HTTP 方法、網址和要求主體取決於您要查看存取權的資源。如要查看這些詳細資料,請找出擁有資源的服務 API 參考資料,然後找出資源 getIamPolicy
方法的參考資料。舉例來說,Compute Engine VM 執行個體的 HTTP 方法、網址和要求主體,都指定在執行個體 getIamPolicy
參考資料中。
任何資源的 getIamPolicy
方法回應都包含資源的允許政策。將回應儲存為適當類型的檔案 (json
或 yaml
)。
修改允許政策
透過程式或使用文字編輯器修改資源允許政策的本機副本,以反映您要授予或撤銷的角色。
為確保不會覆寫其他變更,請勿編輯或移除允許政策的 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_1
、PRINCIPAL_2
、...PRINCIPAL_N
:要授予角色的主體 ID。主體 ID 通常採用以下格式:
PRINCIPAL-TYPE:ID
。 例如principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
或principalSet://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
方法回應都會包含資源更新後的允許政策。
後續步驟
- 瞭解如何管理專案、資料夾和機構的存取權,或如何管理服務帳戶的存取權。
- 瞭解如何選擇最合適的預先定義角色。
- 瞭解如何查看您可以為特定資源授予的角色。
- 瞭解如何使用條件式角色繫結,為主體的存取權設定條件。