本指南說明如何建立及管理 Secret Manager 密鑰的標記。您可以使用標籤將相關的 Secret Manager 密鑰分組,並根據標籤儲存這些資源的中繼資料。
關於代碼
標記是可附加至Google Cloud內資源的鍵/值組合。您可以將資源是否具備特定標記設為條件,並按照這項條件允許或拒絕政策。舉例來說,您可以根據資源是否具備特定標記,有條件地授予 Identity and Access Management (IAM) 角色。詳情請參閱「標記總覽」。
如要將標記附加至資源,請建立標記繫結資源,將值連結至 Google Cloud 資源。
所需權限
如要取得管理標記所需的權限,請要求管理員授予下列 IAM 角色:
-
標記檢視者 (
roles/resourcemanager.tagViewer) 標記附加的資源 -
在機構層級查看及管理標記:
機構檢視者 (
roles/resourcemanager.organizationViewer) 機構 -
建立、更新及刪除代碼定義:
代碼管理員 (
roles/resourcemanager.tagAdmin) 適用於您要建立、更新或刪除代碼的資源 -
在資源中附加及移除標記:
標記使用者 (
roles/resourcemanager.tagUser) 在標記值和要附加/移除標記值的資源上
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要將標記附加至 Secret Manager 密鑰,您需要「Secret Manager 管理員」角色 (roles/secretmanager.admin)。
建立標記鍵和值
您必須先建立標記並設定其值,才能附加標記。 詳情請參閱「建立標記」和「新增標記值」。
在建立資源時新增標籤
您可以在建立密鑰時新增標記。這樣做可為資源提供必要的中繼資料,並有助於妥善分類、追蹤費用及自動套用政策。
控制台
- 前往 Google Cloud 控制台的「Secret Manager」頁面。
- 選取建立新密鑰的選項。
- 按一下「管理代碼」。
- 如果「管理代碼」面板中未顯示貴機構,請按一下「選取代碼範圍」,然後選取貴機構或專案。
- 按一下「新增代碼」。
- 從清單中選取標記鍵和標記值。你可以使用關鍵字篩選清單。
- 按一下 [儲存]。「標記」部分會更新標記資訊。
- 建立密鑰。系統會使用提供的標記建立新密鑰。
gcloud
使用下方的任何指令資料之前,請先替換以下項目:
- SECRET_ID:密鑰的專屬 ID。
- TAG_KEY:附加的標記鍵永久 ID 或命名空間名稱,例如
tagKeys/567890123456。 - TAG_VALUE:附加標記值的永久 ID 或命名空間名稱,例如
tagValues/567890123456。
如要指定多個標記,請以半形逗號分隔,例如 TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
Windows (PowerShell)
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
Windows (cmd.exe)
gcloud secrets create SECRET_ID --tags=TAG_KEY=TAG_VALUE
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- SECRET_ID:密鑰的專屬 ID
- TAGKEY_NAME:附加的標記鍵永久 ID 或命名空間名稱,例如
tagKeys/567890123456。 - TAGVALUE_NAME:附加的標記值永久 ID 或命名空間名稱,例如
tagValues/567890123456。
HTTP 方法和網址:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
JSON 要求內文:
{
"replication": {
"automatic": {}
},
"tags": {
"TAGKEY_NAME": "TAGVALUE_NAME"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求內文儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
C#
如要執行這段程式碼,請先設定 C# 開發環境,並安裝 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Secret Manager Go SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Java
如要執行這段程式碼,請先設定 Java 開發環境,並安裝 Secret Manager Java SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Secret Manager Node.js SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud 上使用 PHP,並安裝 Secret Manager PHP SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Secret Manager Ruby SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
為現有資源新增標記
如要為現有密鑰新增標記,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Secret Manager」頁面。
- 選取要附加標記的密鑰。
- 按一下「代碼」。
- 如果「標記」面板中未顯示貴機構,請按一下「選取範圍」。選取機構,然後按一下「開啟」。
- 按一下「新增代碼」。
- 從清單中選取標記鍵和標記值。你可以使用關鍵字篩選清單。
- 按一下 [儲存]。
- 在「確認」對話方塊中,按一下「確認」即可附加代碼。
系統會發送通知,確認標記已更新。
gcloud
如要將標記附加至密鑰,您必須使用 gcloud resource-manager tags bindings create 指令建立標記繫結資源:
使用下方的任何指令資料之前,請先替換以下項目:
TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如tagValues/567890123456。RESOURCE_ID是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//secretmanager.googleapis.com/)。舉例來說,如要將標記附加至/projects/PROJECT_ID/secrets/SECRET_ID,完整 ID 為//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud resource-manager tags bindings create \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
Windows (PowerShell)
gcloud resource-manager tags bindings create ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID
Windows (cmd.exe)
gcloud resource-manager tags bindings create ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Secret Manager Node.js SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud 上使用 PHP,並安裝 Secret Manager PHP SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必須使用 cloud-platform 範圍進行驗證。
列出附加至資源的標記
您可以查看直接附加至或由祕密沿用的標記繫結清單。
控制台
- 前往 Google Cloud 控制台的「Secret Manager」頁面。
- 標記會顯示在密碼的「標記」欄中。
gcloud
如要取得附加至資源的標記繫結清單,請使用 gcloud resource-manager tags bindings list 指令:
使用下方的任何指令資料之前,請先替換以下項目:
RESOURCE_ID是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//secretmanager.googleapis.com/)。舉例來說,如要將標記附加至/projects/PROJECT_ID/secrets/SECRET_ID,完整 ID 為//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID
Windows (PowerShell)
gcloud resource-manager tags bindings list ` --parent=RESOURCE_ID
Windows (cmd.exe)
gcloud resource-manager tags bindings list ^ --parent=RESOURCE_ID
您應該會收到類似以下的回應:
name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //secretmanager.googleapis.com/projects/project-abc/secrets/secret-xyz
從資源卸離標記
您可以卸離直接附加至密鑰的標記。如要覆寫繼承的標記,請附加具有相同鍵和不同值的標記,但無法卸離。
控制台
- 前往 Google Cloud 控制台的「Secret Manager」頁面。
- 選取要移除標記的密鑰。
- 按一下「代碼」。
- 在「標記」面板中,找出要取消連結的標記,然後按一下旁邊的「刪除項目」。
- 按一下 [儲存]。
- 在「確認」對話方塊中,按一下「確認」即可取消連結標記。
系統會發送通知,確認標記已更新。
gcloud
如要刪除標記繫結,請使用 gcloud resource-manager tags bindings delete 指令:
使用下方的任何指令資料之前,請先替換以下項目:
TAGVALUE_NAME:附加標記值的永久 ID 或命名空間名稱,例如tagValues/567890123456。RESOURCE_ID是資源的完整 ID,包括用於識別資源類型的 API 網域名稱 (//secretmanager.googleapis.com/)。舉例來說,如要將標記附加至/projects/PROJECT_ID/secrets/SECRET_ID,完整 ID 為//secretmanager.googleapis.com/projects/PROJECT_ID/secrets/SECRET_ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud resource-manager tags bindings delete \ --tag-value=TAGVALUE_NAME \ --parent=RESOURCE_ID
Windows (PowerShell)
gcloud resource-manager tags bindings delete ` --tag-value=TAGVALUE_NAME ` --parent=RESOURCE_ID
Windows (cmd.exe)
gcloud resource-manager tags bindings delete ^ --tag-value=TAGVALUE_NAME ^ --parent=RESOURCE_ID
刪除標籤鍵和值
移除標記鍵或值定義時,請務必將標記從密鑰中分離。您必須先刪除現有代碼附件 (稱為代碼繫結),才能刪除代碼定義本身。詳情請參閱刪除代碼。
身分與存取權管理條件和標記
您可以使用標記和 IAM 條件,有條件地將角色繫結授予階層中的使用者。如果已套用具有條件角色繫結的 IAM 政策,變更或刪除附加至資源的標記,可能會移除使用者對該資源的存取權。詳情請參閱「身分與存取權管理條件和標記」。