リソース: CryptoKey
CryptoKey
は、暗号オペレーションに使用できる論理鍵を表したものです。
CryptoKey
は、暗号オペレーションで使用される実際の鍵マテリアルを表す 0 個以上の versions
で構成されます。
JSON 表現 |
---|
{ "name": string, "primary": { object ( |
フィールド | |
---|---|
name |
出力専用。この |
primary |
出力専用。この
|
purpose |
変更不可。この |
createTime |
出力専用。この RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
nextRotationTime |
[CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] と [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] を介して手動で実行される鍵のローテーションは
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
versionTemplate |
新しい |
labels |
ユーザー定義のメタデータを持つラベル。 詳細については、鍵のラベル付けをご覧ください。 |
importOnly |
変更不可。この鍵にインポート済みのバージョンのみを含めるかどうか。 |
destroyScheduledDuration |
変更不可。この鍵のバージョンが
|
cryptoKeyBackend |
変更不可。この |
共用体フィールド rotation_schedule 。自動ローテーションのレートを制御します。rotation_schedule は次のいずれかになります。 |
|
rotationPeriod |
サービスが自動的に鍵のローテーションを行う場合、
|
CryptoKeyVersion
CryptoKeyVersion
は、個々の暗号鍵とそれに関連付けられた鍵のマテリアルを表しています。
ENABLED
バージョンは、暗号オペレーションに使用できます。
セキュリティ上の理由から、CryptoKeyVersion
で表される未加工の暗号鍵のマテリアルは、表示およびエクスポートできません。使用できるのは、承認されたユーザーまたはアプリケーションが Cloud KMS を呼び出すときにデータを暗号化または復号する場合に限られます。
JSON 表現 |
---|
{ "name": string, "state": enum ( |
フィールド | |
---|---|
name |
出力専用。この |
state |
|
protectionLevel |
出力専用。 |
algorithm |
出力専用。この |
attestation |
出力専用。鍵の生成時に HSM によって生成され、署名されたステートメント。このステートメントを使用して、Google とは独立して HSM に格納されている鍵の属性を検証します。 |
createTime |
出力専用。この RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
generateTime |
出力専用。この RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
destroyTime |
出力専用。この RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
destroyEventTime |
出力専用。この暗号鍵バージョンの鍵のマテリアルが破棄された時刻。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
importJob |
出力専用。この |
importTime |
出力専用。この RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
importFailureReason |
出力専用。最新のインポート エラーの根本原因。 |
generationFailureReason |
出力専用。最新の生成失敗の根本原因。 |
externalDestructionFailureReason |
出力専用。最近の外部破壊エラーの根本原因。 |
externalProtectionLevelOptions |
ExternalProtectionLevelOptions には、 |
reimportEligible |
出力専用。[ImportCryptoKeyVersionRequest.crypto_key_version][] でターゲットとして指定されている場合、この鍵バージョンを再インポートできるかどうか。 |
CryptoKeyVersionState
CryptoKeyVersion
の状態。使用可能かどうかを示します。
列挙型 | |
---|---|
CRYPTO_KEY_VERSION_STATE_UNSPECIFIED |
指定なし。 |
PENDING_GENERATION |
このバージョンはまだ生成中です。使用、有効化、無効化、破棄はできません。バージョンが準備完了になると、Cloud KMS はこのバージョンを自動的に ENABLED とマークします。 |
ENABLED |
このバージョンは、暗号オペレーションに使用できます。 |
DISABLED |
このバージョンは使用できませんが、鍵のマテリアルは引き続き使用可能であり、バージョンを ENABLED の状態に戻すことができます。 |
DESTROYED |
このバージョンは破棄され、鍵のマテリアルは保存されなくなります。このバージョンが reimportEligible であり、元の鍵マテリアルが [KeyManagementService.ImportCryptoKeyVersion][] の呼び出しで再インポートされた場合にのみ、このバージョンは再び ENABLED になります。 |
DESTROY_SCHEDULED |
このバージョンは破棄がスケジュールされており、まもなく破棄されます。[RestoreCryptoKeyVersion][KeyManagementService.RestoreCryptoKeyVersion] を呼び出して DISABLED 状態に戻します。 |
PENDING_IMPORT |
このバージョンはまだインポート中です。使用、有効化、無効化、破棄はできません。バージョンが準備完了になると、Cloud KMS はこのバージョンを自動的に ENABLED とマークします。 |
IMPORT_FAILED |
このバージョンは正常にインポートされませんでした。使用、有効化、無効化、破棄はできません。送信された鍵マテリアルは破棄されました。詳細については、CryptoKeyVersion.import_failure_reason をご覧ください。 |
GENERATION_FAILED |
このバージョンは正常に生成されませんでした。使用、有効化、無効化、破棄はできません。詳細については、CryptoKeyVersion.generation_failure_reason をご覧ください。 |
PENDING_EXTERNAL_DESTRUCTION |
このバージョンは破棄され、再び使用または有効にすることはできません。Cloud KMS は、外部鍵マネージャーに存在する対応する鍵マテリアルが破棄されるのを待機しています。 |
EXTERNAL_DESTRUCTION_FAILED |
このバージョンは破棄され、再び使用または有効にすることはできません。しかし、Cloud KMS では、外部鍵マネージャーに存在する対応する鍵マテリアルが破棄されたことを確認できませんでした。詳しくは、CryptoKeyVersion.external_destruction_failure_reason をご覧ください。 |
ProtectionLevel
ProtectionLevel
では、暗号オペレーションの実行方法を指定します。詳細については、保護レベルをご覧ください。
列挙型 | |
---|---|
PROTECTION_LEVEL_UNSPECIFIED |
指定なし。 |
SOFTWARE |
暗号オペレーションをソフトウェアで行います。 |
HSM |
暗号オペレーションをハードウェア セキュリティ モジュールで行います。 |
EXTERNAL |
暗号オペレーションは外部鍵マネージャーによって実行されます。 |
EXTERNAL_VPC |
暗号オペレーションは、EKM-over-VPC バックエンドで実行されます。 |
CryptoKeyVersionAlgorithm
各暗号オペレーションで使用する必要があるパラメータを示す CryptoKeyVersion
のアルゴリズムです。
GOOGLE_SYMMETRIC_ENCRYPTION
アルゴリズムは、CryptoKey.purpose
ENCRYPT_DECRYPT
で使用できます。
「RSA_SIGN_」で始まるアルゴリズムは、CryptoKey.purpose
ASYMMETRIC_SIGN
で使用できます。
「RSA_SIGN_」の後に続く名前のフィールドは、パディング アルゴリズム、係数ビット長、ダイジェスト アルゴリズムの各パラメータに対応します。
PSS の場合、使用されるソルトの長さはダイジェスト アルゴリズムで使用される長さと同じです。たとえば、RSA_SIGN_PSS_2048_SHA256
では、ソルト長 256 ビット(32 バイト)の PSS が使用されます。
「RSA_DECRYPT_」で始まるアルゴリズムは CryptoKey.purpose
ASYMMETRIC_DECRYPT
で使用できます。
「RSA_DECRYPT_」の後に続く名前のフィールドは、パディング アルゴリズム、係数ビット長、ダイジェスト アルゴリズムの各パラメータに対応します。
「EC_SIGN_」で始まるアルゴリズムは、CryptoKey.purpose
ASYMMETRIC_SIGN
で使用できます。
「EC_SIGN_」の後に続く名前のフィールドは、楕円曲線とダイジェスト アルゴリズムの各パラメータに対応します。
「HMAC_」で始まるアルゴリズムは、CryptoKey.purpose
MAC
で使用できます。
「HMAC_」に続く接尾辞は、使用されているハッシュ アルゴリズムに対応しています(例: SHA256)。
詳細については、鍵の目的とアルゴリズムをご覧ください。
列挙型 | |
---|---|
CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED |
指定なし。 |
GOOGLE_SYMMETRIC_ENCRYPTION |
対称暗号鍵を作成します。 |
RSA_SIGN_PSS_2048_SHA256 |
RSASSA-PSS の 2,048 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PSS_3072_SHA256 |
RSASSA-PSS の 3,072 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PSS_4096_SHA256 |
RSASSA-PSS の 4,096 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PSS_4096_SHA512 |
RSASSA-PSS の 4,096 ビットの鍵(SHA512 ダイジェストを使用)。 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1-v1_5 の 2,048 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1-v1_5 の 3,072 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1-v1_5 の 4,096 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1-v1_5 の 4,096 ビットの鍵(SHA512 ダイジェストを使用)。 |
RSA_SIGN_RAW_PKCS1_2048 |
RSASSA-PKCS1-v1_5 のエンコードなし署名(2,048 ビットの鍵を使用) |
RSA_SIGN_RAW_PKCS1_3072 |
RSASSA-PKCS1-v1_5 のエンコードなし署名(3,072 ビットの鍵を使用) |
RSA_SIGN_RAW_PKCS1_4096 |
RSASSA-PKCS1-v1_5 のエンコードなし署名(4,096 ビットの鍵を使用) |
RSA_DECRYPT_OAEP_2048_SHA256 |
RSAES-OAEP の 2,048 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_DECRYPT_OAEP_3072_SHA256 |
RSAES-OAEP の 3,072 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_DECRYPT_OAEP_4096_SHA256 |
RSAES-OAEP の 4,096 ビットの鍵(SHA256 ダイジェストを使用)。 |
RSA_DECRYPT_OAEP_4096_SHA512 |
RSAES-OAEP の 4,096 ビットの鍵(SHA512 ダイジェストを使用)。 |
RSA_DECRYPT_OAEP_2048_SHA1 |
RSAES-OAEP の 2,048 ビットの鍵(SHA1 ダイジェストを使用) |
RSA_DECRYPT_OAEP_3072_SHA1 |
RSAES-OAEP の 3,072 ビットの鍵(SHA1 ダイジェストを使用) |
RSA_DECRYPT_OAEP_4096_SHA1 |
RSAES-OAEP の 4,096 ビットの鍵(SHA1 ダイジェストを使用) |
EC_SIGN_P256_SHA256 |
NIST P-256 曲線上の ECDSA(SHA256 ダイジェストを使用)。 他のハッシュ関数も使用できます。https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_P384_SHA384 |
NIST P-384 曲線上の ECDSA(SHA384 ダイジェストを使用)。 他のハッシュ関数も使用できます。https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_SECP256K1_SHA256 |
NIST 以外の secp256k1 曲線上の ECDSA。この曲線は、HSM 保護レベルでのみサポートされます。他のハッシュ関数も使用できます。https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
HMAC_SHA256 |
256 ビット鍵を使用した HMAC-SHA256 署名。 |
HMAC_SHA1 |
160 ビット鍵を使用した HMAC-SHA1 署名。 |
HMAC_SHA384 |
384 ビット鍵を使用した HMAC-SHA384 署名。 |
HMAC_SHA512 |
512 ビット鍵を使用した HMAC-SHA512 署名。 |
HMAC_SHA224 |
224 ビット鍵を使用した HMAC-SHA224 署名。 |
EXTERNAL_SYMMETRIC_ENCRYPTION |
外部鍵マネージャーによる対称暗号化を表すアルゴリズム。 |
KeyOperationAttestation
鍵オペレーションに関する HSM 生成証明書が含まれます。 詳細については、証明書の検証をご覧ください。
JSON 表現 |
---|
{ "format": enum ( |
フィールド | |
---|---|
format |
出力専用。証明書データの形式。 |
content |
出力のみ。鍵オペレーションの実行時に HSM から提供された証明書データ。 Base64 でエンコードされた文字列。 |
certChains |
出力専用。証明書を検証するために必要な証明書チェーン |
AttestationFormat
HSM によって提供される証明書の形式。
列挙型 | |
---|---|
ATTESTATION_FORMAT_UNSPECIFIED |
指定なし。 |
CAVIUM_V1_COMPRESSED |
gzip で圧縮された Cavium HSM 証明書。この形式は Cavium によって定義されています。随時変更される可能性があります。 https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html をご覧ください。 |
CAVIUM_V2_COMPRESSED |
gzip で圧縮された Cavium HSM 証明書 V2。これは、Cavium のバージョン 3.2-08 で導入された新しい形式です。 |
CertificateChains
証明書を検証するために必要な証明書チェーン。チェーン内の証明書は PEM エンコードされ、https://tools.ietf.org/html/rfc5246#section-7.4.2 に基づいて順序付けられます。
JSON 表現 |
---|
{ "caviumCerts": [ string ], "googleCardCerts": [ string ], "googlePartitionCerts": [ string ] } |
フィールド | |
---|---|
caviumCerts[] |
証明書に対応する Cavium 証明書チェーン。 |
googleCardCerts[] |
証明書に対応する Google カード証明書チェーン。 |
googlePartitionCerts[] |
証明書に対応する Google パーティション証明書チェーン。 |
ExternalProtectionLevelOptions
ExternalProtectionLevelOptions には、EXTERNAL
保護レベルと EXTERNAL_VPC
保護レベルに固有の CryptoKeyVersion
を構成するための追加フィールドのグループが格納されます。
JSON 表現 |
---|
{ "externalKeyUri": string, "ekmConnectionKeyPath": string } |
フィールド | |
---|---|
externalKeyUri |
この |
ekmConnectionKeyPath |
[EkmConnection][] を使用する場合の EKM 上の外部鍵マテリアルへのパス。例: 「v0/my/key」。[EkmConnection][] を使用する場合は、externalKeyUri ではなくこのフィールドを設定します。 |
CryptoKeyPurpose
CryptoKeyPurpose
は、CryptoKey
の暗号機能を記述します。指定した鍵は、その目的で許可されたオペレーションにのみ使用できます。 詳細については、鍵の目的をご覧ください。
列挙型 | |
---|---|
CRYPTO_KEY_PURPOSE_UNSPECIFIED |
指定なし。 |
ENCRYPT_DECRYPT |
この目的の CryptoKeys は、[Encrypt][KeyManagementService.Encrypt] と [Decrypt][KeyManagementService.Decrypt] で使用できます。 |
ASYMMETRIC_SIGN |
この目的の CryptoKeys は、[AsymmetricSign][KeyManagementService.AsymmetricSign] と [GetPublicKey][KeyManagementService.GetPublicKey] で使用できます。 |
ASYMMETRIC_DECRYPT |
この目的の CryptoKeys は、[AsymmetricDecrypt][KeyManagementService.AsymmetricDecrypt] と [GetPublicKey][KeyManagementService.GetPublicKey] で使用できます。 |
MAC |
この目的の CryptoKeys は、[MacSign][KeyManagementService.MacSign] で使用できます。 |
CryptoKeyVersionTemplate
CryptoKeyVersionTemplate
は、新しい CryptoKeyVersion
の作成時に使用するプロパティを指定します。[CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] を使用して手動で作成するか、自動ローテーションの結果として自動的に行います。
JSON 表現 |
---|
{ "protectionLevel": enum ( |
フィールド | |
---|---|
protectionLevel |
このテンプレートに基づいて |
algorithm |
必須。このテンプレートに基づいて このフィールドが省略され、 |
メソッド |
|
---|---|
|
指定された Cloud プロジェクトの Cloud KMS によって管理されている暗号鍵を返します。 |