You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-operations/deploy-iot-ops/howto-enable-secure-settings.md
+57-60Lines changed: 57 additions & 60 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Enable secure settings on your Azure IoT Operations Preview deploym
4
4
author: asergaz
5
5
ms.author: sergaz
6
6
ms.topic: how-to
7
-
ms.date: 09/24/2024
7
+
ms.date: 11/04/2024
8
8
9
9
#CustomerIntent: I deployed Azure IoT Operations with test settings for the quickstart scenario, now I want to enable secure settings to use the full feature set.
10
10
---
@@ -98,74 +98,71 @@ If not already set up, use the following steps to enable workload identity on an
98
98
99
99
## Set up Secrets Management
100
100
101
-
Secrets Management for Azure IoT Operations uses Secret Store extension to sync the secrets from an Azure Key Vault and store them on the edge as Kubernetes secrets.
101
+
Secrets Management for Azure IoT Operations uses Secret Store extension to sync the secrets from an Azure Key Vault and store them on the edge as Kubernetes secrets. Secret Store extension requires a user assigned managed identity with access to the Azure Key Vault where secrets are stored. To learn more, see [What are managed identities for Azure resources?](/entra/identity/managed-identities-azure-resources/overview).
102
102
103
-
Secret Store extension requires a user-assigned managed identity with access to the Azure Key Vault where secrets are stored. To learn more, see [What are managed identities for Azure resources?](/entra/identity/managed-identities-azure-resources/overview).
103
+
Follow these steps to set up Secrets Management:
104
104
105
-
1. Create an [Azure Key Vault](/azure/key-vault/secrets/quick-create-cli) that will be used to store secrets.
106
-
2. Make sure you have `Key Vaults Secrets Officer` role on the Azure Key Vault.
107
-
3. Create a [User Assigned Managed Identity](/entra/identity/managed-identities-azure-resources/overview) for secret store extension.
108
-
5. Use the [az iot ops secretsync enable](/cli/azure/iot/ops/secretsync#az-iot-ops-secretsync-enable) command to set up the Azure IoT Operations instance for secret synchronization.
105
+
1.[Create an Azure Key Vault](/azure/key-vault/secrets/quick-create-cli#create-a-key-vault) that is used to store secrets, and [give your user account permissions to manage secrets](/azure/key-vault/secrets/quick-create-cli#give-your-user-account-permissions-to-manage-secrets-in-key-vault) with the `Key Vaults Secrets Officer` role.
106
+
1.[Create a user-assigned managed identity](/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-managed-identities?pivots=identity-mi-methods-azp#create-a-user-assigned-managed-identity) for Secret Store extension.
107
+
1. Use the [az iot ops secretsync enable](/cli/azure/iot/ops/secretsync#az-iot-ops-secretsync-enable) command to set up the Azure IoT Operations instance for secret synchronization. This command:
109
108
110
-
This command:
109
+
- Creates a federated identity credential using the user-assigned managed identity.
110
+
- Adds a role assignment to the user-assigned managed identity for access to the Azure Key Vault.
111
+
- Adds a minimum secret provider class associated with the Azure IoT Operations instance.
111
112
112
-
* Creates a federated identity credential using the user-assigned managed identity.
113
-
* Adds a role assignment to the user-assigned managed identity for access to the Azure Key Vault.
114
-
* Adds a minimum secret provider class associated with the Azure IoT Operations instance.
115
-
116
-
# [Bash](#tab/bash)
117
-
118
-
```azurecli
119
-
# Variable block
120
-
INSTANCE_NAME="<INSTANCE_NAME"
121
-
RESOURCE_GROUP="<RESOURCE_GROUP>"
122
-
USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>"
123
-
KEYVAULT_NAME="<KEYVAULT_NAME>"
124
-
125
-
#Get the resource ID of the user-assigned managed identity
126
-
USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
127
-
128
-
#Get the resource ID of the key vault
129
-
KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
130
-
131
-
#Enable secret synchronization
132
-
az iot ops secretsync enable --name $INSTANCE_NAME \
Now that secret synchronization setup is complete, you can refer to [Manage Secrets](./howto-manage-secrets.md) to learn how to use secrets with Azure IoT Operations.
163
160
164
161
## Set up user-assigned managed identity for cloud connections
165
162
166
163
Some Azure IoT Operations components like dataflow endpoints use user-assigned managed identity for cloud connections. It's recommended to use a separate identity from the one used to set up Secrets Management.
167
164
168
-
1. Create a [User Assigned Managed Identity](/entra/identity/managed-identities-azure-resources/overview) which will be used for cloud connections.
165
+
1. [Create a user-assigned managed identity](/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-managed-identities?pivots=identity-mi-methods-azp#create-a-user-assigned-managed-identity) which is used for cloud connections.
169
166
170
167
> [!NOTE]
171
168
> You will need to grant the identity permission to whichever cloud resource this will be used for.
@@ -176,7 +173,7 @@ Some Azure IoT Operations components like dataflow endpoints use user-assigned m
176
173
177
174
```azurecli
178
175
# Variable block
179
-
INSTANCE_NAME="<INSTANCE_NAME"
176
+
INSTANCE_NAME="<INSTANCE_NAME>"
180
177
RESOURCE_GROUP="<RESOURCE_GROUP>"
181
178
USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>"
182
179
@@ -193,7 +190,7 @@ Some Azure IoT Operations components like dataflow endpoints use user-assigned m
193
190
194
191
```azurecli
195
192
# Variable block
196
-
$INSTANCE_NAME="<INSTANCE_NAME"
193
+
$INSTANCE_NAME="<INSTANCE_NAME>"
197
194
$RESOURCE_GROUP="<RESOURCE_GROUP>"
198
195
$USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>"
0 commit comments