REST Resource: projects.cryptoKeys

Risorsa: CryptoKey

Un elemento CryptoKey rappresenta una chiave logica che può essere utilizzata per le operazioni crittografiche.

Un elemento CryptoKey è costituito da zero o più versions, che rappresentano l'effettivo materiale della chiave utilizzato nelle operazioni crittografiche.

Rappresentazione 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.
}
Campi
name

string

Solo output. Il nome della risorsa per CryptoKey nel formato projects/*/locations/*/keyRings/*/cryptoKeys/*.

primary

object (CryptoKeyVersion)

Solo output. Una copia del CryptoKeyVersion "principale" che verrà utilizzato da [Encrypt][KeyManagementService.Encrypt] quando questo CryptoKey verrà fornito in [EncryptRequest.name][].

La versione principale di CryptoKey può essere aggiornata tramite [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPRIMARYVersion].

Le chiavi con purpose ENCRYPT_DECRYPT potrebbero avere un token principale. Per le altre chiavi, questo campo verrà omesso.

purpose

enum (CryptoKeyPurpose)

Immutabile. Lo scopo immutabile di questo CryptoKey.

createTime

string (Timestamp format)

Solo output. L'ora in cui è stato creato questo CryptoKey.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

nextRotationTime

string (Timestamp format)

In nextRotationTime, Key Management Service eseguirà automaticamente quanto segue:

  1. Crea una nuova versione di questo CryptoKey.
  2. Contrassegna la nuova versione come principale.

Le rotazioni della chiave eseguite manualmente tramite [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] e [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPRIMARYVersion] non influiscono su nextRotationTime.

Le chiavi con purpose ENCRYPT_DECRYPT supportano la rotazione automatica. Per le altre chiavi, questo campo deve essere omesso.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

versionTemplate

object (CryptoKeyVersionTemplate)

Un modello che descrive le impostazioni per le nuove istanze CryptoKeyVersion. Le proprietà delle nuove istanze CryptoKeyVersion create da [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] o alla rotazione automatica sono controllate da questo modello.

labels

map (key: string, value: string)

Etichette con metadati definiti dall'utente. Per ulteriori informazioni, consulta la sezione Etichettatura chiavi.

importOnly

boolean

Immutabile. Indica se questa chiave può contenere solo versioni importate.

destroyScheduledDuration

string (Duration format)

Immutabile. Il periodo di tempo durante il quale le versioni di questa chiave vengono utilizzate nello stato DESTROY_SCHEDULED prima della transizione a DESTROYED. Se non specificata al momento della creazione, la durata predefinita è 24 ore.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

cryptoKeyBackend

string

Immutabile. Il nome della risorsa dell'ambiente di backend in cui risiede il materiale della chiave per tutti i CryptoKeyVersions associati a questo CryptoKey e dove vengono eseguite tutte le operazioni crittografiche correlate. Applicabile solo se CryptoKeyVersions ha un ProtectionLevel di [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC], con il nome della risorsa nel formato projects/*/locations/*/ekmConnections/*. Tieni presente che questo elenco non è esaustivo e potrebbe applicarsi ad altri ProtectionLevels in futuro.

Campo di unione rotation_schedule. Controlla la velocità della rotazione automatica. rotation_schedule può essere solo uno dei seguenti:
rotationPeriod

string (Duration format)

nextRotationTime verrà avanzato entro questo periodo quando il servizio ruota automaticamente una chiave. Deve essere di almeno 24 ore e al massimo 876.000 ore.

Se il criterio rotationPeriod è impostato, è necessario impostare anche nextRotationTime.

Le chiavi con purpose ENCRYPT_DECRYPT supportano la rotazione automatica. Per le altre chiavi, questo campo deve essere omesso.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

CryptoKeyVersion

Un elemento CryptoKeyVersion rappresenta una singola chiave di crittografia e il materiale della chiave associato.

Per le operazioni crittografiche è possibile utilizzare una versione ENABLED.

Per motivi di sicurezza, il materiale non elaborato della chiave di crittografia rappresentato da un CryptoKeyVersion non può mai essere visualizzato o esportato. Può essere utilizzato per criptare, decriptare o firmare i dati solo quando un utente o un'applicazione autorizzati richiama Cloud KMS.

Rappresentazione 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
}
Campi
name

string

Solo output. Il nome della risorsa per CryptoKeyVersion nel formato projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*.

state

enum (CryptoKeyVersionState)

Lo stato attuale di CryptoKeyVersion.

protectionLevel

enum (ProtectionLevel)

Solo output. Il ProtectionLevel che descrive come vengono eseguite le operazioni di crittografia con questo CryptoKeyVersion.

algorithm

enum (CryptoKeyVersionAlgorithm)

Solo output. Il CryptoKeyVersionAlgorithm supportato da questo CryptoKeyVersion.

attestation

object (KeyOperationAttestation)

Solo output. Istruzione generata e firmata da HSM al momento della creazione della chiave. Utilizza questa istruzione per verificare gli attributi della chiave come memorizzati nell'HSM, indipendentemente da Google. Fornita solo per le versioni della chiave con protectionLevel HSM.

createTime

string (Timestamp format)

Solo output. L'ora in cui è stato creato questo CryptoKeyVersion.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

generateTime

string (Timestamp format)

Solo output. L'ora in cui è stato generato il materiale della chiave di CryptoKeyVersion.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

destroyTime

string (Timestamp format)

Solo output. Data e ora in cui è stata pianificata l'eliminazione del materiale della chiave di CryptoKeyVersion. Presente solo se state è DESTROY_SCHEDULED.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

destroyEventTime

string (Timestamp format)

Solo output. L'ora in cui il materiale della chiave di questa CryptoKeyVersion è stato eliminato. Presente solo se state è DESTROYED.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

importJob

string

Solo output. Il nome del ImportJob utilizzato nell'importazione più recente di questo CryptoKeyVersion. È presente solo se è stato importato il materiale della chiave sottostante.

importTime

string (Timestamp format)

Solo output. L'ora in cui il materiale della chiave di questo CryptoKeyVersion è stato importato più di recente.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

importFailureReason

string

Solo output. La causa principale dell'errore di importazione più recente. Presente solo se state è IMPORT_FAILED.

generationFailureReason

string

Solo output. La causa principale dell'errore di generazione più recente. Presente solo se state è GENERATION_FAILED.

externalDestructionFailureReason

string

Solo output. La causa principale dell'errore di distruzione esterna più recente. Presente solo se state è EXTERNAL_DESTRUCTION_FAILED.

externalProtectionLevelOptions

object (ExternalProtectionLevelOptions)

ExternalProtectionLevelOptions archivia un gruppo di campi aggiuntivi per la configurazione di un CryptoKeyVersion specifico per il livello di protezione EXTERNAL e i livelli di protezione EXTERNAL_VPC.

reimportEligible

boolean

Solo output. Indica se la versione della chiave è idonea o meno per la reimportazione, specificata come target in [ImportCryptoKeyVersionRequest.crypto_key_version][].

CryptoKeyVersionState

Lo stato di un elemento CryptoKeyVersion, che indica se può essere utilizzato.

Enum
CRYPTO_KEY_VERSION_STATE_UNSPECIFIED Non specificato.
PENDING_GENERATION Questa versione è ancora in fase di generazione. Non può ancora essere utilizzato, attivato, disattivato o eliminato. Cloud KMS contrassegnerà automaticamente questa versione come ENABLED non appena la versione sarà pronta.
ENABLED Questa versione può essere utilizzata per operazioni crittografiche.
DISABLED Questa versione potrebbe non essere utilizzata, ma il materiale della chiave è ancora disponibile e la versione può essere riportata allo stato ENABLED.
DESTROYED Questa versione viene eliminata e il materiale della chiave non è più archiviato. Questa versione potrebbe diventare di nuovo ENABLED solo se questa versione è reimportEligible e il materiale della chiave originale viene reimportato con una chiamata a [KeyManagementService.ImportCryptoKeyVersion][].
DESTROY_SCHEDULED Questa versione è pianificata per l'eliminazione e verrà eliminata a breve. Chiama [RipristinaCryptoKeyVersion][KeyManagementService.ottenereCryptoKeyVersion] per portarla di nuovo allo stato DISABLED.
PENDING_IMPORT Questa versione è ancora in fase di importazione. Non può ancora essere utilizzato, attivato, disattivato o eliminato. Cloud KMS contrassegnerà automaticamente questa versione come ENABLED non appena la versione sarà pronta.
IMPORT_FAILED Questa versione non è stata importata correttamente. Non può essere utilizzato, attivato, disattivato o eliminato. Il materiale della chiave inviato è stato eliminato. Ulteriori dettagli sono disponibili in CryptoKeyVersion.import_failure_reason.
GENERATION_FAILED Questa versione non è stata generata correttamente. Non può essere utilizzato, attivato, disattivato o eliminato. Ulteriori dettagli sono disponibili in CryptoKeyVersion.generation_failure_reason.
PENDING_EXTERNAL_DESTRUCTION Questa versione è stata eliminata e non può essere utilizzata o abilitata di nuovo. Cloud KMS è in attesa che il materiale della chiave corrispondente ospitato in un gestore di chiavi esterno venga eliminato.
EXTERNAL_DESTRUCTION_FAILED Questa versione è stata eliminata e non può essere utilizzata o abilitata di nuovo. Tuttavia, Cloud KMS non ha potuto confermare che il materiale della chiave corrispondente ospitato in un gestore di chiavi esterno sia stato eliminato. Ulteriori dettagli sono disponibili in CryptoKeyVersion.external_destruction_failure_reason.

ProtectionLevel

ProtectionLevel specifica il modo in cui vengono eseguite le operazioni crittografiche. Per saperne di più, vedi Livelli di protezione.

Enum
PROTECTION_LEVEL_UNSPECIFIED Non specificato.
SOFTWARE Le operazioni di crittografia vengono eseguite nel software.
HSM Le operazioni di crittografia vengono eseguite in un modulo di sicurezza hardware.
EXTERNAL Le operazioni di crittografia vengono eseguite da un gestore di chiavi esterno.
EXTERNAL_VPC Le operazioni di crittografia vengono eseguite in un backend EKM-over-VPC.

CryptoKeyVersionAlgorithm

L'algoritmo di CryptoKeyVersion, che indica i parametri da utilizzare per ogni operazione crittografica.

L'algoritmo GOOGLE_SYMMETRIC_ENCRYPTION è utilizzabile con CryptoKey.purpose ENCRYPT_DECRYPT.

Gli algoritmi che iniziano con "RSA_SIGN_" sono utilizzabili con CryptoKey.purpose ASYMMETRIC_SIGN.

I campi del nome dopo "RSA_SIGN_" corrispondono ai seguenti parametri: algoritmo di spaziatura, lunghezza in bit del modulo e algoritmo digest.

Per PSS, la lunghezza del sale utilizzata è uguale a quella dell'algoritmo digest. Ad esempio, RSA_SIGN_PSS_2048_SHA256 utilizzerà PSS con una lunghezza del sale di 256 bit o 32 byte.

Gli algoritmi che iniziano con "RSA_DECRYPT_" sono utilizzabili con il valore ASYMMETRIC_DECRYPT di CryptoKey.purpose.

I campi del nome dopo "RSA_DECRYPT_" corrispondono ai seguenti parametri: algoritmo di spaziatura, lunghezza in bit del modulo e algoritmo digest.

Gli algoritmi che iniziano con "EC_SIGN_" sono utilizzabili con CryptoKey.purpose ASYMMETRIC_SIGN.

I campi del nome dopo "EC_SIGN_" corrispondono ai seguenti parametri: curva ellittica, algoritmo digest.

Gli algoritmi che iniziano con "HMAC_" sono utilizzabili con CryptoKey.purpose MAC.

Il suffisso che segue "HMAC_" corrisponde all'algoritmo hash utilizzato (ad es. SHA256).

Per saperne di più, consulta la sezione Scopi e algoritmi chiave.

Enum
CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED Non specificato.
GOOGLE_SYMMETRIC_ENCRYPTION Crea chiavi di crittografia simmetriche.
RSA_SIGN_PSS_2048_SHA256 Chiave RSASSA-PSS a 2048 bit con digest SHA256.
RSA_SIGN_PSS_3072_SHA256 Chiave RSASSA-PSS a 3072 bit con digest SHA256.
RSA_SIGN_PSS_4096_SHA256 Chiave RSASSA-PSS a 4096 bit con digest SHA256.
RSA_SIGN_PSS_4096_SHA512 Chiave RSASSA-PSS a 4096 bit con digest SHA512.
RSA_SIGN_PKCS1_2048_SHA256 RSASSA-PKCS1-v1_5 con una chiave a 2048 bit e un digest SHA256.
RSA_SIGN_PKCS1_3072_SHA256 RSASSA-PKCS1-v1_5 con una chiave a 3072 bit e un digest SHA256.
RSA_SIGN_PKCS1_4096_SHA256 RSASSA-PKCS1-v1_5 con una chiave a 4096 bit e un digest SHA256.
RSA_SIGN_PKCS1_4096_SHA512 RSASSA-PKCS1-v1_5 con una chiave a 4096 bit e un digest SHA512.
RSA_SIGN_RAW_PKCS1_2048 Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave a 2048 bit.
RSA_SIGN_RAW_PKCS1_3072 Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave a 3072 bit.
RSA_SIGN_RAW_PKCS1_4096 Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave a 4096 bit.
RSA_DECRYPT_OAEP_2048_SHA256 Chiave RSAES-OAEP a 2048 bit con digest SHA256.
RSA_DECRYPT_OAEP_3072_SHA256 Chiave RSAES-OAEP a 3072 bit con digest SHA256.
RSA_DECRYPT_OAEP_4096_SHA256 Chiave RSAES-OAEP a 4096 bit con digest SHA256.
RSA_DECRYPT_OAEP_4096_SHA512 Chiave RSAES-OAEP a 4096 bit con digest SHA512.
RSA_DECRYPT_OAEP_2048_SHA1 Chiave RSAES-OAEP a 2048 bit con digest SHA1.
RSA_DECRYPT_OAEP_3072_SHA1 Chiave RSAES-OAEP a 3072 bit con digest SHA1.
RSA_DECRYPT_OAEP_4096_SHA1 Chiave RSAES-OAEP a 4096 bit con digest SHA1.
EC_SIGN_P256_SHA256 ECDSA sulla curva NIST P-256 con un digest SHA256. Puoi anche utilizzare altre funzioni hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
EC_SIGN_P384_SHA384 ECDSA sulla curva NIST P-384 con un digest SHA384. Puoi anche utilizzare altre funzioni hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
EC_SIGN_SECP256K1_SHA256 ECDSA sulla curva secp256k1 non NIST. Questa curva è supportata solo per il livello di protezione HSM. Puoi anche utilizzare altre funzioni hash: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
HMAC_SHA256 Firma HMAC-SHA256 con una chiave a 256 bit.
HMAC_SHA1 Firma HMAC-SHA1 con una chiave a 160 bit.
HMAC_SHA384 Firma HMAC-SHA384 con una chiave a 384 bit.
HMAC_SHA512 Firma HMAC-SHA512 con una chiave a 512 bit.
HMAC_SHA224 Firma HMAC-SHA224 con una chiave a 224 bit.
EXTERNAL_SYMMETRIC_ENCRYPTION Algoritmo che rappresenta la crittografia simmetrica da parte di un gestore di chiavi esterno.

KeyOperationAttestation

Contiene un'attestazione generata da HSM relativa a un'operazione di chiave. Per saperne di più, vedi Verificare le attestazioni.

Rappresentazione JSON
{
  "format": enum (AttestationFormat),
  "content": string,
  "certChains": {
    object (CertificateChains)
  }
}
Campi
format

enum (AttestationFormat)

Solo output. Il formato dei dati di attestazione.

content

string (bytes format)

Solo output. I dati di attestazione forniti da HSM al momento dell'esecuzione dell'operazione sulla chiave.

Una stringa con codifica Base64.

certChains

object (CertificateChains)

Solo output. Le catene di certificati necessarie per convalidare l'attestazione

AttestationFormat

Formati di attestazione forniti da HSM.

Enum
ATTESTATION_FORMAT_UNSPECIFIED Non specificato.
CAVIUM_V1_COMPRESSED

Attestazione Cavium HSM compressa con gzip. Tieni presente che questo formato è definito da Cavium e soggetto a modifiche in qualsiasi momento.

Visita la pagina https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html.

CAVIUM_V2_COMPRESSED Attestazione Cavium HSM V2 compressa con gzip. Si tratta di un nuovo formato introdotto nella versione 3.2-08 di Cavium.

CertificateChains

Catene di certificati necessarie per verificare l'attestazione. I certificati nelle catene hanno codifica PEM e vengono ordinati in base alla pagina https://tools.ietf.org/html/rfc5246#section-7.4.2.

Rappresentazione JSON
{
  "caviumCerts": [
    string
  ],
  "googleCardCerts": [
    string
  ],
  "googlePartitionCerts": [
    string
  ]
}
Campi
caviumCerts[]

string

Catena di certificati Cavium corrispondente all'attestazione.

googleCardCerts[]

string

Catena di certificati della scheda Google corrispondente all'attestazione.

googlePartitionCerts[]

string

Catena di certificati di partizione Google corrispondente all'attestazione.

ExternalProtectionLevelOptions

ExternalProtectionLevelOptions archivia un gruppo di campi aggiuntivi per la configurazione di un CryptoKeyVersion specifico per il livello di protezione EXTERNAL e i livelli di protezione EXTERNAL_VPC.

Rappresentazione JSON
{
  "externalKeyUri": string,
  "ekmConnectionKeyPath": string
}
Campi
externalKeyUri

string

L'URI di una risorsa esterna rappresentata da CryptoKeyVersion.

ekmConnectionKeyPath

string

Il percorso del materiale della chiave esterna sull'EKM quando si utilizza [EkmConnection][], ad esempio "v0/mia/chiave". Imposta questo campo anziché externalKeyUri quando utilizzi una [EkmConnection][].

CryptoKeyPurpose

CryptoKeyPurpose descrive le capacità crittografiche di un CryptoKey. Una determinata chiave può essere utilizzata solo per le operazioni consentite dal suo scopo. Per ulteriori informazioni, consulta la sezione Scopi delle chiavi.

Enum
CRYPTO_KEY_PURPOSE_UNSPECIFIED Non specificato.
ENCRYPT_DECRYPT CryptoKeys a questo scopo potrebbe essere utilizzato con [Encrypt][KeyManagementService.Encrypt] e [Decrypt][KeyManagementService.Decrypt].
ASYMMETRIC_SIGN CryptoKeys a questo scopo può essere utilizzato con [AsymmetricSign][KeyManagementService.AsymmetricSign] e [GetPublicKey][KeyManagementService.GetPublicKey].
ASYMMETRIC_DECRYPT CryptoKeys a questo scopo può essere utilizzato con [AsymmetricDecrypt][KeyManagementService.AsymmetricDecrypt] e [GetPublicKey][KeyManagementService.GetPublicKey].
MAC CryptoKeys a questo scopo potrebbe essere utilizzato con [MacSign][KeyManagementService.MacSign].

CryptoKeyVersionTemplate

Un CryptoKeyVersionTemplate specifica le proprietà da utilizzare durante la creazione di una nuova CryptoKeyVersion, manualmente con [CreateCryptoKeyVersion][KeyManagementService.CreateCryptoKeyVersion] o automaticamente come risultato della rotazione automatica.

Rappresentazione JSON
{
  "protectionLevel": enum (ProtectionLevel),
  "algorithm": enum (CryptoKeyVersionAlgorithm)
}
Campi
protectionLevel

enum (ProtectionLevel)

ProtectionLevel da utilizzare durante la creazione di una CryptoKeyVersion basata su questo modello. Immutabile. Il valore predefinito è SOFTWARE.

algorithm

enum (CryptoKeyVersionAlgorithm)

Obbligatorio. Algorithm da utilizzare durante la creazione di una CryptoKeyVersion basata su questo modello.

Per la compatibilità con le versioni precedenti, GOOGLE_SYMMETRIC_ENCRYPTION è implicito se questo campo viene omesso e CryptoKey.purpose è ENCRYPT_DECRYPT.

Metodi

list

Restituisce le chiavi di crittografia gestite da Cloud KMS in un determinato progetto Cloud.