Cloud Key Management Service を使用すると、Cloud KMS 鍵にラベルを追加できます。ラベルとは、関連する Cloud KMS 鍵をグループ化し、Cloud KMS 鍵に関するメタデータを保存する場合に使用できる Key-Value ペアのことです。
ラベルは請求書に記載されるため、ラベル間でのコストの分散を確認できます。
鍵ラベルは、Google Cloud CLI や Cloud KMS REST API を使用して、追加、更新、削除できます。
仮想マシンリソースやストレージ バケットなどの他の Google Cloud リソースでもラベルを使用できます。Google Cloud でラベルを使用する方法の詳細については、ラベルの作成と管理をご覧ください。
ラベルとは
ラベルは、Google Cloud の Cloud KMS 鍵に割り当てることができる Key-Value ペアです。ラベルはこれらのリソースを整理し、必要な粒度に基づいてコストを大規模に管理する場合に役立ちます。各リソースにラベルを設定し、そのラベルに基づいてリソースをフィルタできます。ラベルに関する情報は課金システムに転送され、請求料金をラベル別に分類できます。組み込みの請求レポートにより、リソースラベルで費用をフィルタしてグループ化できます。また、ラベルを使用して請求データ エクスポートをクエリすることもできます。
ラベルの要件
リソースに適用するラベルは、次の要件を満たす必要があります。
- 各リソースには、最大 64 個のラベルを設定できます。
- ラベルは、Key-Value ペアでなければなりません。
- キーは 1 文字以上、63 文字までにする必要があります。空にすることはできません。値は 63 文字以下にします。空にすることもできます。
- キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。キーは、小文字または国際文字で始める必要があります。
- ラベルのキー部分は、単一のリソース内では一意である必要があります。ただし、複数のリソースで同じキーを使用できます
これらの上限は、各ラベルのキーと値だけでなく、ラベルのある個々の Google Cloud リソースにも適用されます。1 つのプロジェクト内のすべてのリソースに適用できるラベルの数に上限はありません。
ラベルの一般的な用途
次に、ラベルの一般的な使用例を示します。
チームまたはコストセンターのラベル: チームやコストセンターに基づいてラベルを追加し、各チームが所有する Cloud KMS 鍵を区別します(例:
team:research
、team:analytics
)。この種類のラベルは、費用計算または予算作成に使用できます。コンポーネント ラベル:
component:redis
、component:frontend
、component:ingest
、component:dashboard
など。環境ラベルまたはステージのラベル:
environment:production
、environment:test
など。状態のラベル:
state:active
、state:readytodelete
、state:archive
など。オーナー権限ラベル: 運用担当チームの識別に使用されます(例:
team:shopping-cart
)。
すべての API 呼び出しにタイムスタンプや個別の値を設定するなど、一意のラベルを多数作成することはおすすめしません。このアプローチの問題は、値が頻繁に変更される場合やカタログを混乱させるキーを使用している場合に、リソースを効果的にフィルタして報告することが困難になることです。
ラベルとタグ
ラベルは、リソースに対するクエリ可能なアノテーションとして使用できますが、ポリシーの条件の設定には使用できません。タグを使用すると、ポリシーをきめ細かく制御することによって、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーを許可または拒否することが可能になります。詳細については、タグの概要をご覧ください。
ラベル付き鍵の作成
鍵の作成時に、1 つ以上のキーと値のペアをラベルとして指定することにより、ラベルを追加できます。
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
キーを作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[キー名] に鍵の名前を入力します。
必要に応じてキーを構成します。
[その他の設定] をクリックします。
追加するラベルごとに [ラベルを追加] をクリックし、鍵と値を入力します。
[作成] をクリックします。
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
: Key-Value ペアのカンマ区切りリスト。各ペアはLABEL_KEY=LABEL_VALUE
の形式で指定します。例:env=prod,team=research
。各ラベルキーは、Cloud Key Management Service キーで 1 回だけ使用できます。ラベルキーが異なる値で複数回指定されている場合、新しい値ごとに以前の値が上書きされます。
すべてのフラグと有効な値については、--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 キーで 1 回だけ使用できます。ラベルキーが異なる値で複数回指定されている場合、新しい値ごとに以前の値が上書きされます。
鍵のラベルの表示
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
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
これらの例では、HTTP クライアントとして curl を使用して 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
: キーリングのロケーション。
ラベルの追加または更新
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
対応するテキスト フィールドでラベルの値を直接編集します。
目的の鍵の名前の新しいラベルを追加してラベルの鍵を編集し、削除するラベルの横にある [削除
] をクリックして古いラベルを削除します。[保存] をクリックします。
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
: Key-Value ペアのカンマ区切りリスト。各ペアはLABEL_KEY=LABEL_VALUE
の形式で指定します。例:env=prod,team=research
。各ラベルキーは、Cloud Key Management Service キーで 1 回だけ使用できます。ラベルキーが異なる値で複数回指定されている場合、新しい値ごとに以前の値が上書きされます。
すべてのフラグと有効な値については、--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
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
既存のキーにラベルを追加する、または既存のラベルを更新するには、CryptoKeys.patch メソッドを使用し、リクエスト本文に labels
プロパティを指定します。例:
{
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
ラベルの削除
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
削除するラベルの横にある [削除]
アイコンをクリックします。[保存] をクリックします。
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
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
既存のキーからラベルを削除するには、CryptoKeys.patch メソッドを使用します。リクエスト本文に labels
プロパティを含めて、空の配列を指定します。例:
{
"labels": []
}
監査ロギング
キーが作成または更新されたときに、Cloud KMS の Cloud Audit Logging を使用してラベル情報を記録できます。鍵の作成と更新はどちらも管理アクティビティであり、ラベルの変更は管理アクティビティ ログに記録されます。