- Recurso: CryptoKey
- Métodos
Recurso: CryptoKey
Un CryptoKey
representa una clave lógica que se puede usar para operaciones criptográficas.
Un CryptoKey
se compone de cero o más versions
, que representan el material de clave real que se usa en las operaciones criptográficas.
Representación JSON |
---|
{ "name": string, "primary": { object ( |
Campos | |
---|---|
name |
Solo salida. El nombre del recurso para este |
primary |
Solo salida. Una copia del objeto La versión principal de Las claves con |
purpose |
Inmutable. El propósito inmutable de este |
createTime |
Solo salida. La hora en la que se creó este Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
nextRotationTime |
En
Las rotaciones de claves realizadas manualmente a través de [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] y [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] no afectan a Las claves con Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
versionTemplate |
Una plantilla que describe la configuración de las nuevas instancias de |
labels |
Etiquetas con metadatos definidos por el usuario. Consulta Etiquetar claves para obtener más información. |
importOnly |
Inmutable. Indica si esta clave solo puede contener versiones importadas. |
destroyScheduledDuration |
Inmutable. El período que las versiones de esta clave pasan en el estado Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
cryptoKeyBackend |
Inmutable. El nombre del recurso del entorno de backend donde reside el material de claves de todos los |
Campo de unión rotation_schedule . Controla la velocidad de rotación automática. rotation_schedule puede ser solo uno de los siguientes: |
|
rotationPeriod |
Si se configura Las claves con Una duración en segundos con hasta nueve dígitos decimales, que terminan en “ |
CryptoKeyVersion
Un CryptoKeyVersion
representa una clave criptográfica individual y el material de claves asociado.
Se puede usar una versión ENABLED
para las operaciones criptográficas.
Por motivos de seguridad, el material de clave criptográfica sin procesar representado por un CryptoKeyVersion
nunca se puede ver ni exportar. Solo se puede usar para encriptar, desencriptar o firmar datos cuando un usuario o una aplicación autorizados invoquen Cloud KMS.
Representación JSON |
---|
{ "name": string, "state": enum ( |
Campos | |
---|---|
name |
Solo salida. El nombre del recurso para este |
state |
El estado actual de |
protectionLevel |
Solo salida. El |
algorithm |
Solo salida. El |
attestation |
Solo salida. La declaración que generó y firmó el HSM en el momento de la creación de la clave. Usa esta instrucción para verificar los atributos de la clave según lo almacenado en el HSM, independientemente de Google. Solo se proporciona para versiones de claves con |
createTime |
Solo salida. La hora en la que se creó este Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
generateTime |
Solo salida. La hora en la que se generó el material de clave de este Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
destroyTime |
Solo salida. La hora en la que está programada la destrucción del material de clave de este Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
destroyEventTime |
Solo salida. La hora en que se destruyó el material de clave de esta CryptoKeyVersion. Solo está presente si Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
importJob |
Solo salida. El nombre de |
importTime |
Solo salida. La hora en la que se importó el material de clave de Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: |
importFailureReason |
Solo salida. La causa raíz del error de importación más reciente. Solo está presente si |
generationFailureReason |
Solo salida. La causa raíz de la falla de generación más reciente. Solo está presente si |
externalDestructionFailureReason |
Solo salida. La causa raíz de la falla de destrucción externa más reciente. Solo está presente si |
externalProtectionLevelOptions |
ExternalProtectionLevelOptions almacena un grupo de campos adicionales para configurar un |
reimportEligible |
Solo salida. Indica si esta versión de clave es apta o no para volver a importarse, ya que se especifica como destino en [ImportCryptoKeyVersionRequest.crypto_key_version][]. |
CryptoKeyVersionState
Es el estado de un CryptoKeyVersion
, que indica si se puede usar.
Enums | |
---|---|
CRYPTO_KEY_VERSION_STATE_UNSPECIFIED |
No especificado. |
PENDING_GENERATION |
Aún se está generando esta versión. Todavía no se puede usar, habilitar, inhabilitar ni destruir. Cloud KMS marcará automáticamente esta versión como ENABLED en cuanto esté lista. |
ENABLED |
Esta versión se puede usar para operaciones criptográficas. |
DISABLED |
Es posible que esta versión no se use, pero el material de clave aún está disponible, y la versión puede volver a cambiarse al estado ENABLED . |
DESTROYED |
Esta versión se destruye y el material de la clave ya no se almacena. Es posible que esta versión solo vuelva a ser ENABLED si es reimportEligible y el material de clave original se vuelve a importar con una llamada a [KeyManagementService.ImportCryptoKeyVersion][]. |
DESTROY_SCHEDULED |
Esta versión está programada para su destrucción y pronto se destruirá. Llama a [RestoreCryptoKeyVersion][KeyManagementService.RestoreCryptoKeyVersion] para volver a ponerla en el estado DISABLED . |
PENDING_IMPORT |
Aún se está importando esta versión. Todavía no se puede usar, habilitar, inhabilitar ni destruir. Cloud KMS marcará automáticamente esta versión como ENABLED en cuanto esté lista. |
IMPORT_FAILED |
Esta versión no se importó correctamente. No se puede usar, habilitar, inhabilitar ni destruir. Se descartó el material de clave enviado. Puedes encontrar más detalles en CryptoKeyVersion.import_failure_reason . |
GENERATION_FAILED |
Esta versión no se generó correctamente. No se puede usar, habilitar, inhabilitar ni destruir. Puedes encontrar más detalles en CryptoKeyVersion.generation_failure_reason . |
PENDING_EXTERNAL_DESTRUCTION |
Esta versión se destruyó y no se puede usar ni volver a habilitar. Cloud KMS está esperando que se destruya el material de clave correspondiente que reside en un administrador de claves externo. |
EXTERNAL_DESTRUCTION_FAILED |
Esta versión se destruyó y no se puede usar ni volver a habilitar. Sin embargo, Cloud KMS no pudo confirmar que se destruyó el material de clave correspondiente que reside en un administrador de claves externo. Puedes encontrar más detalles en CryptoKeyVersion.external_destruction_failure_reason . |
ProtectionLevel
ProtectionLevel
especifica cómo se realizan las operaciones criptográficas. Para obtener más información, consulta Niveles de protección.
Enums | |
---|---|
PROTECTION_LEVEL_UNSPECIFIED |
No especificado. |
SOFTWARE |
Las operaciones criptográficas se ejecutan en software. |
HSM |
Las operaciones criptográficas se ejecutan en un módulo de seguridad de hardware. |
EXTERNAL |
Las operaciones criptográficas las realiza un administrador de claves externo. |
EXTERNAL_VPC |
Las operaciones criptográficas se realizan en un backend de EKM sobre VPC. |
CryptoKeyVersionAlgorithm
El algoritmo de CryptoKeyVersion
, que indica qué parámetros se deben usar para cada operación criptográfica.
El algoritmo GOOGLE_SYMMETRIC_ENCRYPTION
se puede usar con CryptoKey.purpose
ENCRYPT_DECRYPT
.
Los algoritmos que comienzan con "RSA_SIGN_" se pueden usar con CryptoKey.purpose
ASYMMETRIC_SIGN
.
Los campos del nombre que están después de “RSA_SIGN_” corresponden a los siguientes parámetros: algoritmo de relleno, longitud de bits del módulo y algoritmo de resumen.
En PSS, la longitud utilizada para la sal es igual a la longitud del algoritmo de resumen. Por ejemplo, RSA_SIGN_PSS_2048_SHA256
usará PSS con una longitud de sal de 256 bits o 32 bytes.
Los algoritmos que comienzan con “RSA_DECRYPT_” se pueden usar con CryptoKey.purpose
ASYMMETRIC_DECRYPT
.
Los campos en el nombre después de “RSA_DECRYPT_” corresponden a los siguientes parámetros: algoritmo de relleno, longitud de bits del módulo y algoritmo de resumen.
Los algoritmos que comienzan con "EC_SIGN_" se pueden usar con CryptoKey.purpose
ASYMMETRIC_SIGN
.
Los campos del nombre que están después de “EC_SIGN_” corresponden a los siguientes parámetros: curva elíptica, algoritmo de resumen.
Los algoritmos que comienzan con "HMAC_" se pueden usar con CryptoKey.purpose
MAC
.
El sufijo que sigue a "HMAC_" corresponde al algoritmo de hash utilizado (por ejemplo, SHA256).
Para obtener más información, consulta Algoritmos y propósitos de clave.
Enums | |
---|---|
CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED |
No especificado |
GOOGLE_SYMMETRIC_ENCRYPTION |
Permite crear claves de encriptación simétricas |
RSA_SIGN_PSS_2048_SHA256 |
Clave RSASSA-PSS de 2048 bits con resumen SHA256 |
RSA_SIGN_PSS_3072_SHA256 |
Clave RSASSA-PSS de 3072 bits con resumen SHA256 |
RSA_SIGN_PSS_4096_SHA256 |
Clave RSASSA-PSS de 4096 bits con resumen SHA256 |
RSA_SIGN_PSS_4096_SHA512 |
Clave RSASSA-PSS de 4096 bits con resumen SHA512 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1-v1_5 con clave de 2048 bits y resumen SHA256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1-v1_5 con clave de 3072 bits y resumen SHA256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1-v1_5 con clave de 4096 bits y resumen SHA256 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1-v1_5 con clave de 4096 bits y resumen SHA512 |
RSA_SIGN_RAW_PKCS1_2048 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 2048 bits. |
RSA_SIGN_RAW_PKCS1_3072 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 3072 bits. |
RSA_SIGN_RAW_PKCS1_4096 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 4096 bits. |
RSA_DECRYPT_OAEP_2048_SHA256 |
Clave RSAES-OAEP de 2048 bits con resumen SHA256 |
RSA_DECRYPT_OAEP_3072_SHA256 |
Clave RSAES-OAEP de 3072 bits con resumen SHA256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Clave RSAES-OAEP de 4096 bits con resumen SHA256 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Clave RSAES-OAEP de 4096 bits con resumen SHA512 |
RSA_DECRYPT_OAEP_2048_SHA1 |
Clave RSAES-OAEP de 2048 bits con un resumen SHA1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Clave RSAES-OAEP de 3072 bits con resumen SHA1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Clave RSAES-OAEP de 4096 bits con resumen SHA1 |
EC_SIGN_P256_SHA256 |
ECDSA en la curva P-256 de NIST con resumen SHA256 También se pueden usar otras funciones de hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_P384_SHA384 |
ECDSA en la curva P-384 de NIST con resumen SHA384 También se pueden usar otras funciones de hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_SECP256K1_SHA256 |
ECDSA en la curva secp256k1 no NIST. Esta curva solo es compatible con el nivel de protección HSM. También se pueden usar otras funciones de hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
HMAC_SHA256 |
Firma HMAC-SHA256 con una clave de 256 bits. |
HMAC_SHA1 |
Firma HMAC-SHA1 con una clave de 160 bits |
HMAC_SHA384 |
Firma HMAC-SHA384 con una clave de 384 bits |
HMAC_SHA512 |
Firma HMAC-SHA512 con una clave de 512 bits. |
HMAC_SHA224 |
Firma HMAC-SHA224 con una clave de 224 bits. |
EXTERNAL_SYMMETRIC_ENCRYPTION |
Algoritmo que representa la encriptación simétrica por parte de un administrador de claves externo. |
KeyOperationAttestation
Contiene una certificación generada por HSM sobre una operación de clave. Para obtener más información, consulta Verifica certificaciones.
Representación JSON |
---|
{ "format": enum ( |
Campos | |
---|---|
format |
Solo salida. El formato de los datos de certificación. |
content |
Solo salida. Los datos de certificación proporcionados por el HSM cuando se realizó la operación de la clave. String codificada en base64. |
certChains |
Solo salida. Las cadenas de certificados necesarias para validar la certificación |
AttestationFormat
Formatos de certificación proporcionados por el HSM.
Enums | |
---|---|
ATTESTATION_FORMAT_UNSPECIFIED |
No especificado. |
CAVIUM_V1_COMPRESSED |
Certificación de HSM de Cavium comprimida con gzip. Ten en cuenta que Cavium define este formato y está sujeto a cambios en cualquier momento. Consulta https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html. |
CAVIUM_V2_COMPRESSED |
Certificación Cavium HSM V2 comprimida con gzip. Este es un formato nuevo que se introdujo en la versión 3.2-08 de Cavium. |
CertificateChains
Cadenas de certificados necesarias para verificar la certificación Los certificados en cadenas tienen codificación PEM y se ordenan en función de https://tools.ietf.org/html/rfc5246#section-7.4.2.
Representación JSON |
---|
{ "caviumCerts": [ string ], "googleCardCerts": [ string ], "googlePartitionCerts": [ string ] } |
Campos | |
---|---|
caviumCerts[] |
Cadena de certificados de Cavium que corresponde a la certificación. |
googleCardCerts[] |
Cadena de certificados de tarjetas de Google que corresponde a la certificación. |
googlePartitionCerts[] |
Cadena de certificados de particiones de Google que corresponde a la certificación. |
ExternalProtectionLevelOptions
ExternalProtectionLevelOptions almacena un grupo de campos adicionales para configurar un CryptoKeyVersion
que son específicos para los niveles de protección EXTERNAL
y EXTERNAL_VPC
.
Representación JSON |
---|
{ "externalKeyUri": string, "ekmConnectionKeyPath": string } |
Campos | |
---|---|
externalKeyUri |
Es el URI de un recurso externo que representa este |
ekmConnectionKeyPath |
La ruta de acceso al material de clave externa en el EKM cuando se usa [EkmConnection][], p.ej., “v0/mi/clave”. Configura este campo en lugar de externalKeyUri cuando uses una [EkmConnection][]. |
CryptoKeyPurpose
CryptoKeyPurpose
describe las capacidades criptográficas de un CryptoKey
. Una clave específica solo se puede usar para las operaciones que permite su propósito. Para obtener más información, consulta Propósitos de clave.
Enums | |
---|---|
CRYPTO_KEY_PURPOSE_UNSPECIFIED |
No especificado. |
ENCRYPT_DECRYPT |
CryptoKeys con este propósito se puede usar con [Encrypt][KeyManagementService.Encrypt] y [Decrypt][KeyManagementService.Decrypt]. |
ASYMMETRIC_SIGN |
CryptoKeys con este propósito se puede usar con [AsymmetricSign][KeyManagementService.AsymmetricSign] y [GetPublicKey][KeyManagementService.GetPublicKey]. |
ASYMMETRIC_DECRYPT |
CryptoKeys con este propósito se puede usar con [AsymmetricDecrypt][KeyManagementService.AsymmetricDecrypt] y [GetPublicKey][KeyManagementService.GetPublicKey]. |
MAC |
CryptoKeys con este propósito se puede usar con [MacSign][KeyManagementService.MacSign]. |
CryptoKeyVersionTemplate
Un CryptoKeyVersionTemplate
especifica las propiedades que se usarán cuando se cree un CryptoKeyVersion
nuevo, ya sea de forma manual con [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] o automáticamente como resultado de la rotación automática.
Representación JSON |
---|
{ "protectionLevel": enum ( |
Campos | |
---|---|
protectionLevel |
|
algorithm |
Obligatorio. Para la retrocompatibilidad, GOOGLE_SYMMETRIC_ENCRYPTION está implícito si se omite este campo y el valor de |
Métodos |
|
---|---|
|
Muestra las claves criptográficas administradas por Cloud KMS en un proyecto de Cloud determinado. |