Skip to content

Commit 6ea3edf

Browse files
Merge pull request #264376 from ghugo/gagehugo/keyvault
Create & Update docs for Credential Manager Key Vault Integration
2 parents 72240e3 + 79a6a5b commit 6ea3edf

File tree

4 files changed

+73
-1
lines changed

4 files changed

+73
-1
lines changed

articles/operator-nexus/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@
105105
href: howto-cluster-runtime-upgrade.md
106106
- name: Credential Rotation
107107
href: howto-credential-rotation.md
108+
- name: Credential Manager Key Vault
109+
href: how-to-credential-manager-key-vault.md
108110
- name: Service Principal Rotation
109111
href: howto-service-principal-rotation.md
110112
- name: Network Fabric
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: Set up customer provided Key Vault for Managed Credential rotation
3+
description: Step by step guide on setting up a key vault for managing and rotating credentials used within Azure Operator Nexus Cluster resource.
4+
author: ghugo
5+
ms.author: gagehugo
6+
ms.service: azure-operator-nexus
7+
ms.topic: how-to
8+
ms.date: 01/24/2024
9+
ms.custom: template-how-to
10+
---
11+
12+
# Set up Key Vault for Managed Credential Rotation in Operator Nexus
13+
14+
Azure Operator Nexus utilizes secrets and certificates to manage component security across the platform. The Operator Nexus platform handles the rotation of these secrets and certificates. By default, Operator Nexus stores the credentials in a managed Key Vault. To keep the rotated credentials in their own Key Vault, the user has to set up the Key Vault for the Azure Operator Nexus instance. Once created, the user needs to add a role assignment on the Customer Key Vault to allow the Operator Nexus Platform to write updated credentials, and additionally link the Customer Key Vault to the Nexus Cluster Resource.
15+
16+
## Prerequisites
17+
18+
- Install the latest version of the
19+
[appropriate CLI extensions](./howto-install-cli-extensions.md)
20+
- Get the *Subscription ID* for the customer's subscription
21+
22+
> [!NOTE]
23+
> A single Key Vault can be used for any number of clusters.
24+
25+
## Writing Credential Updates to a Customer Key Vault on Nexus Cluster
26+
27+
- Ensure that the *Microsoft.NetworkCloud* resource provider is registered with the customer subscription.
28+
29+
```console
30+
az provider register --namespace 'Microsoft.NetworkCloud' --subscription <Subscription ID>
31+
```
32+
33+
- Assign the *Operator Nexus Key Vault Writer Service Role*. Ensure that *Azure role-based access control* is selected as the permission model for the key vault on the *Access configuration* view. Then from the *Access control (IAM)* view, select to add a role assignment.
34+
35+
| Role Name | Role Definition ID |
36+
|:-------------------------------------------------------|:-------------------------------------|
37+
| Operator Nexus Key Vault Writer Service Role (Preview) | 44f0a1a8-6fea-4b35-980a-8ff50c487c97 |
38+
39+
| Environment | App Name | App ID |
40+
|:------------|:----------------------|:-------------------------------------|
41+
| Production | AFOI-NC-RP-PME-PROD | 05cf5e27-931d-47ad-826d-cb9028d8bd7a |
42+
| Production | AFOI-NC-MGMT-PME-PROD | 3365d4ea-bb16-4bc9-86dd-f2c8cf6f1f56 |
43+
44+
Example:
45+
46+
```console
47+
az role assignment create --assignee 05cf5e27-931d-47ad-826d-cb9028d8bd7a --role 44f0a1a8-6fea-4b35-980a-8ff50c487c97 --scope /subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>
48+
49+
az role assignment create --assignee 3365d4ea-bb16-4bc9-86dd-f2c8cf6f1f56 --role 44f0a1a8-6fea-4b35-980a-8ff50c487c97 --scope /subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>
50+
```
51+
52+
- User associates the Customer Key Vault with the Operator Nexus cluster. The key vault resource ID must be configured in the cluster and enabled to store the secrets of the cluster.
53+
54+
Example:
55+
56+
```console
57+
# Set and enable Customer Key Vault on Nexus cluster
58+
az networkcloud cluster update --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --secret-archive "{key-vault-id:<Key Vault Resource ID>,use-key-vault:true}"
59+
60+
# Show Customer Key Vault setting (secretArchive) on the Nexus cluster
61+
az networkcloud cluster show --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --query secretArchive
62+
```
63+
64+
For more help:
65+
66+
```console
67+
az networkcloud cluster update --secret-archive ?? --help
68+
```

articles/operator-nexus/howto-configure-cluster.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ az networkcloud cluster create --name "$CLUSTER_NAME" --location "$LOCATION" \
5555
--network fabric-id "$NFC_ID" \
5656
--cluster-service-principal application-id="$SP_APP_ID" \
5757
password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_ID" \
58+
--secret-archive "{key-vault-id:$KVRESOURCE_ID, use-key-vault:true}" \
5859
--cluster-type "$CLUSTER_TYPE" --cluster-version "$CLUSTER_VERSION" \
5960
--tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
6061
@@ -99,6 +100,7 @@ You can instead create a Cluster with ARM template/parameter files in
99100
| SP_PASS | Service Principal Password |
100101
| SP_ID | Service Principal ID |
101102
| TENANT_ID | Subscription tenant ID |
103+
| KV_RESOURCE_ID | Key Vault ID |
102104
| CLUSTER_TYPE | Type of cluster, Single or MultiRack |
103105
| CLUSTER_VERSION | NC Version of cluster |
104106
| TAG_KEY1 | Optional tag1 to pass to Cluster Create |
@@ -244,7 +246,7 @@ Some examples of deployment progress shown in detailedStatusMessage are `Hardwar
244246

245247
:::image type="content" source="./media/nexus-deploy-kcp-status.png" lightbox="./media/nexus-deploy-kcp-status.png" alt-text="Screenshot of Azure portal showing cluster deploy progress kcp init.":::
246248

247-
:::image type="content" source="./media/nexus-deploy-extention-status.png" lightbox="./media/nexus-deploy-extention-status.png" alt-text="Screenshot of Azure portal showing cluster deploy progress extenstion application.":::
249+
:::image type="content" source="./media/nexus-deploy-extension-status.png" lightbox="./media/nexus-deploy-extension-status.png" alt-text="Screenshot of Azure portal showing cluster deploy progress extension application.":::
248250

249251
The Cluster deployment is complete when detailedStatus is set to `Running` and detailedStatusMessage shows message `Cluster is up and running`.
250252

0 commit comments

Comments
 (0)