Cloud key management
Google Cloud EKM (External Key Manager)
24min
integrate with google cloud ekm to protect data within google cloud terminology the following list contains important terms and their definitions term definition external key manager (ekm) the key manager outside of google cloud that manages your keys (such as {{ch}} ) cloud external key manager (cloud ekm) a google cloud service for using your external keys that a supported ekm manages cloud ekm through the internet a version of cloud ekm where google cloud communicates with your external key manager over the internet cloud ekm through a vpc a version of cloud ekm where google cloud communicates with your external key manager over a virtual private cloud (vpc) for more information, see vpc network overview ekm key management from cloud kms when using cloud kms through a vpc with an external key management partner that supports the cloud ekm control plane, you can use the cloud kms ekm management mode to simplify the process of maintaining external keys in your external key management partner and in cloud ekm crypto space a container for your resources within your external key management partner your crypto space is identified by a unique crypto space path the format of the crypto space path varies by external key management partner for example, v0/cryptospaces/your unique path partner managed ekm an arrangement where your ekm is managed for you by a trusted partner (such as {{futurex}} ) key access justifications when you use cloud ekm with key access justifications, each request to your external key management partner includes a field that identifies the reason for each request you can configure your external key management partner to allow or deny requests based on the key access justifications code provided for more information about key access justifications, see key access justifications overview google cloud ekm features google cloud ekm has the following features (described in the following sections) base google ekm support justification vpc support checksum support asymmetric signing key management commands google cloud ekm service you can find the google cloud ekm (external key manager) service on the available services page under the cloud key management category for more information on how to deploy a service, see the managing services docid\ rltk3xdprmzglohfpkh2l page for detailed instructions base google ekm support with google cloud ekm, you can use keys that you manage within a supported external key management partner (such as {{ch}} ) to protect data within google cloud you can protect data at rest in supported cmek integration services or by calling the cloud key management service api directly justification the justification feature requires users to provide a reason or justification for any critical operation they perform on the key management system this feature enhances accountability and enables better auditing of actions taken within the system by mandating justifications, you can easily trace back decisions, identify patterns of misuse, and ensure that only authorized and necessary operations are executed vpc support virtual private cloud (vpc) support enables you to integrate the {{ch}} seamlessly into your existing vpc infrastructure on google cloud this feature ensures that the key management server operates within a secure, isolated environment, which reduces the potential attack surface and provides better protection for sensitive data vpc support also simplifies network configurations and enables more granular control over access to the key management server checksum support (validity checks on keys through a cmac) checksum support, using a cipher based message authentication code (cmac), enables the {{ch}} to perform validity checks on cryptographic keys when you generate, store, or transmit keys, a cmac is calculated and attached to the key the cmac acts as a checksum so the recipient can verify the integrity of the key this feature enhances the security of key management operations by ensuring that keys have not been tampered with or corrupted during storage or transmission this feature is transparent to the user asymmetric signing (rsa keys) asymmetric signing support for rsa keys enables the {{ch}} to generate and manage rsa key pairs, which you can use for digital signatures and public key encryption with this feature, you can create, store, and manage rsa keys in the {{ch}} , while leveraging google cloud external key manager for operations that require the private key, such as signing or decrypting data this expands the range of cryptographic operations that you can perform with the integrated solution and provides increased flexibility key management commands (in beta with google) the key management commands feature, currently in beta with google, enables you to execute a wider range of key management operations directly from the google cloud external key manager interface this includes actions such as key rotation, deletion, and metadata updates with a more comprehensive set of key management commands, you can streamline your workflows and manage your cryptographic keys more efficiently within the integrated environment these new features significantly enhance the capabilities of the {{ch}} and google cloud external key manager integration, providing improved security, accountability, and flexibility for cryptographic key management key benefits of the integration integrating with {{ch}} offers the following benefits key provenance you control the location and distribution of your externally managed keys externally managed keys are never cached or stored within google cloud instead, cloud ekm communicates directly with the {{ch}} for each request access control you manage access to your externally managed keys before you can use an externally managed key in google cloud, you must grant the google cloud project access to use the key you can revoke this access at any time centralized key management you can manage your keys and access policies from a single user interface, whether the data they protect resides in the cloud or on your premises in all cases, the key resides on the {{ch}} and is never sent to google refer to the google ekm documentation https //cloud google com/kms/docs/ekm#supported services for the full list of services that support cmek with cloud ekm how it works cloud ekm key versions consist of these parts external key material the external key material of a cloud ekm key is cryptographic material created and stored in your ekm this material does not leave your ekm, and it is never shared with google key reference each cloud ekm key version contains either a key uri or a key path this is a unique identifier for the external key material that cloud ekm uses when requesting cryptographic operations using the key internal key material when a symmetric cloud ekm key is created, cloud kms creates additional key material in cloud kms, which never leaves cloud kms this key material is used as an extra layer of encryption when communicating with your ekm this internal key material does not apply to asymmetric signing keys to use your cloud ekm keys, cloud ekm sends requests for cryptographic operations to your ekm for example, to encrypt data with a symmetric encryption key, cloud ekm first encrypts the data using the internal key material the encrypted data is included in a request to the ekm the ekm wraps the encrypted data in another layer of encryption using the external key material and then returns the resulting ciphertext data encrypted using a cloud ekm key can't be decrypted without both the external key material and the internal key material if your organization has enabled key access justifications, your external key management partner records the provided access justification and completes the request only for justification reason codes that are allowed by your key access justifications policy on the external key management partner creating and managing cloud ekm keys requires corresponding changes in both cloud kms and the ekm these corresponding changes are handled differently for manually managed external keys and for coordinated external keys all external keys accessed over the internet are manually managed external keys accessed over a vpc network can be manually managed or coordinated, depending on the ekm management mode of the ekm via vpc connection the manual ekm management mode is used for manually managed keys the cloud kms ekm management mode is used for coordinated external keys both the cloud ekm key version and the external key are required for each encryption and decryption request if you lose access to either key, your data cannot be recovered it is not possible to re create an identical cloud ekm key version by using the same external key uri or key path refer to the google ekm documentation for information about the considerations and restrictions when using cloud ekm manually managed external keys this section provides a broad overview of how cloud ekm works with a manually managed external key first, you create or use an existing key in the {{ch}} application interface this key has a unique uri or key path next, you grant your google cloud project access to use the key, on the {{ch}} in your google cloud project, you create a cloud ekm key version by using the uri or key path for the externally managed key you must manually manage maintenance operations, such as key rotation, between {{ch}} and cloud kms for example, complete key version rotation or key version destruction operations on both the {{ch}} and in cloud kms within google cloud, the key appears alongside your other cloud kms and cloud hsm keys, with one of the following protection levels external or external vpc the cloud ekm key and the external key management partner key work together to protect your data and never expose the external key to google coordinated external keys this section provides an overview of how cloud ekm works with a coordinated external key first, you set up an ekm through the vpc connection, setting the ekm management mode to cloud kms during setup, you must authorize your ekm to access your vpc network and authorize your google cloud project service account to access your crypto space on the {{ch}} the connection from cloud kms to {{ch}} uses the hostname of the {{ch}} and a crypto space path that identifies your resources within your ekm (i e , {{ch}} ) next, you create an external key in cloud kms when you create a cloud ekm key using an ekm via vpc connection with the cloud kms ekm management mode enabled, the following steps take place automatically a cloud ekm sends a key creation request to your ekm b your ekm creates the requested key material this external key material remains in the ekm and is never sent to google c your ekm returns a key path to cloud ekm d cloud ekm creates your cloud ekm key version using the key path provided by your ekm maintenance operations on coordinated external keys can be initiated from cloud kms for example, coordinated external keys used for symmetric encryption can be automatically rotated on a set schedule the creation of new key versions is coordinated in your ekm by cloud ekm you can also trigger the creation or destruction of key versions in your ekm from cloud kms using the google cloud console, the gcloud cli, the cloud kms api, or cloud kms client libraries within google cloud, the key appears alongside your other cloud kms and cloud hsm keys, with protection level external vpc the cloud ekm key and the external key management partner key work together to protect your data and never expose the external key to google ekm key management from cloud kms coordinated external keys are made possible by ekm through vpc connections that use ekm key management from cloud kms {{futurex}} 's {{ch}} product fully supports the cloud ekm control plane, giving you the ability to use the ekm key management from cloud kms for your ekm through vpc connections to create coordinated external keys with ekm key management from cloud kms enabled, cloud ekm can request the following changes in your ekm create a key when you create an externally managed key in cloud kms using a compatible ekm via vpc connection, cloud ekm sends your key creation request to your ekm when successful, your ekm creates the new key and key material and returns the key path for cloud ekm to access the key rotate a key when you rotate an externally managed key in cloud kms using a compatible ekm through vpc connection, cloud ekm sends your rotation request to your ekm when successful, your ekm creates new key material and returns the key path for cloud ekm to use to access the new key version destroy a key when you destroy a key version for an externally managed key in cloud kms by using a compatible ekm through vpc connection, cloud kms schedules the key version for destruction in cloud kms if the key version is not restored before the scheduled for destruction period ends, cloud ekm destroys its part of the key's cryptographic material and sends a destruction request to your ekm data encrypted with this key version cannot be decrypted after the key version is destroyed in cloud kms, even if the ekm has not yet destroyed the key version you can see whether the ekm has successfully destroyed the key version by viewing the key details in cloud kms when keys in your ekm are managed from cloud kms, the key material still resides in your ekm google can't make any key management requests to your ekm without explicit permission google can't change permissions or key access justifications policies in your external key management partner system if you revoke the google permissions in your ekm, key management operations attempted in cloud kms fail {{ch}} unique features at {{futurex}} , we regularly update our third party integrations to enable additional features the following section describes other configurations and options available on the google cloud ekm service test wrap and unwrap keys you can test wrap and unwrap keys with static data the test displays the success or error state of the request and how many milliseconds it took for the request to complete to access the test, you need a cryptospace and an active key open the google cloud ekm service, open the keys of a cryptospace, and finally select the \[ test key ] button for the key