Skip to content

Commit 6cd1f22

Browse files
authored
Merge pull request #303513 from SoniaLopezBravo/aio-rbac
Adding new built-in rbac
2 parents eeb9133 + 552a36b commit 6cd1f22

File tree

9 files changed

+125
-37
lines changed

9 files changed

+125
-37
lines changed

articles/iot-operations/deploy-iot-ops/howto-deploy-iot-operations.md

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
146146
az extension add --upgrade --name azure-iot-ops
147147
```
148148

149+
> [!IMPORTANT]
150+
> For [preview releases](./howto-upgrade.md#upgrade-to-preview-version), you need to append the `--allow-preview` flag to the `az extension add` command to install the preview version of the Azure IoT Operations CLI extension.
151+
>
152+
> ```azurecli
153+
> az extension add --upgrade --name azure-iot-ops --allow-preview
154+
> ```
155+
149156
1. Copy and run the provided [az iot ops schema registry create](/cli/azure/iot/ops/schema/registry#az-iot-ops-schema-registry-create) command to create a schema registry which is used by Azure IoT Operations components. If you chose to use an existing schema registry, this command isn't displayed on the **Automation** tab.
150157
151158
> [!NOTE]
@@ -163,6 +170,9 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
163170
1. In the left menu, select **Namespaces**.
164171
1. Then select **+ Create** to create a new namespace. Make sure to use the same resource group as your Arc-enabled Kubernetes cluster.
165172
173+
> [!NOTE]
174+
> Namespace resources are available from [2507 preview release](https://github.com/Azure/azure-iot-operations/releases/tag/v1.2.35). If you're using an earlier release version, namespaces aren't available and you can skip this step.
175+
166176
1. To prepare the cluster for Azure IoT Operations deployment, copy and run the provided [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init) command.
167177
168178
> [!TIP]
@@ -174,25 +184,26 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
174184
175185
* If you want to use an existing namespace, add the following parameter to the `create` command:
176186
177-
```azurecli
178-
--ns-resource-id $(az iot ops ns show --name <my namespace name> --resource-group $RESOURCE_GROUP -o tsv --query id)
179-
```
187+
```azurecli
188+
--ns-resource-id $(az iot ops ns show --name <my namespace name> --resource-group $RESOURCE_GROUP -o tsv --query id)
189+
```
180190
181191
* If you want to use the preview connector configuration, add the following parameter to the `create` command:
182192
183-
```bash
184-
--feature connectors.settings.preview=Enabled
185-
```
193+
```bash
194+
--feature connectors.settings.preview=Enabled
195+
```
196+
197+
> [!NOTE]
198+
> The `--feature` configuration parameter is only available in the [latest GA version](https://github.com/Azure/azure-iot-operations/releases/tag/v1.1.59). If you're using the [2507 preview release](https://github.com/Azure/azure-iot-operations/releases/tag/v1.2.35), this parameter isn't available.
186199
187200
* If you followed the optional prerequisites to set up your own certificate authority issuer, add the `--trust-settings` parameters to the `create` command:
188201
189-
```bash
190-
--trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
191-
```
192-
193-
1. Enable secret sync for the deployed Azure IoT Operations instance. Copy and run the provided [az iot ops secretsync enable](/cli/azure/iot/ops/secretsync#az-iot-ops-secretsync-enable) command.
202+
```bash
203+
--trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
204+
```
194205
195-
This command:
206+
1. Enable secret sync for the deployed Azure IoT Operations instance. Copy and run the provided [az iot ops secretsync enable](/cli/azure/iot/ops/secretsync#az-iot-ops-secretsync-enable) command. This command:
196207
197208
* Creates a federated identity credential using the user-assigned managed identity.
198209
* Adds a role assignment to the user-assigned managed identity for access to the Azure Key Vault.

articles/iot-operations/deploy-iot-ops/howto-deploy-iot-test-operations.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,14 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
132132
az extension add --upgrade --name azure-iot-ops
133133
```
134134
135+
136+
> [!IMPORTANT]
137+
> For [preview releases](./howto-upgrade.md#upgrade-to-preview-version), you need to append the `--allow-preview` flag to the `az extension add` command to install the preview version of the Azure IoT Operations CLI extension.
138+
>
139+
> ```azurecli
140+
> az extension add --upgrade --name azure-iot-ops --allow-preview
141+
> ```
142+
135143
1. Copy and run the provided [az iot ops schema registry create](/cli/azure/iot/ops/schema/registry#az-iot-ops-schema-registry-create) command to create a schema registry which is used by Azure IoT Operations components. If you chose to use an existing schema registry, this command isn't displayed on the **Automation** tab.
136144
137145
1. Azure IoT Operations uses *namespaces* to organize assets and devices. Each Azure IoT Operations instance uses a single namespace for its assets and devices. You can use an existing namespace or run the `az iot ops ns create` command to create an Azure Device Registry namespace. Replace `<my namespace name>` with a unique name for your namespace.
@@ -145,6 +153,9 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
145153
1. In the search box, type and select **Azure Device Registry**.
146154
1. In the left menu, select **Namespaces**.
147155
1. Then select **+ Create** to create a new namespace. Make sure to use the same resource group as your Arc-enabled Kubernetes cluster.
156+
157+
> [!NOTE]
158+
> Namespace resources are available from [2507 preview release](https://github.com/Azure/azure-iot-operations/releases/tag/v1.2.35). If you're using an earlier release version, namespaces aren't available and you can skip this step.
148159
149160
1. Prepare the cluster for Azure IoT Operations deployment. Copy and run the provided [az iot ops init](/cli/azure/iot/ops#az-iot-ops-init) command.
150161
@@ -157,15 +168,18 @@ One at a time, run each Azure CLI command on the **Automation** tab in a termina
157168
158169
* If you want to use an existing namespace, add the following parameter to the `create` command:
159170
160-
```azurecli
161-
--ns-resource-id $(az iot ops ns show --name <my namespace name> --resource-group $RESOURCE_GROUP -o tsv --query id)
162-
```
171+
```azurecli
172+
--ns-resource-id $(az iot ops ns show --name <my namespace name> --resource-group $RESOURCE_GROUP -o tsv --query id)
173+
```
163174
164175
* If you want to use the preview connector configuration, add the following parameter to the `create` command:
165176
166-
```azurecli
167-
--feature connectors.settings.preview=Enabled
168-
```
177+
```azurecli
178+
--feature connectors.settings.preview=Enabled
179+
```
180+
181+
> [!NOTE]
182+
> The `--feature` configuration parameter is only available in the [latest GA version](https://github.com/Azure/azure-iot-operations/releases/tag/v1.1.59). If you're using the [2507 preview release](https://github.com/Azure/azure-iot-operations/releases/tag/v1.2.35), this parameter isn't available.
169183
170184
1. Once all of the Azure CLI commands complete successfully, you can close the **Install Azure IoT Operations** wizard.
171185

articles/iot-operations/deploy-iot-ops/howto-enable-secure-settings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Enable secure settings
2+
title: Enable Secure Settings to a Test Instance
33
description: Enable secure settings in your Azure IoT Operations instance for developing a production-ready scenario.
44
author: asergaz
55
ms.author: sergaz

articles/iot-operations/deploy-iot-ops/overview-deploy.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,14 @@ The following table describes Azure IoT Operations deployment and management tas
7272

7373
| Task | Required permission | Comments |
7474
| ---- | ------------------- | -------- |
75-
| Deploy Azure IoT Operations | **Contributor** role at the resource group level. | |
76-
| Register resource providers | Microsoft.ExtendedLocation/register/action Microsoft.SecretSyncController/register/action Microsoft.Kubernetes/register/action Microsoft.KubernetesConfiguration/register/action Microsoft.IoTOperations/register/action Microsoft.DeviceRegistry/register/action| Only required to do once per subscription. |
77-
| Create a schema registry. | **Microsoft.Authorization/roleAssignments/write** permissions at the resource group level. | |
78-
| Create secrets in Key Vault | **Key Vault Secrets Officer** role at the resource level. | Only required for secure settings deployment. |
79-
| Enable resource sync rules on an Azure IoT Operations instance | **Microsoft.Authorization/roleAssignments/write** permissions at the resource group level. | Resource sync rules are disabled by default, but can be enabled as part of the [az iot ops rsync](/cli/azure/iot/ops#az-iot-ops-rsync) command. |
75+
| Deploy Azure IoT Operations | [Azure IoT Operations Onboarding role](../secure-iot-ops/built-in-rbac.md#azure-iot-operations-onboarding-role) | This role has all required permissions to read and write Azure IoT operations and Azure Device Registry resources. This role has `Microsoft.Authorization/roleAssignments/write` permissions.|
76+
| Register resource providers | [Contributor role](/azure/role-based-access-control/built-in-roles/privileged#contributor) at subscription level| Only required to do once per subscription. You need to register the following resource providers: `Microsoft.ExtendedLocation`, `Microsoft.SecretSyncController`, `Microsoft.Kubernetes`, `Microsoft.KubernetesConfiguration`, `Microsoft.IoTOperations`, and `Microsoft.DeviceRegistry`. |
77+
| Create secrets in Key Vault | [Key Vault Secrets Officer role](/azure/role-based-access-control/built-in-roles/security#key-vault-secrets-officer) at the resource level | Only required for secure settings deployment to synchronize secrets from Azure Key Vault. |
78+
| Create and manage storage accounts | [Storage Account Contributor role](/azure/role-based-access-control/built-in-roles/storage#storage-account-contributor) | Required for Azure IoT Operations deployment. |
79+
| Create a resource group | Resource Group Contributor role | Required to create a resource group for storing Azure IoT Operations resources. |
80+
| Onboard a cluster to Azure Arc | [Kubernetes Cluster - Azure Arc Onboarding role](/azure/role-based-access-control/built-in-roles/containers#kubernetes-cluster---azure-arc-onboarding) | Arc-enabled clusters are required to deploy Azure IoT Operations. |
81+
| Manage deployment of Azure resource bridge| [Azure Resource Bridge Deployment role](/azure/role-based-access-control/built-in-roles/hybrid-multicloud#azure-resource-bridge-deployment-role) | Required to deploy Azure IoT Operations. |
82+
| Provide permissions to deployment| [Azure Arc Enabled Kubernetes Cluster User role](/azure/role-based-access-control/built-in-roles/containers#azure-arc-enabled-kubernetes-cluster-user-role) | Required to grant permission of deployment to the Azure Arc-enabled Kubernetes cluster. |
8083

8184
> [!TIP]
8285
> You must enable resource sync rules on the Azure IoT Operations instance to use the automatic asset discovery capabilities of the Akri services. To learn more, see [What is OPC UA asset discovery (preview)?](../discover-manage-assets/overview-akri.md).

articles/iot-operations/includes/supported-versions.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ title: include file
33
description: include file with details of currently supported versions
44
author: dominicbetts
55
ms.topic: include
6-
ms.date: 06/16/2025
6+
ms.date: 07/30/2025
77
ms.author: dobett
88
---
99

1010
Microsoft always supports three generally available (GA) versions of Azure IoT Operations at any one time: the latest version, and the two previous minor versions.
1111

1212
Currently, there are only two minor versions available. [Azure support](https://azure.microsoft.com/support/plans) is currently available for the following versions:
1313

14-
- [1.1.x](https://github.com/Azure/azure-iot-operations/releases/tag/v1.1.19) (latest GA version)
14+
- [1.2.x](https://github.com/Azure/azure-iot-operations/releases/tag/v1.2.35) (latest preview version)
15+
- [1.1.x](https://github.com/Azure/azure-iot-operations/releases/tag/v1.1.59) (latest GA version)
1516
- [1.0.x](https://github.com/Azure/azure-iot-operations/releases/tag/v1.0.9) (previous minor GA version)
1617

1718
> [!IMPORTANT]

articles/iot-operations/reference/custom-rbac.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Custom RBAC for your resources
2+
title: Custom RBAC Roles
33
description: Use the Azure portal to secure access to Azure IoT Operations resources such as data flows and assets by using Azure role-based access control.
44
author: dominicbetts
55
ms.author: dobett
@@ -9,26 +9,33 @@ ms.date: 04/16/2025
99
#CustomerIntent: As an IT administrator, I want configure Azure RBAC custom roles on resources in my Azure IoT Operations instance to control access to them.
1010
---
1111

12-
# Custom RBAC for your Azure IoT Operations resources
12+
# Custom RBAC roles for your Azure IoT Operations resources
1313

14-
To define custom roles that grant specific permissions to users, you can use Azure RBAC. For example, you can define an **Onboarding** role that grants sufficient permissions to a user to complete the Azure Arc connect process and deploy Azure IoT Operations securely.
15-
16-
This article includes a list of example that you can download and use in your environment. These custom roles are JSON files that list the specific permissions and scope for the role.
14+
To define custom roles that grant specific permissions to users, you can use Azure RBAC. This article includes a list of example that you can download and use as reference to build your custom roles.
1715

1816
To learn more about custom roles in Azure RBAC, see [Azure custom roles](/azure/role-based-access-control/custom-roles).
1917

20-
## Example custom roles
18+
Azure IoT operations also offers built-in roles designed to simplify and secure access management for Azure IoT Operations resources. For more information, see [Built-in RBAC roles for IoT Operations](../secure-iot-ops/built-in-rbac.md).
19+
20+
## Examples of custom roles
2121

22-
The following sections list the example Azure IoT Operations custom roles you can download and use:
22+
The following sections list the example Azure IoT Operations custom roles you can download and use as reference. These custom roles are JSON files that list the specific permissions and scope for the role, which you should use as a starting point to create your own custom roles.
23+
24+
> [!NOTE]
25+
> The following custom roles are examples only. You need to review and modify the permissions in the JSON files to suit your specific requirements.
2326
2427
### Onboarding roles
2528

29+
You can define an *Onboarding* role that grants sufficient permissions to a user to complete the Azure Arc connect process and deploy Azure IoT Operations securely.
30+
2631
| Custom role | Description |
2732
| ----------- | ----------- |
2833
| [Onboarding](https://github.com/Azure-Samples/explore-iot-operations/blob/main/samples/custom-rbac/Onboarding.json) | This is privileged role. The user can complete Azure Arc connect process and deploy Azure IoT Operations securely. |
2934

3035
### Viewer roles
3136

37+
You can define different *Viewer* roles that grant read-only access to the Azure IoT Operations instance and its resources. These roles are useful for users who need to monitor the instance without making changes.
38+
3239
| Custom role | Description |
3340
| ----------- | ----------- |
3441
| [Instance viewer](https://github.com/Azure-Samples/explore-iot-operations/blob/main/samples/custom-rbac/Instance%20Viewer.json) | This role allows the user to view the Azure IoT Operations instance. |
@@ -41,6 +48,8 @@ The following sections list the example Azure IoT Operations custom roles you ca
4148

4249
### Administrator roles
4350

51+
You can define different *Administrator* roles that grant full access to the Azure IoT Operations instance and its resources. These roles are useful for users who need to manage the instance and its resources.
52+
4453
| Custom role | Description |
4554
| ----------- | ----------- |
4655
| [Instance administrator](https://github.com/Azure-Samples/explore-iot-operations/blob/main/samples/custom-rbac/Instance%20Administrator.json) | This is privileged role. The user can deploy an instance. The role includes permissions to create and update instances, brokers, authentications, listeners, dataflow profiles, dataflow endpoints, schema registries, and user assigned identities. The role also includes permission to delete instances. |

0 commit comments

Comments
 (0)