本指南說明如何建立及管理服務帳戶資源的標記。
關於代碼
標記是可附加至Google Cloud內資源的鍵/值組合。您可以根據資源是否具備特定標記,有條件地允許或拒絕政策。舉例來說,您可以根據資源是否具備特定標記,有條件地授予 Identity and Access Management (IAM) 角色。如要進一步瞭解標記,請參閱「標記總覽」。
如要將標記附加至資源,請建立標記繫結資源,將值連結至 Google Cloud 資源。
所需權限
您需要的權限取決於要執行的動作。
如要取得這些權限,請要求管理員在資源階層的適當層級授予建議的角色。
查看代碼
如要查看標記定義和附加至資源的標記,您需要「標記檢視者」角色 (roles/resourcemanager.tagViewer
),或是包含下列權限的其他角色:
所需權限
resourcemanager.tagKeys.get
resourcemanager.tagKeys.list
resourcemanager.tagValues.list
resourcemanager.tagValues.get
listTagBindings
,適用於適當的資源類型。舉例來說,compute.instances.listTagBindings
可查看附加至 Compute Engine 執行個體的標記。listEffectiveTags
適用的資源類型。
例如,
compute.instances.listEffectiveTags
可查看附加至 Compute Engine 執行個體或由其沿用的所有標記。如要在機構層級查看標記,您必須在機構資源上擁有機構檢視者角色 (roles/resourcemanager.organizationViewer
)。
管理標記
如要建立、更新及刪除代碼定義,您需要「代碼管理員」角色 (roles/resourcemanager.tagAdmin
),或是包含下列權限的其他角色:
所需權限
resourcemanager.tagKeys.create
resourcemanager.tagKeys.update
resourcemanager.tagKeys.delete
resourcemanager.tagKeys.list
resourcemanager.tagKeys.get
resourcemanager.tagKeys.getIamPolicy
resourcemanager.tagKeys.setIamPolicy
resourcemanager.tagValues.create
resourcemanager.tagValues.update
resourcemanager.tagValues.delete
resourcemanager.tagValues.list
resourcemanager.tagValues.get
resourcemanager.tagValues.getIamPolicy
resourcemanager.tagValues.setIamPolicy
如要在機構層級管理標記,您需要機構資源的機構檢視者角色 (roles/resourcemanager.organizationViewer
)。
管理資源標記
如要新增及移除附加至資源的標記,您必須在標記值和要附加標記值的資源上,都具備「標記使用者」 (roles/resourcemanager.tagUser
) 角色,或是其他具有同等權限的角色。「標記使用者」角色具備下列權限:
所需權限
- 附加標記值時,您必須具備資源的權限
- 資源專屬的
createTagBinding
權限,例如 Compute Engine 執行個體的compute.instances.createTagBinding
。 - 資源專屬的
deleteTagBinding
權限,例如 Compute Engine 執行個體的compute.instances.deleteTagBinding
。 - 標記值所需的權限:
resourcemanager.tagValueBindings.create
resourcemanager.tagValueBindings.delete
- 可查看專案和標記定義的權限:
resourcemanager.tagValues.get
resourcemanager.tagValues.list
resourcemanager.tagKeys.get
resourcemanager.tagKeys.list
resourcemanager.projects.get
如要取得將標記附加至服務帳戶所需的權限,請要求管理員授予您服務帳戶的「服務帳戶管理員」 (roles/iam.ServiceAccountAdmin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立標記鍵和值
您必須先建立代碼並設定其值,才能附加代碼。 如要建立標記鍵和標記值,請參閱「建立標記」和「新增標記值」。
為現有資源新增標記
如要為現有服務帳戶新增代碼,請按照下列步驟操作:
gcloud
如要將標記附加至服務帳戶,您必須使用 gcloud resource-manager tags bindings create
指令建立標記繫結資源:
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
更改下列內容:
TAGVALUE_NAME
:附加標記值的永久 ID 或命名空間名稱,例如tagValues/567890123456
。-
RESOURCE_ID
:服務帳戶的專屬 ID 或電子郵件地址,包括 API 網域名稱 (//iam.googleapis.com/
)。舉例來說,專案test-project
中專屬 ID 為1029384756
的服務帳戶完整 ID 為//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
。
列出附加至資源的標記
您可以查看直接附加至服務帳戶或由服務帳戶繼承的標記繫結清單。
gcloud
如要取得附加至資源的標記繫結清單,請使用 gcloud resource-manager tags bindings list
指令:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID
更改下列內容:
-
RESOURCE_ID
:服務帳戶的專屬 ID 或電子郵件地址,包括 API 網域名稱 (//iam.googleapis.com/
)。舉例來說,專案test-project
中專屬 ID 為1029384756
的服務帳戶完整 ID 為//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
。
您應該會得到類似以下的回覆:
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456 tagValue: tagValues/567890123456 resource: //iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
從資源卸離標記
您可以將直接附加至服務帳戶的標記分離。如要覆寫繼承的標記,請附加具有相同鍵和不同值的標記,但無法卸離。
gcloud
如要刪除標記繫結,請使用 gcloud resource-manager tags bindings delete
指令:
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
更改下列內容:
TAGVALUE_NAME
:附加標記值的永久 ID 或命名空間名稱,例如tagValues/567890123456
。-
RESOURCE_ID
:服務帳戶的專屬 ID 或電子郵件地址,包括 API 網域名稱 (//iam.googleapis.com/
)。舉例來說,專案test-project
中專屬 ID 為1029384756
的服務帳戶完整 ID 為//iam.googleapis.com/projects/test-project/serviceAccounts/1029384756
。
刪除標籤鍵和值
移除標籤鍵或值定義時,請務必將標籤從服務帳戶中分離。您必須先刪除現有代碼附件 (稱為代碼繫結),才能刪除代碼定義本身。如要刪除標記鍵和標記值,請參閱刪除標記。
身分與存取權管理條件和標記
您可以使用標記和 IAM 條件,有條件地將角色繫結授予階層中的使用者。如果已套用具有條件角色繫結的 IAM 政策,變更或刪除附加至資源的標記,可能會移除使用者對該資源的存取權。詳情請參閱「身分與存取權管理條件和標記」。