Skip to content

Add Azure CMEK support and improve documentation structure #20022

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

mikeCRL
Copy link
Contributor

@mikeCRL mikeCRL commented Jul 30, 2025

DOC-9889

Summary:

This PR documents the new Customer-Managed Encryption Keys (CMEK) support for CockroachDB Cloud Advanced clusters on Microsoft Azure, enabling customers to use their own encryption keys stored in Azure Key Vault.

To preview the updated pages:

Changes:

  • managing-cmek.md
    • Added Azure filter tab to existing AWS/GCP cloud provider options
    • Added full Azure workflow documentation with OAuth consent flow, cluster identity retrieval, and Key Vault setup
    • Added Azure configuration manifest with AZURE_KEY_VAULT type and tenant ID authentication
    • Renamed "Before you begin" to "Prerequisites" for better clarity
    • Restructured prerequisites section to separate actual requirements from items created during setup
    • Removed "CMEK not available on Azure" restriction from prerequisites
  • cmek.md
    • Added Azure Key Vault to supported services list alongside AWS KMS and GCP KMS
    • Updated HashiCorp Vault compatibility statement to include Azure Key Vault support
    • Updated infrastructure flexibility section to include Azure alongside AWS and GCP
    • Removed "CMEK not available on Azure" limitation from limitations section
  • cockroachdb-advanced-on-azure.md - Removed CMEK from list of features "not yet available on Azure"
  • releases/cloud.md - Added release note announcing Azure CMEK availability

Copy link

netlify bot commented Jul 30, 2025

Deploy Preview for cockroachdb-interactivetutorials-docs canceled.

Name Link
🔨 Latest commit 7494629
🔍 Latest deploy log https://app.netlify.com/projects/cockroachdb-interactivetutorials-docs/deploys/6889990865f7270008b73907

Copy link

netlify bot commented Jul 30, 2025

Deploy Preview for cockroachdb-api-docs canceled.

Name Link
🔨 Latest commit 7494629
🔍 Latest deploy log https://app.netlify.com/projects/cockroachdb-api-docs/deploys/688999089c09ac0008f92379

Copy link

github-actions bot commented Jul 30, 2025

Copy link

netlify bot commented Jul 30, 2025

Netlify Preview

Name Link
🔨 Latest commit 7494629
🔍 Latest deploy log https://app.netlify.com/projects/cockroachdb-docs/deploys/688999085f32710008601c1f
😎 Deploy Preview https://deploy-preview-20022--cockroachdb-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mikeCRL mikeCRL requested a review from sanchit-CRL July 30, 2025 04:11
@@ -14,7 +14,6 @@ CockroachDB {{ site.data.products.advanced }} clusters on Azure have the followi

- A cluster must have at minimum three nodes. A multi-region cluster must have at minimum three nodes per region. Single-node clusters are not supported on Azure.
- The following [PCI-Ready]({% link cockroachcloud/pci-dss.md %}) and HIPAA features are not yet available on Azure. However, CockroachDB {{ site.data.products.advanced }} on Azure meets or exceeds the requirements of SOC 2 Type 2. Refer to [Regulatory Compliance in CockroachDB {{ site.data.products.advanced }}]({% link cockroachcloud/compliance.md %}).
- [Customer Managed Encryption Keys (CMEK)]({% link cockroachcloud/cmek.md %})
- [Egress Perimeter Controls]({% link cockroachcloud/egress-perimeter-controls.md %})

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Egress Perimeter control and CMEK both will be supported for Azure post the release to make Azure PCI compliant.

@@ -106,6 +110,14 @@ This section shows how to enable CMEK on a CockroachDB {{ site.data.products.adv
~~~
</section>

<section class="filter-content" markdown="1" data-scope="azure">

1. Make a note of your {{ site.data.products.cloud }} organization ID in the [Organization settings page](https://cockroachlabs.cloud/settings).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no need of the org ID in case of enabling CMEK on Azure, so we may remove this

<section class="filter-content" markdown="1" data-scope="azure">

1. Make a note of your {{ site.data.products.cloud }} organization ID in the [Organization settings page](https://cockroachlabs.cloud/settings).
1. Find your {{ site.data.products.advanced }} cluster's ID. From the CockroachDB {{ site.data.products.cloud }} console [Clusters list](https://cockroachlabs.cloud/clusters), click the name of a cluster to open its **Cluster Overview** page. From the page's URL make a note of the **last 12 digits** of the portion of the URL before `/overview/`. This is the cluster ID.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case of Azure the cluster id is the entire uuid and not just the last 12 digits.

This creates an enterprise application in your Azure tenant that CockroachDB Cloud can use to access your Key Vault. It is named using the following format:

~~~
ClusterIdentity-<azure_cluster_identity_client_id>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been renamed to CockroachDB Cloud - <CLUSTER_ID> also azure_cluster_identity_client_id is not the place holder here, rather the cluster id is the place holder


1. In the Azure portal, navigate to your Key Vault > **Access control (IAM)** > **Add role assignment**.
1. Select the **Key Vault Crypto Officer** role, and select the option to assign access to **User, group, or service principal**.
1. Click **Select members**, then search for the enterprise application created above: `ClusterIdentity-<azure_cluster_identity_client_id>`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Click **Select members**, then search for the enterprise application created above: `ClusterIdentity-<azure_cluster_identity_client_id>`
1. Click **Select members**, then search for the enterprise application created above: `CockroachDB Cloud - <CLUSTER_ID>`

@@ -332,6 +382,23 @@ Make a note of the key ring name.

Click **SAVE**. Make a note of the key ring name.

</section>

<section class="filter-content" markdown="1" data-scope="azure">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section doesn't appear in the Step 2. Create the CMEK key in the Azure tab, in the documentation link specified in the PR

Also I feel the IAM permission In the Azure portal, navigate to your Key Vault > **Access control (IAM)** > **Add role assignment**. must be given post the key creation step.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants