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 コンソールで、[鍵の管理] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[作成する鍵の種類] で [生成された鍵] を選択します。
[鍵名] フィールドに、鍵の名前を入力します。
[保護レベル] プルダウンをクリックし、[HSM] を選択します。
[目的] プルダウンをクリックし、[対称暗号化 / 復号化] を選択します。
[ローテーション期間] と [開始日] はデフォルト値のままにします。
[ラベルを追加] ボタンをクリックします。
鍵
team
と値alpha
のラベルを追加します。[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
この例では、新しい鍵を作成して鍵にラベルを割り当てる方法を示します。既存の鍵にラベルを追加することもできます。
gcloud kms keys create key \ --keyring key-ring \ --location location \ --purpose purpose \ --labels "team=alpha,cost_center=cc1234"
key を鍵の名前に置き換えます。key-ring は、鍵が配置される鍵リングの名前に置き換えます。 location を鍵リングの Cloud KMS の場所に置き換えます。purpose は、鍵の有効な目的に置き換えます。ラベルと値のカンマ区切りリストを引用符で囲んで指定します。ラベルが異なる値で複数回指定されている場合、新しい値ごとに以前の値が上書きされます。
すべてのフラグと有効な値については、--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": "team",
"value": "alpha"
},
{
"key": "cost_center",
"value": "cc1234"
}
]
}
同じラベルキーを 2 回指定すると、最後に指定された値が優先されます。この例では、team
は beta
に設定されます。
{
"labels": [
{
"key": "team",
"value": "alpha"
},
{
"key": "team",
"value": "beta"
}
]
}
鍵のラベルの表示
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys describe key \ --keyring key-ring \ --location location
key を鍵の名前に置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location を鍵リングの Cloud KMS の場所に置き換えます。
すべてのフラグと有効な値については、--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-name/cryptoKeys/key-name" \ --request "GET" \ --header "authorization: Bearer token" \ --header "content-type: application/json" \ --header "x-goog-user-project: project-id"
ラベルの追加または更新
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
対応するテキスト フィールドでラベルの値を直接編集します。
目的の鍵の名前の新しいラベルを追加してラベルの鍵を編集し、削除するラベルの横にある [削除
] をクリックして古いラベルを削除します。[保存] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys update key \ --keyring key-ring \ --location location \ --update-labels "cost_center=cc5678"
key を鍵の名前に置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location を鍵リングの Cloud KMS の場所に置き換えます。--update-labels
には、更新するラベルとその値の引用符付きのカンマ区切りリストを指定します。ラベルの新しい値を省略すると、エラーが発生します。
すべてのフラグと有効な値については、--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": "team",
"value": "alpha"
},
{
"key": "cost_center",
"value": "cc5678"
}
]
}
ラベルの削除
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
検査する鍵の鍵リングの名前をクリックします。
ヘッダーで [情報パネルを表示] をクリックします。
パネルで [ラベル] タブを選択します。
削除するラベルの横にある [削除]
アイコンをクリックします。[保存] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys update key \ --keyring key-ring \ --location location \ --remove-labels "team,cost_center"
key を鍵の名前に置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location を鍵リングの Cloud KMS の場所に置き換えます。--remove-labels
には、削除するラベルのカンマ区切りリストを引用符で囲んで指定します。ラベルの値を指定しないでください。
すべてのフラグと有効な値については、--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 を使用してラベル情報を記録できます。鍵の作成と更新はどちらも管理アクティビティであり、ラベルの変更は管理アクティビティ ログに記録されます。