资源:CryptoKey
CryptoKey
表示可用于加密操作的逻辑密钥。
JSON 表示法 |
---|
{ "name": string, "primary": { object ( |
字段 | |
---|---|
name |
仅限输出。此 |
primary |
仅限输出。在 [EncryptRequest.name][] 中授予此
具有 |
purpose |
不可变。此 |
createTime |
仅限输出。此 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
nextRotationTime |
在
通过 [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] 和 [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] 手动执行的密钥轮替不会影响 具有 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
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 生成和签名的语句。使用此语句可以验证存储在 HSM 上的密钥属性,而不依赖于 Google。仅为具有 |
createTime |
仅限输出。此 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
generateTime |
仅限输出。生成此 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
destroyTime |
仅限输出。安排销毁此 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
destroyEventTime |
仅限输出。此 CryptoKeyVersion 的密钥材料被销毁的时间。仅当 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
importJob |
仅限输出。最近一次导入此 |
importTime |
仅限输出。此 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
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 |
此版本已销毁,密钥材料不再存储在 Cloud KMS 中。仅当此版本为 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 |
具有 SHA256 摘要的 RSASSA-PSS 2048 位密钥。 |
RSA_SIGN_PSS_3072_SHA256 |
具有 SHA256 摘要的 RSASSA-PSS 3072 位密钥。 |
RSA_SIGN_PSS_4096_SHA256 |
具有 SHA256 摘要的 RSASSA-PSS 4096 位密钥。 |
RSA_SIGN_PSS_4096_SHA512 |
具有 SHA512 摘要的 RSASSA-PSS 4096 位密钥。 |
RSA_SIGN_PKCS1_2048_SHA256 |
具有 2048 位密钥和 SHA256 摘要的 RSASSA-PKCS1-v1_5。 |
RSA_SIGN_PKCS1_3072_SHA256 |
具有 3072 位密钥和 SHA256 摘要的 RSASSA-PKCS1-v1_5。 |
RSA_SIGN_PKCS1_4096_SHA256 |
具有 4096 位密钥和 SHA256 摘要的 RSASSA-PKCS1-v1_5。 |
RSA_SIGN_PKCS1_4096_SHA512 |
具有 4096 位密钥和 SHA512 摘要的 RSASSA-PKCS1-v1_5。 |
RSA_SIGN_RAW_PKCS1_2048 |
未编码的 RSASSA-PKCS1-v1_5 签名,使用 2048 位密钥。 |
RSA_SIGN_RAW_PKCS1_3072 |
无编码的 RSASSA-PKCS1-v1_5 签名,使用 3072 位密钥。 |
RSA_SIGN_RAW_PKCS1_4096 |
无编码的 RSASSA-PKCS1-v1_5 签名,使用 4096 位密钥。 |
RSA_DECRYPT_OAEP_2048_SHA256 |
具有 SHA256 摘要的 RSAES-OAEP 2048 位密钥。 |
RSA_DECRYPT_OAEP_3072_SHA256 |
具有 SHA256 摘要的 RSAES-OAEP 3072 位密钥。 |
RSA_DECRYPT_OAEP_4096_SHA256 |
具有 SHA256 摘要的 RSAES-OAEP 4096 位密钥。 |
RSA_DECRYPT_OAEP_4096_SHA512 |
具有 SHA512 摘要的 RSAES-OAEP 4096 位密钥。 |
RSA_DECRYPT_OAEP_2048_SHA1 |
具有 SHA1 摘要的 RSAES-OAEP 2048 位密钥。 |
RSA_DECRYPT_OAEP_3072_SHA1 |
具有 SHA1 摘要的 RSAES-OAEP 3072 位密钥。 |
RSA_DECRYPT_OAEP_4096_SHA1 |
具有 SHA1 摘要的 RSAES-OAEP 4096 位密钥。 |
EC_SIGN_P256_SHA256 |
具有 SHA256 摘要的 NIST P-256 曲线上的 ECDSA。您还可以使用其他哈希函数:https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_P384_SHA384 |
具有 SHA384 摘要的 NIST P-384 曲线上的 ECDSA。您还可以使用其他哈希函数: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 可与 [ABILLINGSID][KeyManagementService.A 发布商签名] 和 [GetPublicKey][KeyManagementService.GetPublicKey] 搭配使用。 |
ASYMMETRIC_DECRYPT |
具有此用途的 CryptoKeys 可与 [AbillingManagementService.AbalancedDecrypt] 和 [GetPublicKey][KeyManagementService.GetPublicKey] 搭配使用。 |
MAC |
具有此用途的 CryptoKeys 可以与 [MacSign][KeyManagementService.MacSign] 搭配使用。 |
CryptoKeyVersionTemplate
CryptoKeyVersionTemplate
可指定创建新 CryptoKeyVersion
时使用的属性,既可以使用 [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] 手动创建,也可以通过自动轮替自动指定。
JSON 表示法 |
---|
{ "protectionLevel": enum ( |
字段 | |
---|---|
protectionLevel |
基于此模板创建 |
algorithm |
必需。基于此模板创建 为了实现向后兼容,如果省略此字段并且 |
方法 |
|
---|---|
|
返回给定 Cloud 项目中由 Cloud KMS 管理的加密密钥。 |