REST Resource: projects.cryptoKeys

リソース: CryptoKey

CryptoKey は、暗号オペレーションに使用できる論理鍵を表したものです。

CryptoKey は、暗号オペレーションで使用される実際の鍵マテリアルを表す 0 個以上の versions で構成されます。

JSON 表現
{
  "name": string,
  "primary": {
    object (CryptoKeyVersion)
  },
  "purpose": enum (CryptoKeyPurpose),
  "createTime": string,
  "nextRotationTime": string,
  "versionTemplate": {
    object (CryptoKeyVersionTemplate)
  },
  "labels": {
    string: string,
    ...
  },
  "importOnly": boolean,
  "destroyScheduledDuration": string,
  "cryptoKeyBackend": string,

  // Union field rotation_schedule can be only one of the following:
  "rotationPeriod": string
  // End of list of possible types for union field rotation_schedule.
}
フィールド
name

string

出力専用。この CryptoKey のリソース名(projects/*/locations/*/keyRings/*/cryptoKeys/* 形式)。

primary

object (CryptoKeyVersion)

出力専用。この CryptoKey が [EncryptRequest.name][] で指定されている場合に [Encrypt][KeyManagementService.Encrypt] で使用される「プライマリ」CryptoKeyVersion のコピー。

CryptoKey のプライマリ バージョンは、[UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] によって更新できます。

purpose ENCRYPT_DECRYPT が指定されたキーにはプライマリがある場合があります。他の鍵の場合、このフィールドは省略されます。

purpose

enum (CryptoKeyPurpose)

変更不可。この CryptoKey の不変の目的。

createTime

string (Timestamp format)

出力専用。この CryptoKey が作成された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

nextRotationTime

string (Timestamp format)

nextRotationTime に、Key Management Service によって自動的に次のことが行われます。

  1. この CryptoKey の新しいバージョンを作成します。
  2. 新しいバージョンをメインとしてマークします。

[CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] と [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] を介して手動で実行される鍵のローテーションは nextRotationTime には影響しません。

purpose ENCRYPT_DECRYPT を持つ鍵は自動ローテーションをサポートしています。他の鍵については、このフィールドを省略する必要があります。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

versionTemplate

object (CryptoKeyVersionTemplate)

新しい CryptoKeyVersion インスタンスの設定を記述するテンプレート。[CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] または自動ローテーションによって作成された新しい CryptoKeyVersion インスタンスのプロパティは、このテンプレートによって制御されます。

labels

map (key: string, value: string)

ユーザー定義のメタデータを持つラベル。 詳細については、鍵のラベル付けをご覧ください。

importOnly

boolean

変更不可。この鍵にインポート済みのバージョンのみを含めるかどうか。

destroyScheduledDuration

string (Duration format)

変更不可。この鍵のバージョンが DESTROYED に移行する前に DESTROY_SCHEDULED 状態だった期間。作成時に指定しなかった場合、デフォルトの期間は 24 時間です。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

cryptoKeyBackend

string

変更不可。この CryptoKey に関連付けられたすべての CryptoKeyVersions の鍵マテリアルが存在し、関連するすべての暗号化オペレーションが実行されるバックエンド環境のリソース名。CryptoKeyVersions に [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC] の ProtectionLevel があり、リソース名が projects/*/locations/*/ekmConnections/* の形式の場合にのみ適用されます。このリストはすべてを網羅したものではなく、今後追加の ProtectionLevels が適用される場合があることに留意してください。

共用体フィールド rotation_schedule。自動ローテーションのレートを制御します。rotation_schedule は次のいずれかになります。
rotationPeriod

string (Duration format)

サービスが自動的に鍵のローテーションを行う場合、nextRotationTime はこの期間だけ進められます。24 時間以上 876,000 時間以下にする必要があります。

rotationPeriod が設定されている場合は、nextRotationTime も設定する必要があります。

purpose ENCRYPT_DECRYPT を持つ鍵は自動ローテーションをサポートしています。他の鍵については、このフィールドを省略する必要があります。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

CryptoKeyVersion

CryptoKeyVersion は、個々の暗号鍵とそれに関連付けられた鍵のマテリアルを表しています。

ENABLED バージョンは、暗号オペレーションに使用できます。

セキュリティ上の理由から、CryptoKeyVersion で表される未加工の暗号鍵のマテリアルは、表示およびエクスポートできません。使用できるのは、承認されたユーザーまたはアプリケーションが Cloud KMS を呼び出すときにデータを暗号化または復号する場合に限られます。

JSON 表現
{
  "name": string,
  "state": enum (CryptoKeyVersionState),
  "protectionLevel": enum (ProtectionLevel),
  "algorithm": enum (CryptoKeyVersionAlgorithm),
  "attestation": {
    object (KeyOperationAttestation)
  },
  "createTime": string,
  "generateTime": string,
  "destroyTime": string,
  "destroyEventTime": string,
  "importJob": string,
  "importTime": string,
  "importFailureReason": string,
  "generationFailureReason": string,
  "externalDestructionFailureReason": string,
  "externalProtectionLevelOptions": {
    object (ExternalProtectionLevelOptions)
  },
  "reimportEligible": boolean
}
フィールド
name

string

出力専用。この CryptoKeyVersion のリソース名。形式は projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/* です。

state

enum (CryptoKeyVersionState)

CryptoKeyVersion の現在の状態。

protectionLevel

enum (ProtectionLevel)

出力専用。ProtectionLevel。この CryptoKeyVersion での暗号オペレーションの実行方法を表します。

algorithm

enum (CryptoKeyVersionAlgorithm)

出力専用。この CryptoKeyVersion がサポートする CryptoKeyVersionAlgorithm

attestation

object (KeyOperationAttestation)

出力専用。鍵の生成時に HSM によって生成され、署名されたステートメント。このステートメントを使用して、Google とは独立して HSM に格納されている鍵の属性を検証します。protectionLevel HSM を持つ鍵バージョンに対してのみ提供されます。

createTime

string (Timestamp format)

出力専用。この CryptoKeyVersion が作成された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

generateTime

string (Timestamp format)

出力専用。この CryptoKeyVersion の鍵のマテリアルが生成された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

destroyTime

string (Timestamp format)

出力専用。この CryptoKeyVersion の鍵のマテリアルの破棄がスケジュールされている時刻。stateDESTROY_SCHEDULED の場合にのみ存在します。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

destroyEventTime

string (Timestamp format)

出力専用。この暗号鍵バージョンの鍵のマテリアルが破棄された時刻。stateDESTROYED の場合にのみ存在します。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

importJob

string

出力専用。この CryptoKeyVersion の最新のインポートで使用された ImportJob の名前。基になる鍵マテリアルがインポートされた場合にのみ表示されます。

importTime

string (Timestamp format)

出力専用。この CryptoKeyVersion の鍵マテリアルが最後にインポートされた時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

importFailureReason

string

出力専用。最新のインポート エラーの根本原因。stateIMPORT_FAILED の場合にのみ存在します。

generationFailureReason

string

出力専用。最新の生成失敗の根本原因。stateGENERATION_FAILED の場合にのみ存在します。

externalDestructionFailureReason

string

出力専用。最近の外部破壊エラーの根本原因。stateEXTERNAL_DESTRUCTION_FAILED の場合にのみ存在します。

externalProtectionLevelOptions

object (ExternalProtectionLevelOptions)

ExternalProtectionLevelOptions には、EXTERNAL 保護レベルと EXTERNAL_VPC 保護レベルに固有の CryptoKeyVersion を構成するための追加フィールドのグループが格納されます。

reimportEligible

boolean

出力専用。[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 (AttestationFormat),
  "content": string,
  "certChains": {
    object (CertificateChains)
  }
}
フィールド
format

enum (AttestationFormat)

出力専用。証明書データの形式。

content

string (bytes format)

出力のみ。鍵オペレーションの実行時に HSM から提供された証明書データ。

Base64 でエンコードされた文字列。

certChains

object (CertificateChains)

出力専用。証明書を検証するために必要な証明書チェーン

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[]

string

証明書に対応する Cavium 証明書チェーン。

googleCardCerts[]

string

証明書に対応する Google カード証明書チェーン。

googlePartitionCerts[]

string

証明書に対応する Google パーティション証明書チェーン。

ExternalProtectionLevelOptions

ExternalProtectionLevelOptions には、EXTERNAL 保護レベルと EXTERNAL_VPC 保護レベルに固有の CryptoKeyVersion を構成するための追加フィールドのグループが格納されます。

JSON 表現
{
  "externalKeyUri": string,
  "ekmConnectionKeyPath": string
}
フィールド
externalKeyUri

string

この CryptoKeyVersion が表す外部リソースの URI。

ekmConnectionKeyPath

string

[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": enum (CryptoKeyVersionAlgorithm)
}
フィールド
protectionLevel

enum (ProtectionLevel)

このテンプレートに基づいて CryptoKeyVersion を作成するときに使用する ProtectionLevel。変更不可。デフォルトは SOFTWARE です。

algorithm

enum (CryptoKeyVersionAlgorithm)

必須。このテンプレートに基づいて CryptoKeyVersion を作成するときに使用する Algorithm

このフィールドが省略され、CryptoKey.purposeENCRYPT_DECRYPT である場合、下位互換性を維持するため、GOOGLE_SYMMETRIC_ENCRYPTION が暗黙的に指定されます。

メソッド

list

指定された Cloud プロジェクトの Cloud KMS によって管理されている暗号鍵を返します。