1.0 Introduction
This article describes how to integrate Fortanix-Data-Security-Manager (DSM) with Google Cloud Platform (GCP) services using a Virtual Private Cloud (VPC) network.
It also contains the information that a user needs to:
Enable the Cloud Key Management Service (KMS) API in your GCP project
Obtain a GCP service account email address
Configure a GCP External Key Manager (EKM) connection
Import/Create the Google Advanced Encryption Standard (AES) Key in Fortanix DSM
Create a manually managed Cloud EKM connection using VPC
Complete the GCP key setup
Fortanix DSM supports the following customer-managed encryption keys (CMEK) integration services on the Google cloud:
Cloud Logging: Log Router
Google Kubernetes Engine: Data on VM disks or Application-layer Secrets
For the complete list, refer to the Cloud EKM documentation.
2.0 Why Use Fortanix DSM With Google Cloud EKM Using VPC?
Google Cloud’s External Key Manager allows services running on the Google Cloud Platform (GCP), namely Big Query and Google Compute Engine (GCE) to use encryption keys managed by an external key management service and controlled entirely by the customer. A Cloud Deployment Architect for GCP can access an EKM through a Virtual Private Cloud (VPC) network to meet data sovereignty requirements.
Fortanix DSM protects all your data on-premises as well as in the cloud. It provides end-to-end security for keys and data (at-rest, in-transit, and in-use) protected with layers of defense, including Fortanix Runtime Encryption®, Intel® SGX and FIPS-validated hardware. Only authorized users can access keys.
3.0 Terminology References
Fortanix Data Security Manager (DSM)
Fortanix DSM is the cloud solution secured with Intel® SGX. With Fortanix DSM, you can securely generate, store, and use cryptographic keys and certificates, as well as secrets, such as passwords, API keys, tokens, or any blob of data.
GCP - Google Cloud Platform
Google Cloud Platform is a suite of public cloud computing services offered by Google. The platform includes a range of hosted services for compute, storage, and application development that run on Google hardware. Google Cloud Platform services can be accessed by software developers, cloud administrators, and other enterprise IT professionals over the public internet or through a dedicated network connection.
Google KMS - Google Key Management Service
Google Cloud Key Management Service (KMS) is a cloud service for managing encryption keys for other Google Cloud services that enterprises can use to implement cryptographic functions. For more information, refer to the Google Cloud Key Management Service.
VPC – Virtual Private Cloud
A Virtual Private Cloud (VPC) network is a virtual version of a physical network that is implemented inside of Google's production network. For more information on what a VPC network does, refer to the Google documentation.
AES - Advanced Encryption Standard
Google uses the Advanced Encryption Standard (AES) algorithm to encrypt data at rest. AES is widely used because:
Both AES256 and AES128 are recommended by the National Institute of Standards and Technology (NIST) for long-term storage use (as of November 2015).
AES is often included as part of customer compliance requirements. For more information, refer to the Advanced Encryption Standard.
SGX - Software Guard Extensions
Intel’s Software Guard Extensions (SGX) is a set of extensions to the Intel architecture that aims to provide integrity and confidentiality guarantees to security-sensitive computation performed on a computer where all the privileged software (kernel, hypervisor, and so on) is potentially malicious.
FIPS - Federal Information Processing Standards
FIPS is a set of standards that describe document processing, encryption algorithms, and other information technology standards for use within non-military government agencies and by government contractors and vendors who work with the agencies.
4.0 Prerequisites
Ensure the following:
Fortanix DSM
GCP Services
Google Cloud Project
AES key
The GCP Project Owner must enable the Cloud Key Management Service (KMS) API in your GCP Project. Refer to the Google documentation for steps to enable the Cloud KMS API in your GCP project.
The user trying to add the EKM Key in the GCP keyring must have a Cloud KMS Admin role.
The GCP Project Owner must enable BigQuery API access in your GCP Project.
The user using BigQuery must have permission to use BigQuery and permission to access the EKM key that Fortanix creates.
NOTE
The AES key can either be manually imported or created in Fortanix DSM.
5.0 Fortanix DSM with GCP Service Using VPC
With Google Cloud Platform (GCP) External Key Manager, administrators use Fortanix DSM to store cryptographic keys to encrypt or decrypt GCP workloads, including BigQuery and Google Compute Engine (GCE). A GCP administrator can deploy a VPC network to reverse proxy EKM requests and access the EKM through this network to meet data sovereignty requirements.
5.1 Enable KMS API in Your GCP Project
For more information on how to enable the Google External Key Manager API in your GCP project, refer to the Google documentation.
5.2 Obtain Your Google Service Account Email Address
Fortanix DSM requires the identity of the GCP service account in your Google Cloud project. This service account is automatically created by GCP once the KMS API is enabled. It exists by default, has the necessary permissions (which cannot be modified), and is not visible in your IAM console, as it is a backend service account managed by GCP. The service account follows the email address format shown below, where you should substitute your own project number:
service-[PROJECT-NUMBER]@gcp-sa-ekms.iam.gserviceaccount.com
In the example above, PROJECT-NUMBER
is the project number of your Google Cloud Platform project. For more information on your project number, refer to the Creating and managing projects | Resource Manager Documentation | Google Cloud.
5.3 Configure GCP EKM Connection
Set up Cloud External Key Manager (Cloud EKM) to connect to your external key management (EKM) provider over a Virtual Private Cloud (VPC) network. For more information on how to create an EKM connection, refer to the Google documentation.
5.4 Configure Fortanix DSM
A Fortanix DSM service must be configured, and the URL must be accessible. To create a Fortanix DSM account and group, refer to the following sections:
5.4.1 Signing Up
To get started with the Fortanix DSM cloud service, you must register an account at <Your_DSM_Service_URL>. For example, https://eu.smartkey.io.
For detailed steps on how to set up the Fortanix DSM, refer to the User's Guide: Sign Up for Fortanix Data Security Manager SaaS documentation.
5.4.2 Creating an Account
Access <Your_DSM_Service_URL> in a web browser and enter your credentials to log in to Fortanix DSM.
.png?sv=2022-11-02&spr=https&st=2025-05-28T19%3A20%3A35Z&se=2025-05-28T19%3A44%3A35Z&sr=c&sp=r&sig=8GQhadhP3HktoWmrieAVJhvA6nPZnQzOBHXqnBYQ8TM%3D)
Figure 1: Logging in
For more information on how to set up an account in Fortanix DSM, refer to the User's Guide: Getting Started with Fortanix Data Security Manager - UI.
5.4.3 Creating a Group
Perform the following steps to create a group in the Fortanix DSM:
In the DSM left navigation panel, click the Groups menu item, and then click the + button to create a new group.
Figure 2: Add groups
On the Adding new group page, do the following:
Title: Enter a name for your group.
Description (optional): Enter a short description of the group.
Click SAVE to create the new group.
The new group is added to the Fortanix DSM successfully.
5.4.4 Creating an Application
Perform the following steps to create an application (app) in the Fortanix DSM:
In the DSM left navigation panel, click the Apps menu item, and then click the + button to create a new app.
Figure 3: Add application
On the Adding new app page, do the following:
App name: Enter the name for your application.
NOTE
The app name must match the email address of an existing Google Service Account.
ADD DESCRIPTION (optional): Enter a short description of the application.
Authentication method: Select Google Service Account as the authentication method from the drop down menu. For more information on these authentication methods, refer to the User's Guide: Authentication.
In the Allow access to wrap/unwrap keys for the following types of access justifications section, select the key access justification reason for wrapping or unwrapping the key.
NOTE
Selecting the allowed key justification reasons defines an access policy for the app.
The user can allow access to wrap or unwrap keys for the following types of key access justification options:
Accept All: Select Accept All to allow access for all the justification reasons provided below. You can also customize your selection and select specific justification criteria for access.
Customer-initiated support – Support initiated by the customer, for example, Case Number: ####.
Customer-initiated access – Customer or a third party authorized by the customer's IAM policy performs any access to the customer's data.
Google-initiated service – Google-initiated access, for example, to perform system management and troubleshooting, which includes:
Backup and recovery from outages and system failures.
An investigation will be conducted to confirm that the customer is not affected by suspected service issues.
Remediation of technical issues, such as storage failure or data corruption.
Google-initiated review – Google-initiated access for security, fraud, abuse, or compliance purposes, including:
Ensuring the safety and security of customer accounts and content.
Confirming if an event, such as malware infections, has affected the content and may impact account security.
Confirming whether the customer is using Google services in compliance with the Google Terms of Service.
Investigating complaints by other users and customers, or other signals of abusive activity.
Ensuring consistent use of Google services under relevant compliance regimes, such as anti-money laundering regulations.
Google-initiated system operation – Google-initiated access for security, fraud, abuse, or compliance purposes.
Third-party data request – Customer-initiated access by Google to respond to a legal request or legal process, including when responding to a legal process from the customer that requires Google to access the customer's own content. Note that Access Transparency logs, in this case, may not be available if Google cannot legally inform the customer of such a request or process.
No justification reason provided – Indicates the actor accessing the data provided no access reason for the request. This may have been due to a transient error, a bug, or some other unexpected circumstance.
No justification reason expected – Indicates no reason is expected for this key request, as the service in question has never integrated with Key Access Justification or is still in the pre-GA state and therefore may still have residual methods that call the External Key Manager but do not provide a justification.
Modified customer-initiated access – A customer uses their account to perform any access, which is authorized by their own IAM policy; however, a Google administrator has reset the superuser account associated with the user’s organization within the last 7 days.
Modified Google-initiated system operation – Google initiated access to customer data to perform indexing, structuring, pre-computation, hashing, sharding, and caching to optimize the structure and quality of data for future uses by the customer.
Google responses to production alert – Google-initiated access to the main system reliability.
Allow missing justification: Select this option to allow access even if a justification reason is not provided.
Assigning the new app to groups: Select the group created in Section 5.4.3: Creating a Group from the list.
Click SAVE to add the new application.
The new application has been added to the Fortanix DSM successfully.
5.4.5 Creating a Security Object
Perform the following steps to generate or import an AES key in the Fortanix DSM:
Generating the Security Object
Perform the following steps to generate an AES key in the Fortanix DSM:
In the DSM left navigation panel, click the Security Objects menu item, and then click the + button to create a new security object.
Figure 4: Adding security object
On the Add new Security Object page, do the following:
Security Object name: Enter the name for your security object.
Group: Select the group as created in Section 5.4.3: Creating a Group.
Select the GENERATE radio button.
In the Choose a type section, select the AES key type.
In the Key Size section, select the size of the key in bits.
In the Key operations permitted section, select the required operations to define the actions that can be performed with the cryptographic keys, such as encryption, decryption, signing, and verifying.
NOTE
Ensure that the Encrypt and Decrypt permissions are selected.
Click GENERATE to create the new security object.
Figure 5: Generate AES key
The new security object is created in the Fortanix DSM successfully.
Importing the Security Object
Perform the following steps to import an AES key in the Fortanix DSM:
In the DSM left navigation panel, click the Security Objects menu item, and then click the + button to create a new security object.
Figure 6: Adding security object
On the Add new Security Object page, do the following:
Security Object name: Enter the name for your security object.
Group: Select the group as created in Section 5.4.3: Creating a Group.
Select the IMPORT radio button.
In the Choose a type section, select the AES key type.
In the Place value here or import from file section, select the value format type as Hex, Base64, or Raw, and click UPLOAD A FILE to upload the key file.
In the Key operations permitted section, select the required operations to define the actions that can be performed with the cryptographic keys, such as encryption, decryption, signing, and verifying.
NOTE
Ensure that the Encrypt and Decrypt permissions are selected.
Click IMPORT to create the new security object.
Figure 7: Import AES key
In the detailed view of the key, click COPY KEY PATH FOR EKM VPC in the COPY ID drop down menu.
Figure 8: Get the Google EKM VPC URL
The new security object is added to the Fortanix DSM successfully.
5.5 Enable GCP Service to Access AES Key in Fortanix DSM Using VPC
To allow a GCP service to access an AES key stored in Fortanix DSM, configure the external_key_uri
with the appropriate URL.
Use the following format for the Google EKM URI:
https://<DSM_URL>/v0/gcp/key/<key_id>
Replace
<DSM_URL>
with your DSM domain, such asus.smartkey.io
oreu.smartkey.io
.Replace
<key_id>
with the URI of the AES key you want the GCP service to use, as copied in Section 5.4.5: Creating a Security Object.
5.6 Create a Manually Managed Cloud EKM Using VPC Key
For more information on how to create a manually managed cloud EKM using the VPC key, refer to the Google documentation.
In Step 9 from the link above, for the Key Path field, enter the key path for EKM VPC as copied in Section 5.5: Enable GCP Service to Access AES Key in Fortanix DSM Using VPC.
6.0 Updating Authentication Method for an Existing App
Perform the following steps to change the authentication method for an existing app to Google Service Account:
Go to the detailed view of the existing app.
In the INFO tab, under the API Key section, click Change authentication method and select the Google Service Account option to change the authentication method to Google Service Account.
Click SAVE.
In the Configure authentication method window,
Enter the valid name of the Google EKM instance.
NOTE
The app name must match the email address of an existing Google Service Account.
Select the key access justification reasons. To learn about the justification policies, refer to Section 5.4.4: Creating an Application.
Select both check boxes to confirm your understanding of the action.
Figure 9: Select key justification reason
Click UPDATE.
The application is updated with the new authentication method.
7.0 Key Access Justification Policy Management
7.1 Updating the Key Access Justification Reason for an Existing App
Perform the following steps to edit the key access justification reason for an existing app:
In the DSM left navigation panel, click the Apps menu item, and then click the GCP app to go to the detailed view of the app.
Figure 10: Select the app
In the detailed view of the app, click the INFO tab, and in the Google Service Account section, click VIEW INSTRUCTIONS.
Figure 11: Edit existing key justification reason
In the Google Service Account window, click EDIT.
Figure 12: Edit key justification reason
Edit the allowed justification reasons and click SAVE AND CLOSE to save the new updates.
Figure 13: Save and close the updates
7.2 Adding Key Access Justification Policy for an Existing Key (Optional)
You can also change the authentication method for an existing key from the Security Objects page.
NOTE
Fortanix DSM first checks the provided access reason against the app-level policy.
If the provided access reason passes at the app level, then Fortanix DSM checks it against the key level policy.
If the provided access reason passes at both the app level and key level, Fortanix DSM executes the operation.
If the provided access reason passes at the app level but fails at the key level, Fortanix DSM throws an error: “Request violates security object's access reason policy.”
Perform the following steps to add the key access justification policy for an existing key from the Security Objects page.
In the DSM left navigation panel, click the Security Objects menu item, and then click the key for which you want to change the key justification policy.
Figure 14: Select the key
In the detailed view of the key, click the KEY ACCESS JUSTIFICATION tab, and then click ADD POLICY to add a new key access justification policy.
Figure 15: Change key authentication method
By default, the Accept All option is selected.
Figure 16: Change key access justification permissions
To change the applicable policies, clear the Accept All option, select the access justification policies that you want to apply to the key. To learn about the justification policies, refer to Section 5.4.4: Creating an Application.
Click SAVE to apply the defined access justification policies to the key.
The key is updated with the new justification policy.
7.3 Updating the Key Level Justification Policy for an Existing Key
Perform the following steps to update the key access justification policy for an existing key from the Security Object page:
In the DSM left navigation panel, click the Security Objects menu item, and then click the key for which you want to edit the key access justification reason.
In the detailed view of the key, click the KEY ACCESS JUSTIFICATION tab, and then click EDIT POLICY.
Figure 17: Edit key authentication method
Clear the default policies you want to remove, select the policies you want to add, and then click SAVE.
The key is updated with the new access justification policy.
8.0 References
Google Cloud Key Management Service: https://cloud.google.com/kms/ekm/docs/
GCP Key Manager Service API: https://cloud.google.com/kms/docs/reference/rest/
Fortanix DSM Getting started: User's Guide: Getting Started with Fortanix Data Security Manager - UI
Advanced Encryption Standard: https://www.researchgate.net/publication/317615794_Advanced_Encryption_Standard_AES_Algorithm_to_Encrypt_and_Decrypt_Data
Enable Billing in GCP: https://cloud.google.com/billing/docs/how-to/modify-project