Skip to content

Commit 425d7af

Browse files
author
Gage Hugo
committed
Update BMC & SA password references to support URI
1 parent 1543d6e commit 425d7af

File tree

4 files changed

+88
-8
lines changed

4 files changed

+88
-8
lines changed

articles/operator-nexus/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,8 @@
483483
href: reference-acl-examples.md
484484
- name: Operator Nexus SKUs
485485
href: reference-operator-nexus-skus.md
486+
- name: Password By Key Vault Reference
487+
href: reference-key-vault-credential.md
486488
- name: Release Notes
487489
items:
488490
- name: 2024

articles/operator-nexus/howto-baremetal-functions.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,15 @@ Use the `replace` command when a server encounters hardware issues requiring a c
155155
After the replacing components such as motherboard or Network Interface Card (NIC), the MAC address of Bare Metal Machine will change; however, the iDRAC IP address and hostname will remain the same.
156156
A `replace` **must** be executed after each hardware maintenance operation, read through [Best practices for a Bare Metal Machine replace](./howto-bare-metal-best-practices.md#best-practices-for-a-bare-metal-machine-replace) for more details.
157157

158+
As of the 2506.2 release, the password value for iDRAC can be provided as a Key Vault Uniform Resource Identifier (URI) or password value. See [Key Vault Credential Reference](reference-key-vault-credential.md). Using a URI instead of a plaintext password provides extra security.
159+
158160
[!INCLUDE [warning-do-not-run-multiple-actions](./includes/baremetal-machines/warning-do-not-run-multiple-actions.md)]
159161

160162
```azurecli
161163
az networkcloud baremetalmachine replace \
162164
--name <BareMetalMachineName> \
163165
--resource-group <resourceGroup> \
164-
--bmc-credentials password=<IDRAC_PASSWORD> username=<IDRAC_USER> \
166+
--bmc-credentials password=<PASSWORD_URI or IDRAC_PASSWORD> username=<IDRAC_USER> \
165167
--bmc-mac-address <IDRAC_MAC> \
166168
--boot-mac-address <PXE_MAC> \
167169
--machine-name <OS_HOSTNAME> \
@@ -173,7 +175,17 @@ If the `replace` action fails due to a hardware validation failure, the specific
173175
This information can also be found in the Activity Log for the Bare Metal Machine (Operator Nexus).
174176
The error code and error message are included the JSON properties of the corresponding `BareMetalMachines_Replace` operation.
175177

176-
**Example 1: hardware validation fails due to invalid Baseboard Management Controller (BMC) credentials provided**
178+
**Example 1: Hardware validation fails due to invalid Key Vault URI for Baseboard Management Controller (BMC) credentials**
179+
180+
```shell
181+
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=$KEY_VAULT_URI username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435
182+
(failed to retrieve password from key vault) failed to get secret value from key vault: failed to get cluster key vault secret
183+
Code: failed to retrieve password from key vault
184+
Message: failed to retrieve password from key vault
185+
Response: 400 Bad Request
186+
```
187+
188+
**Example 2: Hardware validation fails due to invalid Baseboard Management Controller (BMC) credentials provided**
177189

178190
```shell
179191
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=REDACTED username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435
@@ -182,7 +194,7 @@ Code: None
182194
Message: BMC login unsuccessful: Fail - Unauthorized; System health test(s) failed: [Additional logs: Server power down at end of test failed with: Unauthorized]
183195
```
184196

185-
**Example 2: hardware validation fails due to networking failure**
197+
**Example 3: Hardware validation fails due to networking failure**
186198

187199
```shell
188200
$ az networkcloud baremetalmachine replace --name rack1compute02 --resource-group hostedRG --bmc-credentials password=REDACTED username=root --bmc-mac-address 00-00-5E-00-01-00 --boot-mac-address 00-00-5E-00-02-00 --machine-name RACK1COMPUTE02 --serial-number SN123435

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ az networkcloud cluster create --name "<CLUSTER_NAME>" --location "<LOCATION>" \
7878
--cluster-service-principal application-id="<SP_APP_ID>" \
7979
password="$SP_PASS" principal-id="$SP_ID" tenant-id="<TENANT_ID>" \
8080
--subscription "<SUBSCRIPTION_ID>" \
81-
--secret-archive "{key-vault-id:<KVRESOURCE_ID>, use-key-vault:true}" \
81+
--secret-archive-settings "{identity-type:<ID_TYPE>, vault-uri:<VAULT_URI>}" \
8282
--cluster-type "<CLUSTER_TYPE>" --cluster-version "<CLUSTER_VERSION>" \
8383
--tags <TAG_KEY1>="<TAG_VALUE1>" <TAG_KEY2>="<TAG_VALUE2>"
8484
```
@@ -105,7 +105,7 @@ az networkcloud cluster create --name "<CLUSTER_NAME>" --location "<LOCATION>" \
105105
--cluster-service-principal application-id="<SP_APP_ID>" \
106106
password="$SP_PASS" principal-id="$SP_ID" tenant-id="<TENANT_ID>" \
107107
--subscription "<SUBSCRIPTION_ID>" \
108-
--secret-archive "{key-vault-id:<KVRESOURCE_ID>, use-key-vault:true}" \
108+
--secret-archive-settings "{identity-type:<ID_TYPE>, vault-uri:<VAULT_URI>}" \
109109
--cluster-type "<CLUSTER_TYPE>" --cluster-version "<CLUSTER_VERSION>" \
110110
--tags <TAG_KEY1>="<TAG_VALUE1>" <TAG_KEY2>="<TAG_VALUE2>"
111111
```
@@ -127,16 +127,16 @@ az networkcloud cluster create --name "<CLUSTER_NAME>" --location "<LOCATION>" \
127127
| AGGR_RACK_BMM | Used for single rack deployment only, empty for multi-rack |
128128
| SA1_NAME | First Storage Appliance Device name |
129129
| SA2_NAME | Second Storage Appliance Device name |
130-
| SA1_PASS | First Storage Appliance admin password |
131-
| SA2_PASS | Second Storage Appliance admin password |
130+
| SA1_PASS | First Storage Appliance admin password reference URI or password value \*See [Key Vault Credential Reference](reference-key-vault-credential.md) |
131+
| SA2_PASS | Second Storage Appliance admin password reference URI or password value \*See [Key Vault Credential Reference](reference-key-vault-credential.md) |
132132
| SA_USER | Storage Appliance admin user |
133133
| SA1_SN | First Storage Appliance Serial Number |
134134
| SA2_SN | Second Storage Appliance Serial Number |
135135
| COMPX_RACK_RESOURCE_ID | RackID for CompX Rack; repeat for each rack in compute-rack-definitions |
136136
| COMPX_RACK_SKU | The Rack Stock Keeping Unit (SKU) for CompX Rack; repeat for each rack in compute-rack-definitions \*See [Operator Nexus Network Cloud Stock Keeping Unit (SKUs)](./reference-operator-nexus-skus.md) |
137137
| COMPX_RACK_SN | Rack Serial Number for CompX Rack; repeat for each rack in compute-rack-definitions |
138138
| COMPX_RACK_LOCATION | Rack physical location for CompX Rack; repeat for each rack in compute-rack-definitions |
139-
| COMPX_SVRY_BMC_PASS | CompX Rack ServerY Baseboard Management Controller (BMC) password; repeat for each rack in compute-rack-definitions and for each server in rack |
139+
| COMPX_SVRY_BMC_PASS | CompX Rack ServerY Baseboard Management Controller (BMC) password reference URI or password value; repeat for each rack in compute-rack-definitions and for each server in rack \*See [Key Vault Credential Reference](reference-key-vault-credential.md) |
140140
| COMPX_SVRY_BMC_USER | CompX Rack ServerY BMC user; repeat for each rack in compute-rack-definitions and for each server in rack |
141141
| COMPX_SVRY_BMC_MAC | CompX Rack ServerY BMC MAC address; repeat for each rack in compute-rack-definitions and for each server in rack |
142142
| COMPX_SVRY_BOOT_MAC | CompX Rack ServerY boot Network Interface Card (NIC) MAC address; repeat for each rack in compute-rack-definitions and for each server in rack |
@@ -157,6 +157,8 @@ az networkcloud cluster create --name "<CLUSTER_NAME>" --location "<LOCATION>" \
157157
| TAG_VALUE1 | Optional tag1 value to pass to Cluster Create |
158158
| TAG_KEY2 | Optional tag2 to pass to Cluster Create |
159159
| TAG_VALUE2 | Optional tag2 value to pass to Cluster Create |
160+
| ID_TYPE | See [Cluster Support for Managed Identities](./howto-cluster-managed-identity-user-provided-resources.md#key-vault-settings) for details on secret-archive-settings |
161+
| VAULT_URI | See [Cluster Support for Managed Identities](./howto-cluster-managed-identity-user-provided-resources.md#key-vault-settings) for details on secret-archive-settings |
160162

161163
## Cluster Identity
162164

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: "Azure Operator Nexus: Password By Key Vault Reference"
3+
description: Reference for using a key vault secret reference instead of a plaintext password
4+
author: ghugo
5+
ms.author: gagehugo
6+
ms.service: azure-operator-nexus
7+
ms.topic: how-to
8+
ms.date: 05/20/2025
9+
---
10+
11+
# Password by Key Vault reference
12+
13+
This guide details how to configure a Cluster for deployment using a Key Vault Uniform Resource Identifier (URI) instead of a plaintext password. This credential is used when creating or updating an Azure Operator cluster and can be located in the same key vault configured in `--secret-archive-settings` or a separate key vault. The key vault URI is used for deploying the cluster. Once the cluster is deployed, automatic credential rotation handles the rotation of the password.
14+
15+
This Key Vault URI is used to retrieve the password value from the specified Key Vault as a one-time operation. Once this password value is retrieved, the URI is no longer used and the password is securely stored in the cluster.
16+
17+
## Key Vault URI vs. Plaintext Password
18+
19+
Using a key vault URI instead of a password provides extra security by avoiding the issue of using a plaintext value. The URI value isn't used once the Cluster Create/Update & Bare Metal Machine Replace Actions are complete.
20+
21+
>[!NOTE]
22+
> This feature is supported for cluster create and update as part of the 2506.2 release. A later release is planned to remove support for using plaintext passwords.
23+
24+
## Role Assignment
25+
26+
The managed identity that is specified in the `--secret-archive-settings` field needs to be assigned the `Key Vault Secrets User` role on the key vault that contains the password. The role assignment is required so that the cluster can retrieve the password value from the URI value referenced. The `Key Vault Secrets User` role assignment is different than `Operator Nexus Key Vault Writer Service Role`, which is required for the automatic rotation of credentials.
27+
28+
For more information on `--secret-archive-settings`, see [Cluster Support for Managed Identities](./howto-cluster-managed-identity-user-provided-resources.md#key-vault-settings).
29+
30+
## Configuration for Base Management Controller (BMC) and Storage Appliance
31+
32+
When a cluster is deployed, multiple passwords are provided as part of the configuration data. As of the 2506.2 release, the ability to pass in a URI reference value instead of a plaintext password was introduced.
33+
34+
In these examples, the `KEY_VAULT_NAME` is the name of the key vault and `SECRET_NAME` is the name of the secret. If there are multiple versions of a secret, the `VERSION` can be appended to specify that particular version should be used.
35+
36+
## Base Management Controller password
37+
38+
```yaml
39+
"bareMetalMachineConfigurationData": [
40+
{
41+
"bmcCredentials": {
42+
"username": "$BMC_USERNAME",
43+
"password": "https://$KEY_VAULT_NAME.vault.azure.net/secrets/$SECRET_NAME/$VERSION"
44+
},
45+
}
46+
]
47+
```
48+
49+
### Storage Appliance password
50+
51+
```yaml
52+
"storageApplianceConfigurationData": [
53+
{
54+
"adminCredentials": {
55+
"username": "pureuser",
56+
"password": "https://$KEY_VAULT_NAME.vault.azure.net/secrets/$SECRET_NAME/$VERSION"
57+
},
58+
}
59+
]
60+
```
61+
62+
### Bare Metal Machine replacement
63+
64+
This key vault URI can also be provided for the password value when performing a bare metal machine replace: [Replace a Bare Metal Machine](./howto-baremetal-functions.md#replace-a-bare-metal-machine). The same [Role Assignment](#role-assignment) is needed to exist for this functionality to work.

0 commit comments

Comments
 (0)