Google Cloud Key Management Integration for Exadata Database Service on Exascale Infrastructure@Google Cloud

Exadata Database Service on Exascale Infrastructure@Google Cloud now supports integration with Google Cloud Platform's Key Management Service (KMS).

This enhancement allows users to manage Transparent Data Encryption (TDE) master encryption keys (MEKs) using GCP Customer-Managed Encryption Keys (CMEKs).

Previously, Transparent Data Encryption (TDE) master encryption keys (MEKs) could only be stored in a file-based Oracle Wallet, Oracle Cloud Infrastructure (OCI) Vault, or Oracle Key Vault (OKV). With this update, users can now store and manage MEKs directly in GCP KMS, providing improved key lifecycle control and alignment with organization-specific security policies.

This integration enables applications, Google Cloud services, and databases to benefit from a centralized key management solution that offers enhanced security and simplified key lifecycle management.

Prerequisites

Before configuring GCP Customer Managed Encryption Keys (CMEK) as the key management service for your databases, ensure the following prerequisites are met.

  1. Provision a VM Cluster using the Google Cloud console. See Provisioning a VM Cluster for Google Cloud for step-by-step instructions.
  2. Review the Identity Connector connection to ensure it is correctly configured and active. For more information, see Verify the Default Identity Connector Attached to the VM Cluster.
  3. Prerequisites for Configuring GCP Customer Managed Encryption Keys (CMEK) at the VM Cluster Level.

    To enable Google Cloud Platform (GCP) Customer Managed Encryption Keys (CMEK) for databases deployed with Exadata Database Service on Exascale Infrastructure@Google Cloud, you must configure CMEK as the key management option at the VM cluster level. Once CMEK is enabled, all database encryption and decryption operations will use the specified GCP-managed key.

    Before enabling CMEK, ensure that:
    • The required GCP key rings and encryption keys are already created in GCP.
    • These keys are mirrored as anchor resources in Oracle Cloud Infrastructure (OCI), ensuring synchronization between GCP and OCI.
    • The anchor resources are in place for database provisioning and for managing the encryption key lifecycle, including key rotation, revocation, and auditing.
  4. IAM Policy Requirements for Accessing GCP Key Resources.

    The database uses the cluster resource principal to securely retrieve GCP key resources. To enable this functionality, you must define the appropriate IAM policies in your OCI tenancy.

    Read-Only Access to Oracle GCP Keys:
    Allow any-user to read oracle-db-gcp-keys in compartment id <your-compartment-OCID> 
    where all { request.principal.type = 'exadbvmcluster',}

    This policy grants read-only access to GCP key resources for the VM cluster resource principal.

  5. Required Google Cloud Services Connectivity GCP CMEK Integration.

    Google Cloud VPCs typically include default routes to the services listed below. Ensure that no firewall egress rules block access to these endpoints.

    • https://iamcredentials.googleapis.com/
    • https://sts.googleapis.com/
    • https://cloudkms.googleapis.com/

Using the Console to Manage GCP KMS Integration for Exadata Database Service on Exascale Infrastructure@Google Cloud

Learn how to manage GCP KMS integration for Exadata Database Service on Exascale Infrastructure@Google Cloud.

To view the details of an identity connector attached to a VM cluster, use this procedure.

  1. Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Exascale Infrastructure.

    The VM clusters page is selected by default.

  2. From the list of VM Clusters, select the cluster of your choice.
  3. On the resulting VM Cluster Details page, in the Multicloud Information section, confirm that the Identity connector field displays the identity connector attached to this VM cluster.
  4. Click the name of the Identity Connector to view its details.

    You will be redirected to the Database Multicloud Integrations portal.

To create a key ring, use this procedure.

  1. Open the Google Cloud Console, navigate to the Key Management page.
  2. Click Create key ring.
  3. Provide the following details:
    • Name: Enter a descriptive name for the key ring.
    • Location: Select a location for your key ring.
      Important:
      • Key rings with the same name can exist in different locations, so you must always specify the location.
      • Choose a location close to the resources you want to protect.
      • For Customer Managed Encryption Keys, ensure the key ring is in the same location as the resources that will use it.

      Choosing a location for your Key Ring:

      When creating a key ring in Google Cloud Key Management Service (KMS), selecting the right location is crucial. Your choice affects where your cryptographic keys are stored and how they're replicated. For more information, see Cloud KMS locations.

      • Region:
        • Data is stored in a specific geographic region.
        • Keys remain within the boundaries of this single region.
        • Ideal for:
          • Low-latency applications
          • Compliance with data residency requirements
          • Region-specific workloads
      • Multi-region:
        • Data is replicated across multiple regions within a larger geographical area.
        • Google manages distribution and replication automatically.
        • You cannot select individual data centers or regions.
        • Ideal for:
          • High availability
          • Resilient, fault-tolerant applications
          • Services serving a wide regional area
      • Global:
        • A special type of multi-region.
        • Keys are distributed across Google data centers worldwide.
        • Location selection and control are not available.
        • Ideal for:
          • Applications with global users
          • Use cases needing maximum redundancy and reach
  4. Click Create.

Once the key ring is created, you can begin creating and managing encryption keys within it.

To create a raw symmetric encryption key in the specified key ring and location, use this procedure.

  1. Open the Google Cloud Console, navigate to the Key Management page.
  2. Click the name of the key ring where you want to create the key.
  3. Click Create key.
  4. Provide the following details:
    • Key name: Enter a descriptive name for your key.
    • Protection level: Choose Software or HSM (Hardware Security Module).

      The protection level of a key can't be changed after the key is created. For more information, see Protection levels.

    • Key material: Select Generate key or Import key.

      Generate key material in Cloud KMS or import key material that is maintained outside of Google Cloud. For more information, see Customer-managed encryption keys (CMEK).

    • Purpose and Algorithm:

      For more information, see Key purposes and algorithms.

      • Set Purpose to Raw encryption/decryption.
      • For Algorithm, select AES-256-CBC.
  5. Click Create.

After creation, you can use this key for cryptographic operations that require AES-CBC encryption and decryption.

To allow a key to be discoverable in Oracle Cloud Infrastructure (OCI), use this procedure.

  1. In Google Cloud KMS, select the key you want to make discoverable.
  2. Navigate to the Permissions tab and click Add principal.
  3. In the New principals field, enter the service account associated with your Workload Resource Service Agent.
    Note

    You can find this service account on the Identity Connector details page, under the GCP Information section. Look for the Workload resource service agent and note its ID — this is the required service account.

  4. Under Assign roles, add a role of your choice.
    Note

    Create a custom role with the following minimum permissions and assign it to the key ring of your choice.

    These permissions together allow OCI to:

    • Discover KMS resources like key rings and keys.
    • Access metadata about keys and their versions.
    • Use the keys for cryptographic operations (encryption/decryption).
    • Create key versions.

    Minimum Required Permissions:

    • cloudkms.cryptoKeyVersions.get

      Allows retrieval of metadata for a specific key version.

    • cloudkms.cryptoKeyVersions.manageRawAesCbcKeys

      Enables management of raw AES-CBC key material (import, rotation, and so on).

    • cloudkms.cryptoKeyVersions.create

      Allows creation of new key versions within a key.

    • cloudkms.cryptoKeyVersions.list

      Lists all versions of a given key.

    • cloudkms.cryptoKeyVersions.useToDecrypt

      Grants permission to use a key version for decrypting data.

    • cloudkms.cryptoKeyVersions.useToEncrypt

      Grants permission to use a key version for encrypting data.

    • cloudkms.cryptoKeys.get

      Allows retrieval of metadata for a key.

    • cloudkms.cryptoKeys.list

      Lists all keys within a key ring.

    • cloudkms.keyRings.get

      Allows retrieval of metadata for a key ring.

    • cloudkms.locations.get

      Retrieves information about supported key locations.

  5. Click Save to apply the changes.
  6. Click Refresh to confirm that the updated permissions have taken effect.

To enable Google Cloud Customer Managed Encryption Keys (CMEK) for your VM cluster, you must first register the GCP Key Ring in OCI.

Note

Before proceeding, ensure that the permissions outlined in Grant Permissions in Google Cloud KMS for Key Discovery by Oracle Cloud Infrastructure (OCI) have been granted.

  1. In the Database Multicloud Integrations portal, navigate to: Google Cloud Integration > GCP Key Rings.
  2. Click GCP Key Ring,
  3. Click Register GCP key rings
  4. On the resulting Register GCP key rings page, provide the following details:
    • Compartment: Select the compartment where the VM cluster resides.
    • Identity Connector: Choose the Identity Connector attached to the VM cluster.
    • Key Ring: Enter the name of the GCP key ring to register.

      To discover all available key rings through a single identity connector, you must grant the following permissions to that identity connector. These permissions should be assigned at the appropriate project or folder level to ensure the connector can access all key rings across the intended scope.

      • cloudkms.keyRings.list

        Allows listing all key rings within a project.

      • cloudkms.locations.get

        Allows retrieving metadata for a specific key ring.

  5. Click Discover to verify if the key ring exists in GCP.

    If successful, the key ring’s details will be displayed.

    Note

    Only key rings can be registered — not individual keys. All supported keys associated with a registered key ring will be available, provided the required permissions are in place.

  6. Click Register.

To enable GCP CMEK for your VM Cluster, use this procedure.

Note

When you provision an Exadata VM Cluster, GCP CMEK is disabled by default.

  1. Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Exascale Infrastructure.

    The VM clusters page is selected by default.

  2. From the list of VM Clusters, select the cluster you want to configure.
  3. On the VM Cluster Details page, scroll to the Multicloud Information section and click Enable next to GCP CMEK.
  4. To disable GCP CMEK, click Disable.

Create a Database and Use GCP Customer-Managed Encryption Key (CMEK) as the Key Management Solution

This topic describes only the steps for creating a database and using GCP Customer-managed encryption key (CMEK) as the key management solution.

For the generic database creation procedure, see To Create a Database in an Existing Oracle Exadata Database Service on Exascale Infrastructure VM Cluster.

Prerequisites

  • Enable Google Cloud Key Management at the VM cluster level.
  • Register the GCP key rings in OCI.

Steps

If Google Cloud Key Management is enabled at the VM cluster, you will have two key management options: Oracle Wallet and GCP Customer Managed Encryption Key.

  1. In the Encryption section, choose GCP Customer Managed Encryption Key.
  2. Select a registered Key ring available in your compartment.
    Note

  3. Select the key within the selected key ring in your compartment.

To change encryption keys between different encryption methods, use this procedure.

Note

  • You cannot migrate from GCP Customer Managed Encryption Key to Oracle Wallet.
  • Your database will experience a brief downtime while the key management configuration is being updated.
  1. Navigate to your database details page in the OCI console.
  2. In the Encryption section, verify that Key management is set to Oracle Wallet, and then click the Change link.
  3. Enter the following information on the Change key management page.
    1. Select your Key management as GCP Customer Managed Encryption Key from the drop-down list.
    2. Select the compartment you are using, and then choose the Key Ring available in that compartment.
    3. Next, select the Key compartment you are using, and then choose the desired Key from the drop-down list.
    4. Click Save changes.

To rotate the GCP Customer Managed Encryption Key of a container database (CDB), use this procedure.

  1. Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Exascale Infrastructure.
  2. Choose your Compartment.

    A list of VM Clusters is displayed for the chosen Compartment.

  3. In the list of VM Clusters, click the name of the VM cluster that contains the database that you want to rotate encryption keys.
  4. Click Container Databases.
  5. Click the name of the database that you want to rotate encryption keys.

    The Database Details page displays information about the selected database.

  6. In the Encryption section, verify that the Key Management is set to GCP Customer Managed Encryption Key, and then click the Rotate link.
  7. On the resulting Rotate Key dialog, click Rotate to confirm the action.

To rotate the GCP Customer Managed Encryption Key of a pluggable database (PDB), use this procedure.

  1. Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Exascale Infrastructure.
  2. Choose your Compartment.

    A list of VM Clusters is displayed for the chosen Compartment.

  3. In the list of VM clusters, click the name of the VM cluster that contains the PDB you want to start, and then click its name to display the details page.
  4. Under Container Databases, find the database containing the PDB you want to rotate encryption keys.
  5. Click the name of the database to view the Database Details page.
  6. Click Pluggable Databases in the Resources section of the page.

    A list of existing PDBs in this database is displayed.

  7. Click the name of the PDB that you want to rotate encryption keys.

    The pluggable details page is displayed.

  8. In the Encryption section displays that the Key management is set as GCP Customer Managed Encryption Key.
  9. Click the Rotate link.
  10. On the resulting Rotate Key dialog, click Rotate to confirm the action.

For information about using the API and signing requests, see REST APIs and Security Credentials. For information about SDKs, see Software Development Kits and Command Line Interface.

The following resources will be made available to customers through OCI SDK, CLI, and Terraform. These APIs will be used by customers who wish to integrate Exascale Infrastructure on Exadata with Google Cloud Services.

Table 5-10 OracleDbGcpIdentityConnectors

API Description
ListOracleDbGcpIdentityConnectors Lists all GCP Identity Connector resources based on the specified filters.
GetOracleDbGcpIdentityConnector Retrieves detailed information about a specific GCP Identity Connector resource.
CreateOracleDbGcpIdentityConnector Creates a new GCP Identity Connector resource for the specified ExaDB-D VM Cluster.
UpdateOracleDbGcpIdentityConnector Updates the configuration details of an existing GCP Identity Connector resource.
ChangeOracleDbGcpIdentityConnectorCompartment Moves the GCP Identity Connector resource to a different compartment.
DeleteOracleDbGcpIdentityConnector Deletes the specified GCP Identity Connector resource.

Table 5-11 OracleDbGcpKeyRings

API Description
ListOracleDbGcpKeyRings Lists all GCP Key Ring resources based on the specified filters.
CreateOracleDbGcpKeyRing Creates a new GCP Key Ring resource.
ChangeOracleDbGcpKeyRingCompartment Moves the GCP Key Ring resource to a different compartment.
RefreshOracleDbGcpKeyRing Refreshes the details of a GCP Key Ring resource.
GetOracleDbGcpKeyRing Retrieves detailed information about a specific GCP Key Ring resource.
UpdateOracleDbGcpKeyRing Updates the configuration details of an existing GCP Key Ring resource.
DeleteOracleDbGcpKeyRing Deletes the specified GCP Key Ring resource.

Table 5-12 OracleDbGcpKeyKeys

API Description
ListOracleDbGcpKeys Lists all GCP Key Ring resources based on the specified filters.
GetOracleDbGcpKey Retrieves detailed information about a specific GCP Key resource.

Updating the Multicloud PKCS#11 Driver

Note

The PKCS#11 driver for Google Cloud is installed automatically when Google Cloud Key Management is enabled on a VM cluster. To verify that the driver is installed and check its version, run the following command:

rpm -qa | grep pkcs

This command lists the PKCS package installed on the VM cluster. Only one PKCS#11 driver can be active at a time, corresponding to either Azure, Google Cloud, or AWS.

Example output:

pkcs-multicloud-driver-gcp-0.1-250723.0511.x86_64

This confirms that the pkcs-multicloud-driver-gcp package is installed, along with its version and architecture.

The PKCS#11 driver can be updated using either a rolling or non-rolling mechanism, depending on customer preference.

In rolling mode, the update is applied to one VM at a time, and the databases on that VM are restarted before proceeding to the next. In non-rolling mode, all databases in the cluster are shut down, the update is applied across all nodes, and the databases are then brought back online. Users must be aware of the dbaastools version in use, as subsequent steps, specifically step 3 in both scenarios, require

The version of dbaastools can be determined by running the following command:

/var/opt/oracle/dbaascli/dbaascli admin showLatestStackVersion

Rolling update

On each Guest VM, apply the PKCS#11 driver update as follows (one VM at a time):

  1. Shutdown the database instances that are using the Google Cloud KMS.

    All databases that use the Google Cloud KMS for master encryption keys (MEK) must be stopped before updating the driver. Use:

    srvctl stop instance -d <db_unique_name> -i <instance_name> [-o <stop_option>]
    • -d <db_unique_name>: The unique name of the database (same as DB_UNIQUE_NAME in the database).
    • -i <instance_name>: The name of the instance to stop, for example, orcl1.

    For details on additional options, refer to the SRVCTL command-line help or reference manual.

  2. Verify that the databases have been shut down.

    Ensure that all database instances that are using the Google Cloud KMS have been stopped before proceeding.

  3. Upgrade the RPM.

    As the root user, run the following command (for dbaastools 25.4.1 and later):

    /var/opt/oracle/dbaascli/dbaascli admin updateMCKMS --keystoreProvider GOOGLE --nodeList <node> --databasesStopped
    

    This command downloads and installs the latest RPM on the specified node.

  4. Verify driver installation.

    Run the following command as the root user:

    /bin/rpm -qa | grep -i pkcs-multicloud-driver
  5. Start the database instances.

    After the driver update, restart the database instances using:

    <oracle_home>/bin/srvctl start instance -node "<node>"

Non-Rolling update

In non-rolling mode, all databases on the cluster are stopped before applying the PKCS#11 driver update.

  1. Stop databases using the Google Cloud KMS.

    Stop all databases that use the Google Cloud KMS for master encryption keys (MEK) before updating the driver:

    dbaascli database stop [--dbname <value>]
  2. Verify that the databases have been shut down.

    Ensure that all databases using the Google Cloud KMS have been stopped before proceeding.

  3. Update the RPM.

    As the root user, run the following command (for dbaastools 25.4.1 and later):

    /var/opt/oracle/dbaascli/dbaascli admin updateMCKMS --keystoreProvider GOOGLE --databasesStopped

    This command downloads and installs the latest RPM.

  4. Verify driver installation.

    Run the following command as the root user:

    /bin/rpm -qa | grep -i pkcs-multicloud-driver
  5. Restart the databases

    Once the driver has been updated, restart the databases:

    dbaascli database start [--dbname <value>]