REST Resource: projects.locations.keyRings.importJobs

Resource: ImportJob

An ImportJob can be used to create CryptoKeys and CryptoKeyVersions using pre-existing key material, generated outside of Cloud KMS.

When an ImportJob is created, Cloud KMS will generate a "wrapping key", which is a public/private key pair. You use the wrapping key to encrypt (also known as wrap) the pre-existing key material to protect it during the import process. The nature of the wrapping key depends on the choice of importMethod. When the wrapping key generation is complete, the state will be set to ACTIVE and the publicKey can be fetched. The fetched public key can then be used to wrap your pre-existing key material.

Once the key material is wrapped, it can be imported into a new CryptoKeyVersion in an existing CryptoKey by calling cryptoKeyVersions.import. Multiple CryptoKeyVersions can be imported with a single ImportJob. Cloud KMS uses the private key portion of the wrapping key to unwrap the key material. Only Cloud KMS has access to the private key.

An ImportJob expires 3 days after it is created. Once expired, Cloud KMS will no longer be able to import or unwrap any key material that was wrapped with the ImportJob's public key.

For more information, see Importing a key.

JSON representation
{
  "name": string,
  "importMethod": enum (ImportMethod),
  "protectionLevel": enum (ProtectionLevel),
  "createTime": string,
  "generateTime": string,
  "expireTime": string,
  "expireEventTime": string,
  "state": enum (ImportJobState),
  "publicKey": {
    object (WrappingPublicKey)
  },
  "publicKeyFormat": enum (PublicKeyFormat),
  "attestation": {
    object (KeyOperationAttestation)
  },
  "cryptoKeyBackend": string
}
Fields
name

string

Output only. The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.

importMethod

enum (ImportMethod)

Required. Immutable. The wrapping method to be used for incoming key material.

protectionLevel

enum (ProtectionLevel)

Required. Immutable. The protection level of the ImportJob. This must match the ProtectionLevel of the versionTemplate on the CryptoKey you attempt to import into.

createTime

string (Timestamp format)

Output only. The time at which this ImportJob was created.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

generateTime

string (Timestamp format)

Output only. The time this ImportJob's key material was generated.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

expireTime

string (Timestamp format)

Output only. The time at which this ImportJob is scheduled for expiration and can no longer be used to import key material.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

expireEventTime

string (Timestamp format)

Output only. The time this ImportJob expired. Only present if state is EXPIRED.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

state

enum (ImportJobState)

Output only. The current state of the ImportJob, indicating if it can be used.

publicKey

object (WrappingPublicKey)

Output only. The public key with which to wrap key material prior to import. Only returned if state is ACTIVE.

publicKeyFormat

enum (PublicKeyFormat)

Output only. Specifies the WrappingPublicKey format provided by the customer in the KeyManagementService.GetImportJob request.

attestation

object (KeyOperationAttestation)

Output only. Statement that was generated and signed by the key creator (for example, an HSM) at key creation time. Use this statement to verify attributes of the key as stored on the HSM, independently of Google. Only present if the chosen ImportMethod is one with a protection level of HSM.

cryptoKeyBackend

string

Immutable. The resource name of the backend environment where the key material for the wrapping key resides and where all related cryptographic operations are performed. This field is only populated for keys stored in HSM_SINGLE_TENANT. Note, this list is non-exhaustive. Supported resources: * "projects/*/locations/*/singleTenantHsmInstances/*"

ImportMethod

ImportMethod describes the key wrapping method chosen for this ImportJob.

Enums
IMPORT_METHOD_UNSPECIFIED Not specified.
RSA_OAEP_3072_SHA1_AES_256 This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 3072 bit RSA key. For more details, see RSA AES key wrap mechanism.
RSA_OAEP_4096_SHA1_AES_256 This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 4096 bit RSA key. For more details, see RSA AES key wrap mechanism.
RSA_OAEP_3072_SHA256_AES_256 This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 3072 bit RSA key. For more details, see RSA AES key wrap mechanism.
RSA_OAEP_4096_SHA256_AES_256 This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 4096 bit RSA key. For more details, see RSA AES key wrap mechanism.
RSA_OAEP_3072_SHA256 This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The key material to be imported is wrapped directly with the RSA key. Due to technical limitations of RSA wrapping, this method cannot be used to wrap RSA keys for import.
RSA_OAEP_4096_SHA256 This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The key material to be imported is wrapped directly with the RSA key. Due to technical limitations of RSA wrapping, this method cannot be used to wrap RSA keys for import.
HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM Represents the Hybrid Public Key Encryption (HPKE) Scheme originally defined in RFC 9180. It involves wrapping the raw key with an ephemeral AES key, derived with HKDF-SHA256 from an encryption context, that is, in turn obtained from the receiver's public key with the help of the ML-KEM-768 KEM. For more details, see the ML-KEM HPKE standard.
HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM Represents the Hybrid Public Key Encryption (HPKE) Scheme originally defined in RFC 9180. It involves wrapping the raw key with an ephemeral AES key, derived with HKDF-SHA256 from an encryption context, that is, in turn obtained from the receiver's public key with the help of the ML-KEM-1024 KEM. For more details, see the ML-KEM HPKE standard.
HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM Represents the Hybrid Public Key Encryption (HPKE) Scheme originally defined in RFC 9180. It involves wrapping the raw key with an ephemeral AES key, derived with HKDF-SHA256 from an encryption context, that is, in turn obtained from the receiver's public key with the help of the X-Wing hybrid KEM. For more details, see the X-Wing standard.

ImportJobState

The state of the ImportJob, indicating if it can be used.

Enums
IMPORT_JOB_STATE_UNSPECIFIED Not specified.
PENDING_GENERATION The wrapping key for this job is still being generated. It may not be used. Cloud KMS will automatically mark this job as ACTIVE as soon as the wrapping key is generated.
ACTIVE This job may be used in cryptoKeys.create and cryptoKeyVersions.create requests.
EXPIRED This job can no longer be used and may not leave this state once entered.

WrappingPublicKey

The public key component of the wrapping key. For details of the type of key this public key corresponds to, see the ImportMethod.

JSON representation
{
  "pem": string,
  "data": string
}
Fields
pem

string

The public key, encoded in PEM format. For more information, see the RFC 7468 sections for General Considerations and Textual Encoding of Subject Public Key Info. This field gets populated by default for RSA-based import methods, if no publicKeyFormat is specified in the request. If you want to retrieve the wrapping key of an ImportJob in some other format, use KeyManagementService.GetImportJob and set the publicKeyFormat to the desired public key format.

data

string (bytes format)

Output only. Contains the public key, formatted according to the PublicKey.PublicKeyFormat specified in the KeyManagementService.GetImportJob request.

A base64-encoded string.

PublicKeyFormat

The supported PublicKey formats.

Enums
PUBLIC_KEY_FORMAT_UNSPECIFIED

If the publicKeyFormat field is not specified: - For PQC algorithms, an error will be returned. - For non-PQC algorithms, the default format is PEM, and the field pem will be populated.

Otherwise, the public key will be exported through the publicKey field in the requested format.

PEM The returned public key will be encoded in PEM format. See the RFC7468 sections for General Considerations and Textual Encoding of Subject Public Key Info for more information.
DER The returned public key will be encoded in DER format (the PrivateKeyInfo structure from RFC 5208).
NIST_PQC This is supported only for PQC algorithms. The key material is returned in the format defined by NIST PQC standards (FIPS 203, FIPS 204, and FIPS 205).
XWING_RAW_BYTES The returned public key is in raw bytes format defined in its standard https://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem.

Methods

create

Create a new ImportJob within a KeyRing.

get

Returns metadata for a given ImportJob.

getIamPolicy

Gets the access control policy for a resource.

list

Lists ImportJobs.

setIamPolicy

Sets the access control policy on the specified resource.

testIamPermissions

Returns permissions that a caller has on the specified resource.