AWS Key Management Service Integration for Exadata Database Service on Oracle Database@AWS
Exadata Database Service on Oracle Database@AWS supports integration with AWS Key Management Service (KMS). This enhancement allows users to manage Transparent Data Encryption (TDE) master encryption keys (MEKs) using AWS customer managed keys.
For Exadata Database Service on Oracle Database@AWS TDE MEKs can be stored in a file-based Oracle Wallet, Oracle Cloud Infrastructure (OCI) Vault, Oracle Key Vault (OKV), or AWS KMS, providing options to align with organization-specific security policies. Integration with AWS KMS enables applications, AWS services, and databases on Exadata VM Clusters to leverage a single centralized key management solution.
- Prerequisites
Before using AWS KMS as the key management solution for your databases, you must complete the following steps. - Using the Console to Manage AWS KMS Integration for Exadata Database Service on Oracle Database@AWS
Learn how to manage AWS KMS integration for Exadata Database Service on Oracle Database@AWS. - Using the API to Manage AWS KMS Integration for Exadata Database Service on Oracle Database@AWS
Parent topic: How-to Guides
Prerequisites
Before using AWS KMS as the key management solution for your databases, you must complete the following steps.
Configure OCI Identity Domain
OCI Identity domain is automatically configured during the Oracle Database@AWS onboarding process, and no action is required. Complete the following steps only for accounts that were linked before the general availability of AWS KMS integration (November 18, 2025).
Configure an OCI identity domain to enable AWS integration for your Exadata VM Clusters. It allows you to associate an AWS Identity and Access Management (IAM) service role with AWS integrations.
- From the AWS console, select Oracle Database@AWS, and then select Settings.
- Select the Configure button to configure your OCI identity domain.
- Once it is complete, you can review the Status, OCI identity domain ID and OCI identity domain URL information from the Settings page.
Parent topic: Prerequisites
Create or Use an Existing ODB Network
- If you do not have an existing ODB Network, you can provision one by following the ODB Network step-by-step instructions. If you have an existing ODB Network, you can modify it by selecting the Modify button, follow Modify an ODB Network for step-by-step instructions.
- From the Configure service integrations section,
- Select the Security Token Service (STS) option to setup the networking for AWS KMS and AWS STS access from the database.
- Select the AWS KMS checkbox to enable AWS KMS to use KMS keys in your authentication polices.
Parent topic: Prerequisites
OCI IAM Policy Requirements
Allow any-user to read oracle-db-aws-keys in compartment id <your-compartment-OCID>
where all { request.principal.type = 'cloudvmcluster'}This policy allows Oracle-managed Cloud VM Clusters to read the oracle-db-aws-keys resource in your compartment. It grants the necessary permissions for the VM cluster (the principal of type cloudvmcluster) to access the AWS key metadata required for integrating with external key management or performing cross-cloud operations. Without this policy, the VM cluster would not be able to retrieve the keys needed to complete the configuration.
Parent topic: Prerequisites
Create an Exadata VM Cluster
Exadata VM Cluster creation is only available through the AWS Console and AWS CLI. For more information, see Exadata VM Cluster.
Parent topic: Prerequisites
Configure Identity Provider
Create a stack for each cluster. Use the following steps to create a CloudFormation stack. This needs to be performed for each Exadata VM cluster.
When your CloudFormation stack creates an OIDC (OpenID Connect) Provider, it establishes a trust relationship so that an external identity source (like OCI) can authenticate to AWS. The associated IAM Role defines what that trusted identity is allowed to do.
- Select your existing Exadata VM Cluster from the list to open its details page in the AWS Management Console.
Note
If you do not have an existing Exadata VM Cluster, you can provision one by following the Exadata VM Cluster step-by-step instructions.
- Select the IAM service roles tab and then click the CloudFormation link.
- From the Quick create stack page, review the pre-filled information.
- Under the Parameters section, parameters are defined in your template and allow you to enter custom values when you create or update a stack.
- Review your pre-filled OCIIdentityDomainUrl information.
- The OIDCProviderArn field is optional. When you create the CloudFormation stack for the first time, it creates an OIDC Provider and an associated IAM Role. If you are executing the stack for the first time, you do not need to provide a value for the OIDCProviderArn field.
- For any additional execution time, you must provide the ARN of the existing OIDC Provider and specify it in the OIDCProviderArn field. To obtain your OIDCProviderArn information, complete the following steps:
- From the AWS console, navigate to IAM, and then select Identity providers.
- From the Identity providers list, you can filter your provider selecting Type as OpenID Connect.
- Select the Provider link that was created when the CloudFormation stack was initially created.
- From the Summary page, copy the ARN information.
- Paste the ARN information into the OIDCProviderArn field.
- From the Permissions section, select IAM role name from the drop-down list, and then select the IAM role for CloudFormation to use for all operations performed on the stack.
- Select the Create stack button to apply the changes.
- Under the Parameters section, parameters are defined in your template and allow you to enter custom values when you create or update a stack.
- After the CloudFormation stack deployment is complete, navigate to the Resources section of the stack and verify the created IdP and IAM Role resources. Copy the IAM Role ARN for future use.
Parent topic: Prerequisites
Associate an IAM Role to an Exadata VM Cluster
You must attach an IAM role that you created previously to the Exadata VM Cluster to assign an identity connector that enables access to AWS resources.
- From the AWS console, select Oracle Database@AWS.
- From the left menu, select Exadata VM clusters, and then select your Exadata VM Cluster from the list.
- Select the IAM roles tab, and then select the Associate button.
- The AWS integration field is read-only.
- Enter the Amazon Resource Name (ARN) of the IAM role you want to associate with the VM cluster in the Role ARN field. You can obtain the ARN information from the Summary section of the role that you previously created.
- Select the Associate button to attach the role.
Note
Once you associate an IAM role to your VM cluster, an identity connector gets attached to your Exadata VM Cluster.
Once you complete the prerequisites section, continue with the following actions:
- From the AWS Console, create a customer-managed key in AWS KMS.
- From the OCI Console, enable Exadata VM Cluster(s) and databases to utilize the AWS KMS key created in the step 1.
Parent topic: Prerequisites
Create a Key
- From the AWS console, select Key Management Service (KMS).
- From the left menu, select Customer managed keys, and then select the Create key button.
- In the Configure key section, enter the following information.
- Choose the Symmetric option as the Key type.
- Choose the Encrypt and decrypt option as the Key usage.
- Expand the Advanced options section. Both AWS KMS and AWS CloudHSM are supported.
- If you want to use KMS standard key store, choose the KMS - recommended option as Key material origin, and then choose either the Single-Region key option or the Multi-Region key option from the Regionality section.
Note
Cross-region Data Guard and restoring databases to a different region are currently not supported for databases that use AWS customer-managed keys for key management.
- If you want to use AWS CloudHSM , choose the AWS CloudHSM key store option as Key material origin.
- If you want to use KMS standard key store, choose the KMS - recommended option as Key material origin, and then choose either the Single-Region key option or the Multi-Region key option from the Regionality section.
- Select the Next button to continue the creation process.
- In the Add labels section, enter the following information.
- Enter a descriptive display name in the Alias field. Maximum 256 characters. Use alphanumeric and '_-/' characters.
Note
- The alias name cannot begin with
aws/. Theaws/prefix is reserved by AWS to represent AWS managed keys in your account. - An alias is a display name that you can use to identify the KMS key. We recommend that you choose an alias that indicates the type of data you plan to protect or the application you plan to use with the KMS key
- Aliases are required when you create a KMS key in the AWS console.
- The alias name cannot begin with
- The Description field is optional.
- The Tags section is optional. You can use tags to categorize and identify your KMS keys and help you track your AWS costs.
- Select the Next button to continue the creation process or the Previous button to return the previous page.
- Enter a descriptive display name in the Alias field. Maximum 256 characters. Use alphanumeric and '_-/' characters.
- In the Define key administrative permissions section, complete the following substeps.
- Search the role that you previously created, and then select the checkbox. Select the IAM users and roles that can administer the KMS key.
Note
This key policy gives the AWS account full control of this KMS key. It allows account administrators to use IAM policies to give other principals permission to manage the KMS key.
- From the Key deletion section, the Allow key administrators to delete this key checkbox is selected by default. To prevent the selected IAM users and roles from deleting the KMS key, you can deselect the checkbox.
- Select the Next button to continue the creation process or the Previous button to return the previous page.
- Search the role that you previously created, and then select the checkbox. Select the IAM users and roles that can administer the KMS key.
- In the Define key usage permissions section, complete the following substeps.
- Search the role that you previously created, and then select the check box.
- Select the Next button to continue the creation process or the Previous button to return the previous page.
- In the Edit key policy section, complete the following substeps.
- From the Preview section, you can review the key policy. If you want to make a change, select the Edit tab.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSKeyMetadata", "Effect": "Allow", "Principal": { "AWS": "<arn>" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "KeyUsage", "Effect": "Allow", "Principal": { "AWS": "<arn>" }, "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "*" } ] } - Select the Next button to continue the creation process or the Previous button to return the previous page.
- From the Preview section, you can review the key policy. If you want to make a change, select the Edit tab.
- In the Review section, review your information and then select the Finish button.
For more information, see Create a symmetric encryption KMS key.
Parent topic: Prerequisites
Register AWS KMS Key
To enable AWS KMS for your Exadata VM Cluster(s), you must first register the AWS KMS key in OCI.
- From the OCI console, select Oracle AI Database, and then select Database Multicloud Integrations.
- From the left menu, select AWS Integration, and then select AWS Keys.
- Select the Register AWS keys button, and then complete the following substeps.
- From the dropdown list, select the Compartment where your Exadata VM Cluster resides.
- Under the AWS keys section, select your identity connector from the dropdown list.
Note
Ensure that the role associated with the connector has the DescribeKey permission on the key. This permission is required to successfully perform discovery.
- The Key ARN field is optional.
- Click the Discover button.
- Once the key is discovered, select the Register button to register the key in OCI.
Parent topic: Prerequisites
Using the Console to Manage AWS KMS Integration for Exadata Database Service on Oracle Database@AWS
Learn how to manage AWS KMS integration for Exadata Database Service on Oracle Database@AWS.
- Enable or Disable AWS Key Management
- Create a Database and Use AWS KMS as the Key Management Solution
- Steps to Change the Key Management of Existing Databases from Oracle Wallet to AWS KMS
- Rotate the AWS KMS Key of a Container Database (CDB)
- Rotate the AWS KMS Key of a Pluggable Database (PDB)
- (Optional) Disable a CDB or PDB Key
Enable or Disable AWS Key Management
When you enable AWS key management for your database, only AWS keys that are authorized for use with Exadata VM Cluster and registered with OCI can be used.
- From the OCI console, select Oracle AI Database and then select Oracle Exadata Database Service on Dedicated Infrastructure.
- From the left menu, select Exadata VM Clusters, and then select your Exadata VM Cluster.
- Select the VM Cluster information tab, and select the Enable button next to AWS Customer Managed Encryption Key.
Once you enable AWS Key Management for your Exadata VM Cluster, you can disable it using the Disable button. Disabling this feature will affect the availability of databases that use AWS Key Management Service for encryption and decryption operations. Ensure that no database is currently using AWS key management before disabling it at Exadata VM Cluster level.
Create a Database and Use AWS KMS as the Key Management Solution
This topic describes only the steps for creating a database and using AWS KMS as the key management solution.
For the generic database creation procedure, see To create a database in an existing VM Cluster.
Prerequisites
Refer to Prerequisites.
Steps
If AWS KMS key management is enabled at the VM cluster level, you will have two key management options: Oracle Wallet and AWS key management.
- In the Encryption section, choose AWS key management.
- Select the encryption Key available in your compartment.
Note
- Only registered keys are listed.
- If your desired key is not visible, it may not have been registered yet. Click Register AWS Keys to discover and register it.
For detailed instructions, refer to Register AWS KMS Key.
- You can select a key alias from the drop-down list. If no key alias is available, the drop-down list will display the key ID.
Steps to Change the Key Management of Existing Databases from Oracle Wallet to AWS KMS
If you want to change the key management of your existing databases in the Exadata VM Cluster from Oracle Wallet to AWS KMS, complete the following steps.
- From your Exadata VM Clusters, navigate to Databases tab, and then select the database that you are using.
- From the Encryption section, confirm that Key management is set to Oracle Wallet, and then select the Change link.
- From the Change key management page, enter the following information.
- Select your Key management as AWS key management from the dropdown list.
- Select the key compartment you are using, and then select the desired key from the dropdown list.
- Select the Save changes button.
Rotate the AWS KMS Key of a Container Database (CDB)
To rotate the AWS KMS Key of a container database (CDB), use this procedure.
- Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Dedicated Infrastructure.
- Choose your Compartment.
A list of VM Clusters is displayed for the chosen Compartment.
- In the list of VM Clusters, click the name of the VM cluster that contains the database that you want to rotate encryption keys.
- Click Databases.
- Click the name of the database that you want to rotate encryption keys.
The Database Details page displays information about the selected database.
- In the Encryption section, verify that the Key Management is set to AWS key management, and then click the Rotate link.
- On the resulting Rotate Key dialog, click Rotate to confirm the action.
Note
Rotating the AWS KMS key generates a new encryption context for the same key.
Rotate the AWS KMS Key of a Pluggable Database (PDB)
To rotate the AWS KMS Key of a pluggable database (PDB), use this procedure.
- Open the navigation menu. Click Oracle AI Database, then click Oracle Exadata Database Service on Dedicated Infrastructure.
- Choose your Compartment.
A list of VM Clusters is displayed for the chosen Compartment.
- 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.
- Under Databases, find the database containing the PDB you want to rotate encryption keys.
- Click the name of the database to view the Database Details page.
- Click Pluggable Databases in the Resources section of the page.
A list of existing PDBs in this database is displayed.
- Click the name of the PDB that you want to rotate encryption keys.
The pluggable details page is displayed.
- In the Encryption section displays that the Key management is set as AWS key management.
- Click the Rotate link.
- On the resulting Rotate Key dialog, click Rotate to confirm the action.
Note
Rotating the AWS KMS key generates a new encryption context for the same key.
(Optional) Disable a CDB or PDB Key
Optionally, complete the following steps to disable a specific CDB or PDB key.
- Navigate to the AWS console, select Key Management Service (KMS).
- From the left menu, select Customer managed keys, and then select the Key ID of the key that you want to edit.
- Select the Edit policy button.
- Run the following query to obtain the EncryptionContext MKID of the key.
Use the following command to view the current master key IDs (MKIDs) for enabling or disabling operations:
dbaascli tde getHSMKeys --dbname <DB-Name>You can also run the following SQL query to list all key versions:
SELECT key_id, con_id, creation_time, key_use FROM v$encryption_keys; - Add a deny policy using the retrieved EncryptionContext MKID as shown below:
{ "Effect": "Deny", "Principal": "*", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:867344470629:key/7139075d-a006-4302-92d5-48ecca31d48e", "Condition": { "StringEquals": { "kms:EncryptionContext:MKID": "ORACLE.TDE.HSM.MK.06AE5EFB528D9D4F21BFEDA63C6C8738D9" } } } - Choose Save changes to apply the policy update.
Using the API to Manage AWS KMS Integration for Exadata Database Service on Oracle Database@AWS
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 Oracle Database on Exadata with AWS KMS.
OracleDbAwsIdentityConnector
Table 5-14 OracleDbAwsIdentityConnector
| API | Description |
|---|---|
ListOracleDbAwsIdentityConnectors |
Lists all AWS Identity Connector resources based on the specified filters. |
GetOracleDbAwsIdentityConnector |
Retrieves detailed information about a specific AWS Identity Connector resource. |
CreateOracleDbAwsIdentityConnector |
Creates a new AWS Identity Connector resource for the specified ExaDB-D VM Cluster. |
UpdateOracleDbAwsIdentityConnector |
Updates the configuration details of an existing AWS Identity Connector resource. |
ChangeOracleDbAwsIdentityConnectorCompartment |
Moves the AWS Identity Connector resource to a different compartment. |
DeleteOracleDbAwsIdentityConnector |
Deletes the specified AWS Identity Connector resource. |
RefreshOracleDbAwsIdentityConnector |
Refreshed the configuration details of the specified AWS Identity Connector resource. |
OracleDbAwsKey
Table 5-15 OracleDbAwsKey
| API | Description |
|---|---|
ListOracleDbAwsKeys |
Lists all AWS Key resources based on the specified filters. |
CreateOracleDbAwsKey |
Creates a new AWS Key resource. |
ChangeOracleDbAwsKeyCompartment |
Moves the AWS Key resource to a different compartment. |
GetOracleDbAwsKey |
Retrieves detailed information about a specific AWS Key resource. |
UpdateOracleDbAwsKey |
Updates the configuration details of an existing AWS Key resource. |
DeleteOracleDbAwsKey |
Deletes the specified AWS Key resource. |
RefreshOracleDbAwsKey |
Refreshes the configuration details of a AWS Key resource. |