- Ressource: CryptoKey
- Methoden
Ressource: CryptoKey
Ein CryptoKey
ist ein logischer Schlüssel, der für kryptografische Vorgänge verwendet werden kann.
Eine CryptoKey
besteht aus null oder mehr versions
, die das tatsächliche Schlüsselmaterial für kryptografische Vorgänge darstellen.
JSON-Darstellung |
---|
{ "name": string, "primary": { object ( |
Felder | |
---|---|
name |
Nur Ausgabe. Der Ressourcenname für diese |
primary |
Nur Ausgabe. Eine Kopie der „primären“ Die primäre Version von Schlüssel mit |
purpose |
Nicht veränderbar. Der unveränderliche Zweck von |
createTime |
Nur Ausgabe. Der Zeitpunkt, zu dem dieses Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
nextRotationTime |
Bei
Manuell über [CreateCryptoKey][KeyManagementService.CreateCryptoKey] und [UpdateCryptoKeyPrimaryVersion][KeyManagementService.UpdateCryptoKeyPrimaryVersion] durchgeführte Schlüsselrotationen haben keine Auswirkungen auf Schlüssel mit Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
versionTemplate |
Eine Vorlage, die Einstellungen für neue |
labels |
Labels mit benutzerdefinierten Metadaten. Weitere Informationen finden Sie unter Schlüssel mit Labeln versehen. |
importOnly |
Nicht veränderbar. Gibt an, ob dieser Schlüssel nur importierte Versionen enthalten darf. |
destroyScheduledDuration |
Nicht veränderbar. Der Zeitraum, in dem sich Versionen dieses Schlüssels im Status Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
cryptoKeyBackend |
Nicht veränderbar. Der Ressourcenname der Back-End-Umgebung, in der sich das Schlüsselmaterial für alle mit dieser |
Union-Feld rotation_schedule . Steuert die Geschwindigkeit der automatischen Rotation. Für rotation_schedule ist nur einer der folgenden Werte zulässig: |
|
rotationPeriod |
Wenn Schlüssel mit Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
CryptoKeyVersion
Eine CryptoKeyVersion
steht für einen individuellen kryptografischen Schlüssel und das zugehörige Schlüsselmaterial.
Eine Version mit der Einstellung ENABLED
kann für kryptografische Vorgänge verwendet werden.
Aus Sicherheitsgründen können die durch eine CryptoKeyVersion
repräsentierten Rohdaten des kryptografischen Schlüsselmaterials nicht angesehen oder exportiert werden. Sie können nur verwendet werden, um Daten zu verschlüsseln, zu entschlüsseln oder zu signieren, wenn autorisierte Nutzer oder Anwendungen Cloud KMS aufrufen.
JSON-Darstellung |
---|
{ "name": string, "state": enum ( |
Felder | |
---|---|
name |
Nur Ausgabe. Der Ressourcenname für diese |
state |
Der aktuelle Status von |
protectionLevel |
Nur Ausgabe. Die |
algorithm |
Nur Ausgabe. Das |
attestation |
Nur Ausgabe. Anweisung, die bei der Schlüsselerstellung generiert und vom HSM signiert wurde. Verwenden Sie diese Anweisung, um Attribute des Schlüssels, die auf dem HSM gespeichert sind, unabhängig von Google zu verifizieren. Nur für Schlüsselversionen mit |
createTime |
Nur Ausgabe. Der Zeitpunkt, zu dem dieses Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
generateTime |
Nur Ausgabe. Der Zeitpunkt, zu dem das Schlüsselmaterial dieses Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
destroyTime |
Nur Ausgabe. Der Zeitpunkt, zu dem das Schlüsselmaterial dieses Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
destroyEventTime |
Nur Ausgabe. Der Zeitpunkt, zu dem das Schlüsselmaterial der CryptoKeyVersion gelöscht wurde. Ist nur vorhanden, wenn Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
importJob |
Nur Ausgabe. Der Name des |
importTime |
Nur Ausgabe. Der Zeitpunkt, zu dem das Schlüsselmaterial von Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: |
importFailureReason |
Nur Ausgabe. Die Ursache des letzten Importfehlers. Ist nur vorhanden, wenn |
generationFailureReason |
Nur Ausgabe. Die Ursache des letzten Generierungsfehlers. Ist nur vorhanden, wenn |
externalDestructionFailureReason |
Nur Ausgabe. Die Ursache des letzten Fehlers beim externen Löschen. Ist nur vorhanden, wenn |
externalProtectionLevelOptions |
ExternalProtectionLevelOptions speichert eine Gruppe zusätzlicher Felder zum Konfigurieren einer |
reimportEligible |
Nur Ausgabe. Gibt an, ob diese Schlüsselversion für den Reimport infrage kommt oder nicht, indem sie in [ImportCryptoKeyRequest.crypto_key_version][] als Ziel angegeben wird. |
CryptoKeyVersionState
Der Status einer CryptoKeyVersion
, der angibt, ob sie verwendet werden kann.
Enums | |
---|---|
CRYPTO_KEY_VERSION_STATE_UNSPECIFIED |
Nicht angegeben. |
PENDING_GENERATION |
Diese Version wird derzeit generiert und kann noch nicht verwendet, aktiviert, deaktiviert oder gelöscht werden. Der Status wird in Cloud KMS automatisch als ENABLED markiert, sobald die Version verfügbar ist. |
ENABLED |
Diese Version kann für kryptografische Vorgänge verwendet werden. |
DISABLED |
Die Version wird zwar nicht verwendet, das Schlüsselmaterial ist jedoch weiterhin verfügbar. Sie können die Version in den Status ENABLED zurücksetzen. |
DESTROYED |
Diese Version wurde gelöscht und das Schlüsselmaterial wird nicht mehr gespeichert. Diese Version kann nur dann wieder ENABLED werden, wenn sie reimportEligible ist und das ursprüngliche Schlüsselmaterial mit einem Aufruf von [KeyManagementService.ImportCryptoKey][] neu importiert wird. |
DESTROY_SCHEDULED |
Diese Version ist zum Löschen vorgemerkt und wird bald dauerhaft gelöscht. Rufen Sie [RestoreCryptoKey][KeyManagementService.RestoreCryptoKey] auf, um den Status wieder in den Status DISABLED zu versetzen. |
PENDING_IMPORT |
Diese Version wird noch importiert. und kann noch nicht verwendet, aktiviert, deaktiviert oder gelöscht werden. Der Status wird in Cloud KMS automatisch als ENABLED markiert, sobald die Version verfügbar ist. |
IMPORT_FAILED |
Diese Version konnte nicht importiert werden. Er darf nicht verwendet, aktiviert, deaktiviert oder gelöscht werden. Das eingereichte Schlüsselmaterial wurde verworfen. Weitere Informationen finden Sie unter CryptoKeyVersion.import_failure_reason . |
GENERATION_FAILED |
Diese Version konnte nicht generiert werden. Er darf nicht verwendet, aktiviert, deaktiviert oder gelöscht werden. Weitere Informationen finden Sie unter CryptoKeyVersion.generation_failure_reason . |
PENDING_EXTERNAL_DESTRUCTION |
Diese Version wurde gelöscht und kann nicht wieder verwendet oder aktiviert werden. Cloud KMS wartet darauf, dass das entsprechende Schlüsselmaterial in einem External Key Manager gelöscht wird. |
EXTERNAL_DESTRUCTION_FAILED |
Diese Version wurde gelöscht und kann nicht wieder verwendet oder aktiviert werden. Cloud KMS konnte jedoch nicht bestätigen, dass das entsprechende Schlüsselmaterial in einem externen Schlüsselverwaltungssystem gelöscht wurde. Weitere Informationen finden Sie unter CryptoKeyVersion.external_destruction_failure_reason . |
ProtectionLevel
ProtectionLevel
gibt an, wie kryptografische Vorgänge ausgeführt werden. Weitere Informationen finden Sie unter Schutzniveaus.
Enums | |
---|---|
PROTECTION_LEVEL_UNSPECIFIED |
Nicht angegeben. |
SOFTWARE |
Kryptografische Vorgänge werden auf Software-Ebene ausgeführt. |
HSM |
Kryptografische Vorgänge werden in einem Hardware-Sicherheitsmodul (HSM) ausgeführt. |
EXTERNAL |
Krypto-Vorgänge werden von einem externen Schlüsselverwaltungssystem ausgeführt. |
EXTERNAL_VPC |
Kryptografische Vorgänge werden in einem EKM-over-VPC-Back-End ausgeführt. |
CryptoKeyVersionAlgorithm
Der Algorithmus von CryptoKeyVersion
, der angibt, welche Parameter für jeden kryptografischen Vorgang verwendet werden müssen.
Der GOOGLE_SYMMETRIC_ENCRYPTION
-Algorithmus kann mit CryptoKey.purpose
ENCRYPT_DECRYPT
verwendet werden.
Algorithmen, die mit "RSA_SIGN_" beginnen, können mit CryptoKey.purpose
ASYMMETRIC_SIGN
verwendet werden.
Die Felder im Namen nach "RSA_SIGN_" entsprechen den folgenden Parametern: Padding-Algorithmus, Modulo-Bitlänge und Digest-Algorithmus.
Die verwendete Salt-Länge für PSS entspricht der Länge des Digest-Algorithmus. RSA_SIGN_PSS_2048_SHA256
verwendet z. B. ein PSS mit einer Salt-Länge von 256 Bit oder 32 Byte.
Algorithmen, die mit "RSA_DECRYPT_" beginnen, können mit CryptoKey.purpose
ASYMMETRIC_DECRYPT
verwendet werden.
Die Felder im Namen nach "RSA_DECRYPT_" entsprechen den folgenden Parametern: Padding-Algorithmus, Modulo-Bitlänge und Digest-Algorithmus.
Algorithmen, die mit "EC_SIGN_" beginnen, können mit CryptoKey.purpose
ASYMMETRIC_SIGN
verwendet werden.
Die Felder im Namen nach "EC_SIGN_" entsprechen den folgenden Parametern: elliptische Kurve und Digest-Algorithmus.
Algorithmen, die mit „HMAC_“ beginnen, können mit CryptoKey.purpose
MAC
verwendet werden.
Das Suffix nach „HMAC_“ entspricht dem verwendeten Hash-Algorithmus (z. B. SHA256).
Weitere Informationen finden Sie unter Schlüsselzwecke und Algorithmen.
Enums | |
---|---|
CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED |
Nicht angegeben. |
GOOGLE_SYMMETRIC_ENCRYPTION |
Erstellt symmetrische Verschlüsselungsschlüssel. |
RSA_SIGN_PSS_2048_SHA256 |
RSASSA-PSS-2048-Bit-Schlüssel mit SHA256-Digest. |
RSA_SIGN_PSS_3072_SHA256 |
RSASSA-PSS-3072-Bit-Schlüssel mit SHA256-Digest. |
RSA_SIGN_PSS_4096_SHA256 |
RSASSA-PSS-4096-Bit-Schlüssel mit SHA256-Digest. |
RSA_SIGN_PSS_4096_SHA512 |
RSASSA-PSS-4096-Bit-Schlüssel mit SHA-512-Digest. |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1-v1_5 mit 2048-Bit-Schlüssel und SHA256-Digest. |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1-v1_5 mit 3072-Bit-Schlüssel und SHA256-Digest. |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1-v1_5 mit 4096-Bit-Schlüssel und SHA256-Digest. |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1-v1_5 mit 4096-Bit-Schlüssel und SHA512-Digest. |
RSA_SIGN_RAW_PKCS1_2048 |
RSASSA-PKCS1-v1_5-Signaturen ohne Codierung mit einem 2048-Bit-Schlüssel. |
RSA_SIGN_RAW_PKCS1_3072 |
RSASSA-PKCS1-v1_5-Signatur ohne Codierung mit einem 3.072-Bit-Schlüssel. |
RSA_SIGN_RAW_PKCS1_4096 |
RSASSA-PKCS1-v1_5-Signaturen ohne Codierung mit einem 4096-Bit-Schlüssel. |
RSA_DECRYPT_OAEP_2048_SHA256 |
RSAES-OAEP-2048-Bit-Schlüssel mit SHA256-Digest. |
RSA_DECRYPT_OAEP_3072_SHA256 |
RSAES-OAEP-3072-Bit-Schlüssel mit SHA256-Digest. |
RSA_DECRYPT_OAEP_4096_SHA256 |
RSAES-OAEP-4096-Bit-Schlüssel mit SHA256-Digest. |
RSA_DECRYPT_OAEP_4096_SHA512 |
RSAES-OAEP-4096-Bit-Schlüssel mit SHA512-Digest. |
RSA_DECRYPT_OAEP_2048_SHA1 |
RSAES-OAEP-2048-Bit-Schlüssel mit SHA1-Digest. |
RSA_DECRYPT_OAEP_3072_SHA1 |
RSAES-OAEP-3072-Bit-Schlüssel mit SHA1-Digest. |
RSA_DECRYPT_OAEP_4096_SHA1 |
RSAES-OAEP-4096-Bit-Schlüssel mit SHA1-Digest. |
EC_SIGN_P256_SHA256 |
ECDSA auf der NIST-P-256-Kurve mit SHA256-Digest. Es können auch andere Hash-Funktionen verwendet werden: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_P384_SHA384 |
ECDSA auf der NIST-P-384-Kurve mit SHA384-Digest. Es können auch andere Hash-Funktionen verwendet werden: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
EC_SIGN_SECP256K1_SHA256 |
ECDSA auf der Nicht-NIST-secp256k1-Kurve Diese Kurve wird nur für das HSM-Schutzniveau unterstützt. Es können auch andere Hash-Funktionen verwendet werden: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms |
HMAC_SHA256 |
HMAC-SHA256-Signatur mit einem 256-Bit-Schlüssel. |
HMAC_SHA1 |
HMAC-SHA1-Signierung mit einem 160-Bit-Schlüssel. |
HMAC_SHA384 |
HMAC-SHA384-Signatur mit einem 384-Bit-Schlüssel. |
HMAC_SHA512 |
HMAC-SHA512-Signatur mit einem 512-Bit-Schlüssel. |
HMAC_SHA224 |
HMAC-SHA224-Signatur mit einem 224-Bit-Schlüssel. |
EXTERNAL_SYMMETRIC_ENCRYPTION |
Algorithmus, der die symmetrische Verschlüsselung durch einen External Key Manager darstellt. |
KeyOperationAttestation
Enthält eine vom HSM generierte Attestierung zu einem Schlüsselvorgang. Weitere Informationen finden Sie unter Attestierungen verifizieren.
JSON-Darstellung |
---|
{ "format": enum ( |
Felder | |
---|---|
format |
Nur Ausgabe. Das Format der Attestierungsdaten. |
content |
Nur Ausgabe. Die Attestierungsdaten, die beim Ausführen des Schlüsselvorgangs vom HSM bereitgestellt wurden. Ein base64-codierter String. |
certChains |
Nur Ausgabe. Die zum Validieren der Attestierung erforderlichen Zertifikatsketten |
AttestationFormat
Vom HSM bereitgestellte Attestierungsformate.
Enums | |
---|---|
ATTESTATION_FORMAT_UNSPECIFIED |
Nicht angegeben. |
CAVIUM_V1_COMPRESSED |
Mit gzip komprimierte Cavium-HSM-Attestierung. Beachten Sie, dass dieses Format von Cavium definiert wird und jederzeit geändert werden kann. Siehe https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html. |
CAVIUM_V2_COMPRESSED |
Cavium HSM Attestierung V2 mit gzip komprimiert. Dies ist ein neues Format, das in Cavium Version 3.2-08 eingeführt wurde. |
CertificateChains
Zertifikatsketten, die zum Verifizieren der Attestierung erforderlich sind. Zertifikate in Ketten sind PEM-codiert und werden nach https://tools.ietf.org/html/rfc5246#section-7.4.2 sortiert.
JSON-Darstellung |
---|
{ "caviumCerts": [ string ], "googleCardCerts": [ string ], "googlePartitionCerts": [ string ] } |
Felder | |
---|---|
caviumCerts[] |
Cavium-Zertifikatskette, die der Attestierung entspricht. |
googleCardCerts[] |
Zertifikatskette der Google-Karte, die der Attestierung entspricht. |
googlePartitionCerts[] |
Zertifikatskette der Google-Partition, die der Attestierung entspricht. |
ExternalProtectionLevelOptions
ExternalProtectionLevelOptions speichert eine Gruppe zusätzlicher Felder zum Konfigurieren einer CryptoKeyVersion
, die für das Schutzniveau EXTERNAL
und EXTERNAL_VPC
spezifisch sind.
JSON-Darstellung |
---|
{ "externalKeyUri": string, "ekmConnectionKeyPath": string } |
Felder | |
---|---|
externalKeyUri |
Der URI für eine externe Ressource, die dieser |
ekmConnectionKeyPath |
Der Pfad zum externen Schlüsselmaterial im EKM bei Verwendung von [EkmConnection][], z.B. „v0/my/key“. Legen Sie dieses Feld anstelle von externalKeyUri fest, wenn Sie [EkmConnection][] verwenden. |
CryptoKeyPurpose
CryptoKeyPurpose
beschreibt die kryptografischen Funktionen einer CryptoKey
. Ein bestimmter Schlüssel kann nur für die Vorgänge verwendet werden, die aufgrund seines Zwecks zulässig sind. Weitere Informationen finden Sie unter Schlüsselzwecke.
Enums | |
---|---|
CRYPTO_KEY_PURPOSE_UNSPECIFIED |
Nicht angegeben. |
ENCRYPT_DECRYPT |
CryptoKeys kann zu diesem Zweck mit [Encrypt][KeyManagementService.Encrypt] und [Decrypt][KeyManagementService.Decrypt] verwendet werden. |
ASYMMETRIC_SIGN |
CryptoKeys kann mit diesem Zweck mit [AsymmetricSign][KeyManagementService.AsymmetricSign] und [GetPublicKey][KeyManagementService.GetPublicKey] verwendet werden. |
ASYMMETRIC_DECRYPT |
CryptoKeys mit diesem Zweck kann mit [AsymmetricDecrypt][KeyManagementService.AsymmetricDecrypt] und [GetPublicKey][KeyManagementService.GetPublicKey] verwendet werden. |
MAC |
CryptoKeys kann zu diesem Zweck mit [MacSign][KeyManagementService.MacSign] verwendet werden. |
CryptoKeyVersionTemplate
Ein CryptoKeyVersionTemplate
gibt die Eigenschaften an, die beim Erstellen einer neuen CryptoKeyVersion
verwendet werden, entweder manuell mit [CreateCryptoKey][KeyManagementService.CreateCryptoKey] oder automatisch durch die automatische Rotation.
JSON-Darstellung |
---|
{ "protectionLevel": enum ( |
Felder | |
---|---|
protectionLevel |
|
algorithm |
Erforderlich. Aus Gründen der Abwärtskompatibilität ist GOOGLE_SYMMETRIC_ENCRYPTION impliziert, wenn dieses Feld sowohl weggelassen wird als auch |
Methoden |
|
---|---|
|
Gibt kryptografische Schlüssel zurück, die von Cloud KMS in einem bestimmten Cloud-Projekt verwaltet werden. |