Cloud Key Management Service 可讓您為 Cloud KMS 金鑰新增標籤。標籤為鍵/值組合,用於將相關的 Cloud KMS 金鑰分組,並儲存有關 Cloud KMS 金鑰的中繼資料。
標籤會在帳單中顯示,方便您瞭解每個標籤的成本分布情形。
您可以使用 Google Cloud CLI 與 Cloud KMS REST API 來新增、更新及移除金鑰標籤。
您可以將標籤與其他 Google Cloud 資源搭配使用,例如虛擬機器資源和儲存空間值區。如要進一步瞭解如何在 Google Cloud中使用標籤,請參閱「建立及管理標籤」一文。
什麼是標籤?
標籤是一種鍵/值組合,可指派給 Google Cloud Cloud KMS 金鑰。有助於在大規模環境下整理資源,並依所需精細程度管理成本。每項資源均可加上標籤,並根據標籤篩選資源。標籤相關資訊會轉送到帳單系統,方便依照標籤詳細分析帳單費用。使用內建的帳單報表,可依資源標籤篩選成本並加以分組。 此外,亦可使用標籤查詢帳單資料匯出檔。
標籤需求條件
套用於資源的標籤必須符合下列需求條件:
- 每項資源最多可以有 64 個標籤。
- 每個標籤都必須是鍵/值組合。
- 鍵的長度必須至少為 1 個字元,最多 63 個字元,且不能空白。值可以空白,長度上限為 63 個字元。
- 鍵和值只能使用小寫字母、數字字元、底線和連字號。所有字元都必須使用 UTF-8 編碼,允許國際字元。鍵的開頭必須是小寫字母或國際字元。
- 標籤中的鍵部分不得重複,但可讓多個資源使用相同的鍵。
上述限制適用於各個標籤的鍵和值,以及帶有標籤的個別 Google Cloud 資源;但是在每項專案內,所有資源可套用的標籤總數並無上限。
標籤的常見用法
以下是一些常見的標籤用途:
團隊或成本中心標籤:依據團隊或成本中心來新增標籤,藉此區別不同團隊 (例如
team:research和team:analytics) 擁有的 Cloud KMS 金鑰。這類標籤可用於成本會計或預算編列作業。元件標籤:例如
component:redis、component:frontend、component:ingest和component:dashboard。環境或階段標籤:例如
environment:production和environment:test。狀態標籤:例如
state:active、state:readytodelete和state:archive。擁有權標籤:用於識別各項作業的責任團隊,例如:
team:shopping-cart。
我們不建議建立大量的不重複標籤,例如幫時間戳記或每個 API 呼叫的個別值建立標籤。這種做法的問題在於,如果標籤值頻繁變更,或標籤鍵使目錄變得雜亂,就難以有效篩選資源並製作報表。
標籤和標記
標籤是一種註解,可用於查詢資源,但無法設定政策條件。標記則可作為判斷條件:系統可依據資源是否具備特定標記,允許或拒絕相應的政策,進而實現精細的政策控管。詳情請參閱「標記總覽」。
建立具有標籤的金鑰
建立金鑰時,您可以提供一或多個鍵/值組合做為標籤來為金鑰加上標籤。
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
找出您要在哪個金鑰環中建立金鑰,然後按一下該金鑰環名稱。
按一下 [Create key] (建立金鑰)。
在「金鑰名稱」中輸入金鑰名稱。
視需要設定金鑰。
按一下「其他設定」。
如要新增標籤,請按一下「新增標籤」,然後輸入「鍵」和「值」。
點選「建立」。
gcloud
如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版本的 Google Cloud CLI。
這個範例說明如何建立新金鑰,並為金鑰指派標籤。您也可以為現有金鑰新增標籤。
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose PURPOSE \
--labels "LABEL_LIST"
更改下列內容:
KEY_NAME:金鑰名稱。KEY_RING:要在其中建立金鑰的金鑰環。LOCATION:金鑰環的位置,例如global。PURPOSE:金鑰的用途,例如encryption。LABEL_LIST:以半形逗號分隔的鍵/值組合清單,每個組合的格式為LABEL_KEY=LABEL_VALUE。例如:env=prod,team=research。每個標籤鍵只能在 Cloud Key Management Service 金鑰上使用一次。如果標籤鍵指定多次,但值不同,則每個新值都會覆寫先前的值。
如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,然後安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Cloud KMS Python SDK。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,並安裝 Cloud KMS Ruby SDK。
API
使用 CryptoKeys.create 方法建立新金鑰,並在要求主體中加入 labels 屬性,即可新增標籤。例如:
{
"purpose": "ENCRYPT_DECRYPT",
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
更改下列內容:
LABEL_KEY:標籤的鍵,例如env。LABEL_VALUE:標籤的值,例如prod。
您可以新增多個標籤鍵,每個鍵都有自己的值。每個標籤鍵只能在 Cloud Key Management Service 金鑰上使用一次。如果標籤鍵指定多次,且每次的值都不同,則每個新值都會覆寫先前的值。
查看金鑰的標籤
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
按一下要檢查的金鑰所屬金鑰環名稱。
按一下頁首中的「顯示資訊面板」。
在面板中,選擇「標籤」分頁標籤。
gcloud
如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版本的 Google Cloud CLI。
gcloud kms keys describe KEY_NAME \
--keyring KEY_RING \
--location LOCATION
更改下列內容:
KEY_NAME:要查看標籤的金鑰名稱。KEY_RING:金鑰所屬金鑰環的名稱。LOCATION:金鑰環的位置。
如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,然後安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Cloud KMS Python SDK。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Cloud KMS Ruby SDK。
API
這些範例使用 curl 做為 HTTP 用戶端,示範如何使用 API。如要進一步瞭解存取權控管,請參閱「存取 Cloud KMS API」。
如要查看金鑰所套用的標籤,請使用 CryptoKeys.get 方法:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
--request "GET" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--header "x-goog-user-project: PROJECT_ID"
更改下列內容:
PROJECT_ID:包含金鑰環的專案 ID。KEY_NAME:要查看標籤的金鑰名稱。KEY_RING:金鑰所屬金鑰環的名稱。LOCATION:金鑰環的位置。
新增或更新標籤
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
按一下要檢查的金鑰所屬金鑰環名稱。
按一下頁首中的「顯示資訊面板」。
在面板中,選擇「標籤」分頁標籤。
直接在對應的文字欄位中編輯標籤值。
如要編輯標籤的鍵,請新增所需鍵名稱的標籤,然後點按要刪除標籤旁的「刪除」,刪除舊標籤。
按一下 [儲存]。
gcloud
如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版本的 Google Cloud CLI。
gcloud kms keys update KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--update-labels "LABEL_LIST"
KEY_NAME:金鑰名稱。KEY_RING:包含金鑰的金鑰環。LOCATION:金鑰環的位置。LABEL_LIST:以半形逗號分隔的鍵/值組合清單,每個組合的格式為LABEL_KEY=LABEL_VALUE。例如:env=prod,team=research。每個標籤鍵只能在 Cloud Key Management Service 金鑰上使用一次。如果標籤鍵指定多次,但值不同,則每個新值都會覆寫先前的值。
如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,然後安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Cloud KMS Ruby SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Cloud KMS Python SDK。
API
這些範例使用 curl 做為 HTTP 用戶端,示範如何使用 API。如要進一步瞭解存取權控管,請參閱「存取 Cloud KMS API」。
使用 CryptoKeys.patch 方法並在要求主體中加入 labels 屬性,即可為現有金鑰新增或更新標籤。例如:
{
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
移除標籤
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
按一下要檢查的金鑰所屬金鑰環名稱。
按一下頁首中的「顯示資訊面板」。
在面板中,選擇「標籤」分頁標籤。
找出要刪除的標籤,然後按一下旁邊的「刪除」 圖示。
按一下 [儲存]。
gcloud
如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版本的 Google Cloud CLI。
gcloud kms keys update KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--remove-labels "LABEL_KEYS"
KEY_NAME:金鑰名稱。KEY_RING:包含金鑰的金鑰環。LOCATION:金鑰環的位置。LABEL_LIST:以半形逗號分隔的標籤鍵清單,您要從金鑰中移除這些標籤鍵,例如env,team。
如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,然後安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,並安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Cloud KMS Python SDK。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Cloud KMS Ruby SDK。
API
這些範例使用 curl 做為 HTTP 用戶端,示範如何使用 API。如要進一步瞭解存取權控管,請參閱「存取 Cloud KMS API」。
使用 CryptoKeys.patch 方法並在要求主體中加入 labels 屬性做為空陣列,即可移除現有金鑰的標籤。例如:
{
"labels": []
}
稽核記錄
您可以在建立或更新金鑰時,使用 Cloud KMS 的 Cloud 稽核記錄來記錄標籤資訊。金鑰建立與更新均為管理員活動,而對標籤的變更會記錄在管理員活動記錄中。