このページでは、Cloud KMS で鍵を作成する方法について説明します。鍵には、対称または非対称鍵、非対称署名鍵、MAC 署名鍵があります。
鍵を作成するときは、その鍵を特定の Cloud KMS のロケーションのキーリングに追加します。新規のキーリングを作成するか、既存のものを使用できます。このページでは、新しい Cloud KMS 鍵または Cloud HSM 鍵を生成し、既存のキーリングに追加します。Cloud EKM 鍵を作成するには、外部鍵を作成するをご覧ください。Cloud KMS 鍵または Cloud HSM 鍵をインポートするには、鍵をインポートするをご覧ください。
始める前に
このページで説明するタスクの前に、次のことを行っておく必要があります。
- Cloud KMS リソースを格納する Google Cloud プロジェクトのリソース。Cloud KMS リソースには、他の Google Cloud リソースを含まない別のプロジェクトを使用することをおすすめします。
- 鍵を作成するキーリングの名前と場所。 他のリソースに近いロケーションで、目的の保護レベルをサポートするキーリングを選択します。使用可能なロケーションとサポートされる保護レベルを確認するには、Cloud KMS のロケーションをご覧ください。キーリングを作成するには、キーリングを作成するをご覧ください。
- 省略可: gcloud CLI を使用するには、環境を準備します。
gcloud CLI
In the Google Cloud console, activate Cloud Shell.
必要なロール
鍵の作成に必要な権限を取得するには、プロジェクトまたは親リソースの Cloud KMS 管理者(roles/cloudkms.admin
)IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。
この事前定義ロールには、鍵の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
鍵を作成するには、次の権限が必要です。
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.get
-
cloudkms.cryptoKeys.list
-
cloudkms.cryptoKeyVersions.create
-
cloudkms.cryptoKeyVersions.get
-
cloudkms.cryptoKeyVersions.list
-
cloudkms.keyRings.get
-
cloudkms.keyRings.list
-
cloudkms.locations.get
-
cloudkms.locations.list
-
resourcemanager.projects.get
-
公開鍵を取得するには:
cloudkms.cryptoKeyVersions.viewPublicKey
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
対称暗号鍵を作成する
Console
Google Cloud コンソールで [Key Management] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[鍵名] に鍵の名前を入力します。
[保護レベル] では、[ソフトウェア] または [HSM] のいずれかを選択します。
[鍵マテリアル] では、[生成された鍵] を選択します。
[目的] として [Symmetric encrypt/decrypt] を選択します。
[ローテーション期間] と [開始日] はデフォルト値のままにします。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --protection-level "PROTECTION_LEVEL"
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションPROTECTION_LEVEL
: 鍵に使用する保護レベル(software
、hsm
など)。software
鍵では--protection-level
フラグを省略できます。
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
鍵を作成するには、CryptoKey.create
メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前PROTECTION_LEVEL
: 鍵の保護レベル(例:SOFTWARE
、HSM
)。ALGORITHM
: HMAC 署名アルゴリズム(例:HMAC_SHA256
)。サポートされているすべての HMAC アルゴリズムを確認するには、HMAC 署名アルゴリズムをご覧ください。
カスタム自動ローテーションの対称暗号鍵を作成する
鍵を作成するときに、ローテーション期間を指定できます。これは、新しい鍵バージョンが自動的に作成される時点間の時間です。次のローテーション時間を個別に指定して、次のローテーションが今から 1 ローテーション期間前または後に行われるようにすることもできます。
Console
Google Cloud コンソールを使用して鍵を作成すると、Cloud KMS は自動的にローテーション期間と次のローテーション時間を設定します。デフォルト値を使用するか、別の値を指定できます。
異なるローテーション期間と開始時間を指定する場合は、鍵の作成時に次の操作を行ってから、[作成] ボタンをクリックします。
[鍵のローテーション期間] で、オプションを選択します。
[開始日] で、最初の自動ローテーションを行う日付を選択します。[開始日] をデフォルト値のままにして、鍵を作成してから 1 回の鍵のローテーション期間が経過した後に最初の自動ローテーションを開始できます。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "encryption" \ --rotation-period ROTATION_PERIOD \ --next-rotation-time NEXT_ROTATION_TIME
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションROTATION_PERIOD
: 鍵をローテーションする間隔。たとえば、30d
は 30 日ごとに鍵をローテーションします。ローテーション期間は 1 日~100 年にする必要があります。詳細については、CryptoKey.rotationPeriod をご覧ください。NEXT_ROTATION_TIME
: 最初のローテーションが完了する時点のタイムスタンプ("2023-01-01T01:02:03"
など)。--next-rotation-time
を省略すると、最初のローテーションをコマンドの実行から 7 日後にスケジュール設定できます。詳細については、CryptoKey.nextRotationTime をご覧ください。
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
鍵を作成するには、CryptoKey.create
メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "PURPOSE", "rotationPeriod": "ROTATION_PERIOD", "nextRotationTime": "NEXT_ROTATION_TIME"}'
以下を置き換えます。
PURPOSE
: 鍵の目的。ROTATION_PERIOD
: 鍵をローテーションする間隔。たとえば、30d
は 30 日ごとに鍵をローテーションします。ローテーション期間は 1 日~100 年にする必要があります。詳細については、CryptoKey.rotationPeriod をご覧ください。NEXT_ROTATION_TIME
: 最初のローテーションが完了する時点のタイムスタンプ("2023-01-01T01:02:03"
など)。--next-rotation-time
を省略すると、最初のローテーションをコマンドの実行から 7 日後にスケジュール設定できます。詳細については、CryptoKey.nextRotationTime をご覧ください。
破棄がスケジュールされている状態の期間を設定する
デフォルトでは、Cloud KMS の鍵バージョンは、破棄がスケジュール設定(DESTROY_SCHEDULED
)された状態で 30 日経過した後、破棄されます。破棄がスケジュール設定されている状態は、ソフト削除状態とも呼ばれます。鍵バージョンがこの状態を維持する期間は、次の制約の下で構成可能です。
- 期間は鍵の作成時にのみ設定できます。
- 鍵に対して期間を指定した後は変更できません。
- この期間は、今後作成される鍵のすべてのバージョンに適用されます。
- 最小期間は 24 時間です。ただし、インポート専用鍵の期間は最小で 0 です。
- 期間の最大値は 120 日です。
- デフォルトの期間は 30 日に設定されています。
組織には、組織のポリシーで定義された破棄の最小予定期間の値が設定されている場合があります。詳細については、鍵の破棄を制御するをご覧ください。
破棄がスケジュールされた状態に対してカスタム期間を使用する鍵を作成するには、次の手順に従います。
Console
Google Cloud コンソールで [Key Management] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
アプリケーションの鍵の設定を構成します。
[その他の設定] をクリックします。
[「破棄の予定」の状態の期間] で、鍵が完全に破棄されるまでの破棄がスケジュール設定された状態の日数を選択します。
[鍵を作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --destroy-scheduled-duration DURATION
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションPURPOSE
: 鍵の目的(例:encryption
)。DURATION
: 鍵が完全に破棄されるまでの破棄がスケジュール設定されている状態にとどまる時間。
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
別の値を要求する特定のアプリケーションまたは規制の要件がある場合を除き、すべての鍵にデフォルトの期間の 24 時間を使用することをおすすめします。
非対称鍵の作成
非対称復号鍵を作成する
次の手順に従って、指定したキーリングとロケーションに非対称鍵を作成します。これらの例は、別の保護レベルやアルゴリズムを指定するように調整できます。詳細と代替値については、アルゴリズムと保護レベルをご覧ください。
鍵を初めて作成すると、鍵の初期バージョンの状態が [生成を保留中] になります。状態が [有効] に変わると、鍵を使用できます。鍵バージョンの状態について詳しくは、鍵バージョンの状態をご覧ください。
Console
Google Cloud コンソールで [Key Management] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[鍵名] に鍵の名前を入力します。
[保護レベル] では、[ソフトウェア] または [HSM] のいずれかを選択します。
[鍵マテリアル] では、[生成された鍵] を選択します。
[目的] で [非対称復号] を選択します。
[アルゴリズム] で [3072 ビット RSA - OAEP パディング - SHA256 ダイジェスト] を選択します。この値は、将来の鍵バージョンで変更できます。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-encryption" \ --default-algorithm "ALGORITHM"
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションALGORITHM
: 鍵に使用するアルゴリズム(例:rsa-decrypt-oaep-3072-sha256
)。サポートされている非対称暗号化アルゴリズムの一覧については、非対称暗号化アルゴリズムをご覧ください。
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
CryptoKey.create
を呼び出して、非対称復号鍵を作成します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_DECRYPT", "versionTemplate": {"algorithm": "ALGORITHM"}}'
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前ALGORITHM
: 鍵に使用するアルゴリズム(例:RSA_DECRYPT_OAEP_3072_SHA256
)。サポートされている非対称暗号化アルゴリズムの一覧については、非対称暗号化アルゴリズムをご覧ください。
非対称署名鍵を作成する
次の手順に従って、指定したキーリングとロケーションに非対称鍵を作成します。これらの例は、別の保護レベルやアルゴリズムを指定するように調整できます。詳細と代替値については、アルゴリズムと保護レベルをご覧ください。
鍵を初めて作成すると、鍵の初期バージョンの状態が [生成を保留中] になります。状態が [有効] に変わると、鍵を使用できます。鍵バージョンの状態について詳しくは、鍵バージョンの状態をご覧ください。
Console
Google Cloud コンソールで [Key Management] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[鍵名] に鍵の名前を入力します。
[保護レベル] では、[ソフトウェア] または [HSM] のいずれかを選択します。
[鍵マテリアル] では、[生成された鍵] を選択します。
[目的] で [非対称的な署名] を選択します。
[アルゴリズム] で [楕円曲線 P-256(SHA256 ダイジェストを使用)] を選択します。この値は、将来の鍵バージョンで変更できます。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "asymmetric-signing" \ --default-algorithm "ALGORITHM"
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションALGORITHM
: 鍵に使用するアルゴリズム(例:ec-sign-p256-sha256
)。サポートされているアルゴリズムの一覧については、非対称署名アルゴリズムをご覧ください。
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
CryptoKey.create
を呼び出して、非対称署名鍵を作成します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "ASYMMETRIC_SIGN", "versionTemplate": {"algorithm": "ALGORITHM"}}'
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前ALGORITHM
: 鍵に使用するアルゴリズム(例:EC_SIGN_P256_SHA256
)。サポートされているアルゴリズムの一覧については、非対称署名アルゴリズムをご覧ください。
公開鍵を取得する
非対称鍵を作成すると、Cloud KMS は公開鍵 / 秘密鍵のペアを作成します。有効な非対称鍵の公開鍵は、鍵の生成後いつでも取得できます。
公開鍵はプライバシー強化メール(PEM)形式です。詳しくは、一般的な考慮事項の RFC 7468 のセクションと主体者公開鍵情報のテキスト エンコーディングをご覧ください。
既存の非対称鍵バージョンの公開鍵をダウンロードする手順は次のとおりです。
Console
Google Cloud コンソールで [Key Management] ページに移動します。
公開鍵を取得する非対称鍵を含む鍵リングの名前をクリックします。
公開鍵を取得する鍵の名前をクリックします。
公開鍵を取得する鍵バージョンに対応する行で、[さらに表示
] をクリックします。[一般公開鍵の取得] をクリックします。
プロンプトに公開鍵が表示されます。公開鍵はクリップボードにコピーできます。公開鍵をダウンロードするには、[ダウンロード] をクリックします。
[公開鍵の取得] オプションが表示されない場合は、次の点を確認します。
- 鍵は非対称鍵である。
- 鍵バージョンが有効になっています。
cloudkms.cryptoKeyVersions.viewPublicKey
権限を付与されている。
Google Cloud コンソールからダウンロードした公開鍵のファイル名の形式は次のとおりです。
KEY_RING-KEY_NAME-KEY_VERSION.pub
ファイル名の各部分はハイフンで区切られます(例: ringname-keyname-version.pub
)。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys versions get-public-key KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --output-file OUTPUT_FILE_PATH
以下を置き換えます。
KEY_VERSION
: 鍵のバージョン番号KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションOUTPUT_FILE_PATH
: 公開鍵ファイルを保存するパス(例:public-key.pub
)
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
CryptoKeyVersions.getPublicKey メソッドを呼び出して公開鍵を取得します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION/publicKey" \ --request "GET" \ --header "authorization: Bearer TOKEN"
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前KEY_VERSION
: 鍵のバージョン番号
出力は次のようになります。
{ "pem": "-----BEGIN PUBLIC KEY-----\nQ29uZ3JhdHVsYXRpb25zLCB5b3UndmUgZGlzY292ZX JlZCB0aGF0IHRoaXMgaXNuJ3QgYWN0dWFsbHkgYSBwdWJsaWMga2V5ISBIYXZlIGEgbmlj ZSBkYXkgOik=\n-----END PUBLIC KEY-----\n", "algorithm": "ALGORITHM", "pemCrc32c": "2561089887", "name": "projects/PROJECT_ID/locations/LOCATION/keyRings/ KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/ KEY_VERSION", "protectionLevel": "SOFTWARE" }
公開鍵を JWK 形式に変換する
Cloud KMS では、PEM 形式の公開鍵を取得できます。一部のアプリケーションでは、JSON Web Key(JWK)などの他の鍵形式が必要になる場合があります。JWK 形式の詳細については、RFC 7517 をご覧ください。
公開鍵を JWK 形式に変換するには、次の手順を実施します。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
非対称鍵へのアクセス制御
署名者または検証者には、非対称鍵に対する適切な権限または役割が必要です。
署名を行うユーザーまたはサービスには、非対称鍵に対する
cloudkms.cryptoKeyVersions.useToSign
権限を付与します。公開鍵を取得するユーザーまたはサービスには、非対称鍵に対する
cloudkms.cryptoKeyVersions.viewPublicKey
を付与します。署名の検証には公開鍵が必要です。
Cloud KMS リリースでの権限とロールについては、権限とロールをご覧ください。
MAC 署名鍵を作成する
Console
Google Cloud コンソールで [Key Management] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[鍵名] に鍵の名前を入力します。
[保護レベル] では、[ソフトウェア] または [HSM] のいずれかを選択します。
[鍵マテリアル] では、[生成された鍵] を選択します。
[目的] で [MAC 署名 / 検証] を選択します。
省略可: [アルゴリズム] で、[HMAC 署名アルゴリズム] を選択します。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose "mac" \ --default-algorithm "ALGORITHM" \ --protection-level "PROTECTION_LEVEL"
以下を置き換えます。
KEY_NAME
: 鍵の名前KEY_RING
: 鍵を含むキーリングの名前LOCATION
: キーリングの Cloud KMS のロケーションALGORITHM
: HMAC 署名アルゴリズム(例:hmac-sha256
)。サポートされているすべての HMAC アルゴリズムを確認するには、HMAC 署名アルゴリズムをご覧ください。PROTECTION_LEVEL
: 鍵の保護レベル(例:hsm
)。software
鍵では--protection-level
フラグを省略できます。
すべてのフラグと有効な値については、--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 へのアクセスをご覧ください。
鍵を作成するには、CryptoKey.create
メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"purpose": "MAC", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
以下を置き換えます。
PROJECT_ID
: キーリングを含むプロジェクトの ID。LOCATION
: キーリングの Cloud KMS のロケーションKEY_RING
: 鍵を含むキーリングの名前。KEY_NAME
: 鍵の名前PROTECTION_LEVEL
: 鍵の保護レベル(例:SOFTWARE
、HSM
)。ALGORITHM
: HMAC 署名アルゴリズム(例:HMAC_SHA256
)。サポートされているすべての HMAC アルゴリズムを確認するには、HMAC 署名アルゴリズムをご覧ください。
次のステップ
- 鍵のローテーションについて学習する。
- 署名の作成と検証について学習する。
- RSA 鍵によるデータの暗号化と復号化について学習する。
- 公開鍵の取得について学習する。