From a76709955a6b440c496df58aa3ae1b0a236fe02c Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 25 Sep 2026 16:22:20 +0000
Subject: [PATCH 01/22] docs: add Dedicated instance KMS keys page under
Authentication & access
---
.../dedicated_instance_kms_keys.md | 215 ++++++++++++++++++
config/navigation.json | 3 +-
2 files changed, 217 insertions(+), 1 deletion(-)
create mode 100644 administration/authentication/dedicated_instance_kms_keys.md
diff --git a/administration/authentication/dedicated_instance_kms_keys.md b/administration/authentication/dedicated_instance_kms_keys.md
new file mode 100644
index 0000000..d4a0594
--- /dev/null
+++ b/administration/authentication/dedicated_instance_kms_keys.md
@@ -0,0 +1,215 @@
+---
+title: Dedicated instance KMS keys
+description: "Create cross-account AWS KMS keys for Kosli Dedicated and share them with Kosli for data-at-rest encryption."
+icon: "key"
+---
+
+Kosli Dedicated is a single-tenant governance platform for software delivery. On the single-tenant offering, you provide Kosli with the AWS KMS keys that encrypt all data at rest.
+
+Kosli hosts your data across two AWS regions — a **primary** and a **secondary** — so you provide a key in each region. This page walks through creating those keys in the AWS Console (with an equivalent Terraform example in the appendix) and sharing their ARNs with Kosli.
+
+
+Your Kosli Customer Success representative will give you:
+
+- The **primary** and **secondary** AWS regions your instance uses.
+- The **Kosli AWS account ID** (``) to grant access to in the key policy.
+
+
+## Prerequisites
+
+- An AWS account you will use to own the KMS keys.
+- Permissions in that account to create and manage KMS keys.
+- The primary/secondary regions and the Kosli account ID from your Customer Success representative.
+
+## Choose the key shape
+
+AWS only permits **multi-region KMS keys** where the key material originates in KMS itself.
+
+- If your cryptographic policy allows KMS-generated key material, create **one multi-region key** in the primary region and replicate it into the secondary region. This is the path described below.
+- If your policy requires an [AWS CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html) or an external key store for key material, create **two single-region keys** — one in each region. See [Single-region keys](#single-region-keys) for the differences.
+
+Most of the steps are identical for both shapes.
+
+The instructions use the AWS Console. If your organization uses AWS CDK or another IaC tool, [Appendix A - Terraform](#appendix-a-terraform) gives enough detail to translate.
+
+## Create the primary key
+
+1. Sign in to the AWS account that will own the keys and open the **AWS KMS** service.
+2. KMS is a regional service. Switch the console to the **primary Kosli region**.
+3. In the left-hand menu, select **Customer-managed keys**.
+4. Click **Create key** in the top right to start the wizard.
+
+### Step 1 — Configure the key
+
+- **Key type:** Symmetric
+- **Key usage:** Encrypt and decrypt
+- Expand **Advanced options** and select **Multi-Region key**.
+
+
+Selecting **Multi-Region key** limits the Key material origin to KMS. If you need CloudHSM or an external key store, see [Single-region keys](#single-region-keys).
+
+
+Click **Next**.
+
+### Step 2 — Add labels
+
+- **Alias:** use whatever labelling strategy your organization prefers, for example `alias/kosli-dedicated-cross-account-key`.
+- Optionally add a description and tags to help your team.
+
+Click **Next**.
+
+### Step 3 — Define key administrators
+
+The key is not used from inside your AWS account, so there is usually no reason to add key administrators.
+
+To protect against accidental deletion, **untick** the option that lets key administrators delete the key.
+
+Click **Next**.
+
+### Step 4 — Define key usage permissions
+
+The key policy is managed as JSON on the next screen, so leave the usage permissions on this page unselected. Do **not** add an "Other AWS account" here either — cross-account access is granted via the JSON policy.
+
+Click **Next**.
+
+### Step 5 — Edit the key policy
+
+The console loads a default policy that grants access to your account root. Click **Edit** and add a **second statement** to the `Statement` array with the following content. Your Customer Success representative will give you the value for `<>`.
+
+```json
+{
+ "Sid": "Allow Kosli-Dedicated to use this KMS key",
+ "Effect": "Allow",
+ "Principal": {
+ "AWS": [
+ "arn:aws:iam::<>:root"
+ ]
+ },
+ "Action": [
+ "kms:CreateGrant",
+ "kms:Encrypt",
+ "kms:Decrypt",
+ "kms:ReEncrypt*",
+ "kms:GenerateDataKey*",
+ "kms:DescribeKey"
+ ],
+ "Resource": "*"
+}
+```
+
+Make sure you add a comma between the existing statement object and this new one. Click **Preview** to format and validate the JSON, then click **Next**.
+
+For background on key policy syntax, see the [AWS key policies documentation](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html).
+
+### Step 6 — Review and finish
+
+Confirm the settings match:
+
+| Field | Value |
+|-----------|---------------------|
+| Key type | Symmetric |
+| Key spec | `SYMMETRIC_DEFAULT` |
+| Key usage | Encrypt and decrypt |
+
+If anything needs changing, click **Edit** for that section. Otherwise click **Finish** to create the key. You are returned to the customer-managed keys list with the new key at the top.
+
+## Replicate the key to the secondary region
+
+1. Click the new key's alias to open its details.
+2. Select the **Regionality** tab. The **Primary key** panel shows that the key has no replicas yet.
+3. Click **Create new replica keys**.
+4. In the region dropdown (which excludes the primary region), tick the **Kosli secondary region** and click **Next**.
+5. The **Add labels** screen is pre-populated from the primary key. Change if your organization requires it, otherwise click **Next**.
+6. The replica inherits the primary key's policy — no changes needed. Click **Next**.
+7. Review the **Confirmation** message, tick the acknowledgement box, and click **Create new replica keys**.
+
+The primary key's details page reloads with the replica listed under **Related multi-region keys**.
+
+## Share the key ARNs with Kosli
+
+Kosli uses the primary and replica keys to encrypt data. Send both ARNs to your Customer Success representative:
+
+- The **primary key ARN** — from the primary key's details page in the primary region.
+- The **replica key ARN** — from the replica key's details page in the secondary region.
+
+For a multi-region key the two ARNs are identical except for the region segment.
+
+The key policy limits the use of these keys to your Kosli Dedicated instance, so the ARNs can be shared over email.
+
+## Single-region keys
+
+If your organization requires a CloudHSM key store (or an external key store) for the key material, create **two single-region keys** instead of one replicated multi-region key.
+
+The steps to create the primary key are the same as above, with two differences:
+
+- **Do not** tick **Multi-Region key** under Advanced options.
+- Under **Key material origin**, select your CloudHSM key store (or external key store) rather than KMS.
+
+Once the primary key exists, switch the console to the **secondary Kosli region** and repeat the process. Include a reference to the primary key's ARN or alias in the secondary key's **Description** so the pairing is obvious later.
+
+Share both ARNs with your Customer Success representative. Unlike a multi-region key, the two single-region ARNs differ beyond just the region segment.
+
+## Appendix A - Terraform
+
+The following is the minimum Terraform needed to create the multi-region key and its replica for Kosli Dedicated. Set `primary_aws_region`, `secondary_aws_region`, and `kosli_dedicated_account_id` for your instance.
+
+```terraform
+data "aws_caller_identity" "current" {}
+
+resource "aws_kms_key" "primary" {
+ description = "Multi-region key for Kosli-Dedicated"
+
+ deletion_window_in_days = 30
+
+ multi_region = true
+ region = var.primary_aws_region
+
+ key_usage = "ENCRYPT_DECRYPT"
+ customer_master_key_spec = "SYMMETRIC_DEFAULT"
+
+ policy = jsonencode({
+ Version = "2012-10-17"
+ Id = "kosli-dedicated-kms"
+ Statement = [
+ {
+ Sid = "Enable IAM User Permissions"
+ Effect = "Allow"
+ Principal = {
+ AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"
+ }
+ Action = "kms:*"
+ Resource = "*"
+ },
+ {
+ Sid = "Allow Kosli-Dedicated to use this KMS key"
+ Effect = "Allow"
+ Principal = {
+ AWS = "arn:aws:iam::${var.kosli_dedicated_account_id}:root"
+ }
+ Action = [
+ "kms:CreateGrant",
+ "kms:Encrypt",
+ "kms:Decrypt",
+ "kms:ReEncrypt*",
+ "kms:GenerateDataKey*",
+ "kms:DescribeKey"
+ ]
+ Resource = "*"
+ }
+ ]
+ })
+}
+
+resource "aws_kms_alias" "primary_alias" {
+ name = "alias/kosli-dedicated-cross-account-key"
+ target_key_id = aws_kms_key.primary.key_id
+}
+
+resource "aws_kms_replica_key" "replica" {
+ region = var.secondary_aws_region
+
+ description = "Multi-Region replica key"
+ deletion_window_in_days = 7
+ primary_key_arn = aws_kms_key.primary.arn
+}
+```
diff --git a/config/navigation.json b/config/navigation.json
index a90b25f..ee5ba76 100644
--- a/config/navigation.json
+++ b/config/navigation.json
@@ -50,7 +50,8 @@
"administration/authentication/github_login",
"administration/authentication/api_authentication_methods",
"administration/authentication/service_accounts",
- "administration/authentication/api_key_rotation"
+ "administration/authentication/api_key_rotation",
+ "administration/authentication/dedicated_instance_kms_keys"
]
},
{
From b0f5eac2a114aed1d0191c7306449546b2c02047 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 25 Sep 2026 16:31:28 +0000
Subject: [PATCH 02/22] docs: add KMS console screenshots to dedicated instance
KMS keys page
---
.../dedicated_instance_kms_keys.md | 40 ++++++++++++++++--
images/administration/kms/kms-add-labels.png | Bin 0 -> 110018 bytes
.../kms/kms-breadcrumb-region.png | Bin 0 -> 20294 bytes
.../administration/kms/kms-configure-key.png | Bin 0 -> 221913 bytes
.../kms/kms-create-replica-region.png | Bin 0 -> 83788 bytes
.../kms/kms-customer-managed-keys-list.png | Bin 0 -> 65799 bytes
.../kms/kms-edit-key-policy-add-statement.png | Bin 0 -> 317513 bytes
.../kms-edit-key-policy-second-statement.png | Bin 0 -> 219243 bytes
.../kms/kms-key-administrators.png | Bin 0 -> 233396 bytes
.../kms/kms-key-policy-preview.png | Bin 0 -> 222669 bytes
.../kms/kms-key-usage-permissions.png | Bin 0 -> 257338 bytes
.../kms/kms-regionality-tab.png | Bin 0 -> 220353 bytes
images/administration/kms/kms-share-arns.png | Bin 0 -> 275789 bytes
13 files changed, 36 insertions(+), 4 deletions(-)
create mode 100644 images/administration/kms/kms-add-labels.png
create mode 100644 images/administration/kms/kms-breadcrumb-region.png
create mode 100644 images/administration/kms/kms-configure-key.png
create mode 100644 images/administration/kms/kms-create-replica-region.png
create mode 100644 images/administration/kms/kms-customer-managed-keys-list.png
create mode 100644 images/administration/kms/kms-edit-key-policy-add-statement.png
create mode 100644 images/administration/kms/kms-edit-key-policy-second-statement.png
create mode 100644 images/administration/kms/kms-key-administrators.png
create mode 100644 images/administration/kms/kms-key-policy-preview.png
create mode 100644 images/administration/kms/kms-key-usage-permissions.png
create mode 100644 images/administration/kms/kms-regionality-tab.png
create mode 100644 images/administration/kms/kms-share-arns.png
diff --git a/administration/authentication/dedicated_instance_kms_keys.md b/administration/authentication/dedicated_instance_kms_keys.md
index d4a0594..f9c40a4 100644
--- a/administration/authentication/dedicated_instance_kms_keys.md
+++ b/administration/authentication/dedicated_instance_kms_keys.md
@@ -36,7 +36,13 @@ The instructions use the AWS Console. If your organization uses AWS CDK or anoth
1. Sign in to the AWS account that will own the keys and open the **AWS KMS** service.
2. KMS is a regional service. Switch the console to the **primary Kosli region**.
+
+ 
+
3. In the left-hand menu, select **Customer-managed keys**.
+
+ 
+
4. Click **Create key** in the top right to start the wizard.
### Step 1 — Configure the key
@@ -45,6 +51,8 @@ The instructions use the AWS Console. If your organization uses AWS CDK or anoth
- **Key usage:** Encrypt and decrypt
- Expand **Advanced options** and select **Multi-Region key**.
+
+
Selecting **Multi-Region key** limits the Key material origin to KMS. If you need CloudHSM or an external key store, see [Single-region keys](#single-region-keys).
@@ -56,6 +64,8 @@ Click **Next**.
- **Alias:** use whatever labelling strategy your organization prefers, for example `alias/kosli-dedicated-cross-account-key`.
- Optionally add a description and tags to help your team.
+
+
Click **Next**.
### Step 3 — Define key administrators
@@ -64,17 +74,23 @@ The key is not used from inside your AWS account, so there is usually no reason
To protect against accidental deletion, **untick** the option that lets key administrators delete the key.
+
+
Click **Next**.
### Step 4 — Define key usage permissions
The key policy is managed as JSON on the next screen, so leave the usage permissions on this page unselected. Do **not** add an "Other AWS account" here either — cross-account access is granted via the JSON policy.
+
+
Click **Next**.
### Step 5 — Edit the key policy
-The console loads a default policy that grants access to your account root. Click **Edit** and add a **second statement** to the `Statement` array with the following content. Your Customer Success representative will give you the value for `<>`.
+The console loads a default policy that grants access to your account root. Click **Edit**, then click **Add new statement** and add a **second statement** to the `Statement` array with the following content. Your Customer Success representative will give you the value for `<>`.
+
+
```json
{
@@ -97,7 +113,15 @@ The console loads a default policy that grants access to your account root. Clic
}
```
-Make sure you add a comma between the existing statement object and this new one. Click **Preview** to format and validate the JSON, then click **Next**.
+Make sure you add a comma between the existing statement object and this new one.
+
+
+
+Click **Preview** to format and validate the JSON. The preview shows both statements — one for your AWS account root, one for the Kosli-Dedicated account.
+
+
+
+Click **Next**.
For background on key policy syntax, see the [AWS key policies documentation](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html).
@@ -117,8 +141,14 @@ If anything needs changing, click **Edit** for that section. Otherwise click **F
1. Click the new key's alias to open its details.
2. Select the **Regionality** tab. The **Primary key** panel shows that the key has no replicas yet.
+
+ 
+
3. Click **Create new replica keys**.
4. In the region dropdown (which excludes the primary region), tick the **Kosli secondary region** and click **Next**.
+
+ 
+
5. The **Add labels** screen is pre-populated from the primary key. Change if your organization requires it, otherwise click **Next**.
6. The replica inherits the primary key's policy — no changes needed. Click **Next**.
7. Review the **Confirmation** message, tick the acknowledgement box, and click **Create new replica keys**.
@@ -129,8 +159,10 @@ The primary key's details page reloads with the replica listed under **Related m
Kosli uses the primary and replica keys to encrypt data. Send both ARNs to your Customer Success representative:
-- The **primary key ARN** — from the primary key's details page in the primary region.
-- The **replica key ARN** — from the replica key's details page in the secondary region.
+- The **primary key ARN** — from the **General configuration** panel of the primary key's details page.
+- The **replica key ARN** — from the **Related multi-region keys** panel on the same page, or from the replica key's own details page in the secondary region.
+
+
For a multi-region key the two ARNs are identical except for the region segment.
diff --git a/images/administration/kms/kms-add-labels.png b/images/administration/kms/kms-add-labels.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cae24f2ba4444795095066a819b8b78f35ae86e
GIT binary patch
literal 110018
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
z
^zR|;0W+~!Cyesd-h4u?{ZR*oy0w47s%m
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