Skip to content

Commit 5303a73

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into mb-0320-reusable-path
2 parents f85f0e3 + 6959187 commit 5303a73

File tree

6 files changed

+94
-72
lines changed

6 files changed

+94
-72
lines changed

articles/cost-management-billing/manage/cancel-azure-subscription.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ After you cancel, your services are disabled. That means your virtual machines a
114114

115115
:::image type="content" source="./media/cancel-azure-subscription/cancel-window.png" alt-text="Screenshot showing the cancellation window." lightbox="./media/cancel-azure-subscription/cancel-window.png" :::
116116

117-
After you cancel a subscription, your billing stops immediately. You can delete your subscription directly using the Azure portal seven days after you cancel it, when the **Delete subscription** option becomes available. When your subscription is deleted, Microsoft waits 30 to 90 days before permanently deleting your data in case you need to access it or recover your data. We don't charge you for retaining the data. For more information, see [Microsoft Trust Center - How we manage your data](https://go.microsoft.com/fwLink/p/?LinkID=822930).
117+
After you cancel a subscription, your billing stops immediately. You can delete your subscription directly using the Azure portal seven days after you cancel it, when the **Delete subscription** option becomes available. When your subscription is cancelled, Microsoft waits 30 to 90 days before permanently deleting your data in case you need to access it or recover your data. We don't charge you for retaining the data. For more information, see [Microsoft Trust Center - How we manage your data](https://go.microsoft.com/fwLink/p/?LinkID=822930).
118118

119119
>[!NOTE]
120120
> You must manually cancel your SaaS subscriptions before you cancel your Azure subscription. Only pay-as-you-go SaaS subscriptions are cancelled automatically by the Azure subscription cancellation process.

articles/iot-operations/get-started/quickstart-add-assets.md

Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -76,43 +76,14 @@ To add an asset endpoint:
7676
kubectl get assetendpointprofile -n azure-iot-operations
7777
```
7878

79-
After you define an asset, an OPC UA connector pod discovers it. The pod uses the asset endpoint that you specify in the asset definition to connect to an OPC UA server. You can use `kubectl` to view the discovery pod that was created when you added the asset endpoint. The pod name looks like `aio-opc-opc.tcp-1-8f96f76-kvdbt`:
79+
1. To enable the quickstart scenario, configure your asset endpoint to connect without mutual trust established. Run the following command:
8080

8181
```console
82-
kubectl get pods -n azure-iot-operations
82+
kubectl patch AssetEndpointProfile opc-ua-connector-0 -n azure-iot-operations --type=merge -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"opc-ua-connector-0\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
8383
```
8484

85-
When the OPC PLC simulator is running, data flows from the simulator, to the connector, to the OPC UA broker, and finally to the MQ broker.
86-
87-
The following step lowers the security level for the OPC PLC so that it accepts connections from any client without an explicit peer certificate trust operation. To enable the asset endpoint to use an untrusted certificate:
88-
89-
> [!CAUTION]
90-
> Don't use untrusted certificates in production environments. To learn more, see [Configure an OPC PLC simulator](../manage-devices-assets/howto-configure-opc-plc-simulator.md).
91-
92-
1. Run the following command to enable the use of an untrusted certificate. Replace the two placeholders with your cluster name and resource group name:
93-
94-
```azurecli
95-
az k8s-extension update \
96-
--version 0.3.0-preview \
97-
--name opc-ua-broker \
98-
--release-train preview \
99-
--cluster-name <cluster-name> \
100-
--resource-group <azure-resource-group> \
101-
--cluster-type connectedClusters \
102-
--auto-upgrade-minor-version false \
103-
--config opcPlcSimulation.deploy=true \
104-
--config opcPlcSimulation.autoAcceptUntrustedCertificates=true
105-
```
106-
107-
1. To enable the asset endpoint to use an untrusted certificate, run the following command on the machine where your cluster is running:
108-
109-
```console
110-
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/opc-ua-connector-0.yaml
111-
```
112-
113-
The following snippet shows the YAML file that you applied:
114-
115-
:::code language="yaml" source="~/azure-iot-operations-samples/samples/quickstarts/opc-ua-connector-0.yaml":::
85+
> [!CAUTION]
86+
> Don't use this configuration in production or pre-production environments. Exposing your cluster to the internet without proper authentication might lead to unauthorized access and even DDOS attacks.
11687

11788
1. To enable the configuration changes to take effect immediately, first find the name of your `aio-opc-supervisor` pod by using the following command:
11889

@@ -128,6 +99,14 @@ The following step lowers the security level for the OPC PLC so that it accepts
12899
kubectl delete pod aio-opc-supervisor-956fbb649-k9ppr -n azure-iot-operations
129100
```
130101

102+
After you define an asset, an OPC UA connector pod discovers it. The pod uses the asset endpoint that you specify in the asset definition to connect to an OPC UA server. You can use `kubectl` to view the discovery pod that was created when you added the asset endpoint. The pod name looks like `aio-opc-opc.tcp-1-8f96f76-kvdbt`:
103+
104+
```console
105+
kubectl get pods -n azure-iot-operations
106+
```
107+
108+
When the OPC PLC simulator is running, data flows from the simulator, to the connector, to the OPC UA broker, and finally to the MQ broker.
109+
131110
## Manage your assets
132111

133112
After you select your cluster in Azure IoT Operations portal, you see the available list of assets on the **Assets** page. If there are no assets yet, this list is empty:
@@ -214,7 +193,7 @@ The sample tags you added in the previous quickstart generate messages from your
214193

215194
```json
216195
{
217-
"Timestamp": "2024-03-08T00:54:58.6572007Z",
196+
"Timestamp": "2024-03-08T00:54:58.6572007Z",
218197
"MessageType": "ua-deltaframe",
219198
"payload": {
220199
"temperature": {
@@ -271,7 +250,7 @@ kubectl get akrii -n azure-iot-operations
271250

272251
It might take a few minutes for the instance to show up.
273252

274-
The output from the previous command looks like the following example.
253+
The output from the previous command looks like the following example.
275254

276255
```console
277256
NAMESPACE NAME CONFIG SHARED NODES AGE
@@ -280,7 +259,7 @@ azure-iot-operations akri-opcua-asset-dbdef0 akri-opcua-asset true ["d
280259

281260
Now you can use these resources in the local cluster namespace.
282261

283-
To confirm that Akri connected to the OPC UA Broker, copy and paste the name of the Akri instance from the previous step into the following command:
262+
To confirm that Akri connected to the OPC UA Broker, copy and paste the name of the Akri instance from the previous step into the following command:
284263

285264
```bash
286265
kubectl get akrii <AKRI_INSTANCE_NAME> -n azure-iot-operations -o json
@@ -293,7 +272,7 @@ The command output looks like the following example. This example output shows t
293272

294273
"brokerProperties": {
295274
"ApplicationUri": "Boiler #2",
296-
"AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……
275+
"AssetEndpointProfile": "{\"spec\":{\"uuid\":\"opc-ua-broker-opcplc-000000-azure-iot-operation\"……
297276
```
298277

299278
## How did we solve the problem?

articles/iot-operations/get-started/quickstart-deploy.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,15 @@ az keyvault create --enable-rbac-authorization false --name "<your unique key va
285285
>[!TIP]
286286
>If you get an error that says *Your device is required to be managed to access your resource*, go back to the previous step and make sure that you signed in interactively.
287287
288+
1. These quickstarts use the **OPC PLC simulator** to generate sample data. To configure the simulator for the quickstart scenario, run the following command:
289+
290+
> [!IMPORTANT]
291+
> Don't use the following example in production, use it for simulation and test purposes only. The example lowers the security level for the OPC PLC so that it accepts connections from any client without an explicit peer certificate trust operation.
292+
293+
```azurecli
294+
az k8s-extension update --version 0.3.0-preview --name opc-ua-broker --release-train preview --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --auto-upgrade-minor-version false --config opcPlcSimulation.deploy=true --config opcPlcSimulation.autoAcceptUntrustedCertificates=true
295+
```
296+
288297
## View resources in your cluster
289298
290299
While the deployment is in progress, you can watch the resources being applied to your cluster. You can use kubectl commands to observe changes on the cluster or, since the cluster is Arc-enabled, you can use the Azure portal.

articles/iot-operations/manage-devices-assets/howto-configure-opc-plc-simulator.md

Lines changed: 57 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ Azure IoT Operations installed. For more information, see [Quickstart: Deploy Az
2222

2323
## Deploy the OPC PLC simulator
2424

25-
This section shows how to deploy the OPC PLC simulator.
25+
This section shows how to deploy the OPC PLC simulator.
26+
27+
The following step lowers the security level for the OPC PLC so that it accepts connections from Azure Iot OPC UA Broker or any client without an explicit peer certificate trust operation.
2628

2729
> [!IMPORTANT]
28-
> Don't use the following example in production, use it for simulation and test purposes only. The example lowers the security level for the OPC PLC so that it accepts connections from any client without an explicit peer certificate trust operation.
30+
> Don't use the following example in production, use it for simulation and test purposes only.
2931
3032
Run the following code to update the OPC UA Broker deployment and apply the new settings:
3133

@@ -44,27 +46,51 @@ az k8s-extension update \
4446

4547
The OPC PLC OPC UA server should run in the same deployment as a separate pod.
4648

47-
## Get the certificate of the OPC PLC simulator
48-
The application instance certificate of the OPC PLC is a self-signed certificate managed by cert-manager and stored in the `secret aio-opc-ua-opcplc-default-application-cert-000000` kubernetes secret.
49-
50-
To get the certificate, run the following commands on your cluster:
51-
52-
```bash
53-
# extract the public key of the opc plc from the kubernetes secret
54-
kubectl -n azure-iot-operations get secret aio-opc-ua-opcplc-default-application-cert-000000 -o jsonpath='{.data.tls\.crt}' | base64 -d > opcplc.crt
55-
56-
# optionally transform the certificate in *.der format
57-
openssl x509 -outform der -in opcplc.crt -out opcplc.der
58-
```
59-
60-
## Configure OPC UA mutual trust
61-
The next step in OPC UA authentication is to configure mutual trust. In OPC UA communication, the OPC UA client and server authenticate each other.
62-
63-
To complete this configuration, follow the steps to [configure mutual trust](howto-configure-opcua-certificates-infrastructure.md#how-to-handle-the-opc-ua-trusted-certificates-list). Use the certificate file you extracted in the previous section.
49+
## Configure OPC UA mutual trust between Azure Iot OPC UA Broker Preview and the OPC PLC
6450

65-
For simplicity, on the OPC PLC you don't need to do a mutual trust action. Mutual trust is configured with `autoAcceptUntrustedCertificates`, which accepts connections from any OPC UA client.
51+
The application instance certificate of the OPC PLC is a self-signed certificate managed by cert-manager and stored in the `secret aio-opc-ua-opcplc-default-application-cert-000000` kubernetes secret.
6652

67-
## Optionally configure for no authentication
53+
1. Get the certificate, run the following commands on your cluster, and push it to Azure Key Vault.
54+
55+
```bash
56+
kubectl -n azure-iot-operations get secret aio-opc-ua-opcplc-default-application-cert-000000 -o jsonpath='{.data.tls\.crt}' | \
57+
xargs -I {} \
58+
az keyvault secret set \
59+
--name "opcplc-crt" \
60+
--vault-name <azure-key-vault-name> \
61+
--value {} \
62+
--encoding base64 \
63+
--content-type application/x-pem-file
64+
```
65+
66+
2. Configure the secret provider class (SPC) `aio-opc-ua-broker-trust-list` custom resource (CR) in the connected cluster. Use a K8s client such as kubectl to configure the secret `opcplc.crt` in the SPC object array in the connected cluster.
67+
68+
```yml
69+
apiVersion: secrets-store.csi.x-k8s.io/v1
70+
kind: SecretProviderClass
71+
metadata:
72+
name: aio-opc-ua-broker-trust-list
73+
namespace: azure-iot-operations
74+
spec:
75+
provider: azure
76+
parameters:
77+
usePodIdentity: 'false'
78+
keyvaultName: <azure-key-vault-name>
79+
tenantId: <azure-tenant-id>
80+
objects: |
81+
array:
82+
- |
83+
objectName: opcplc-crt
84+
objectType: secret
85+
objectAlias: opcplc.crt
86+
objectEncoding: hex
87+
```
88+
89+
The projection of the Azure Key Vault secrets and certificates into the cluster takes some time depending on the configured polling interval.
90+
91+
Now, the Azure IoT OPC UA Broker the trust relationship with OPC PLC should be established and you can proceed to create an `AssetEndpointProfile` to connect to your OPC PLC simulation server.
92+
93+
## Optionally configure your `AssetEndpointProfile` without mutual trust established
6894

6995
You can optionally configure an asset endpoint profile for the OPC PLC to run without mutual trust established. If you understand the risks, you can turn off authentication for testing purposes.
7096

@@ -73,14 +99,19 @@ You can optionally configure an asset endpoint profile for the OPC PLC to run wi
7399
74100
To allow your asset endpoint profile to connect to any OPC PLC server without establishing mutual trust, use the `additionalConfiguration` setting to change the `AssetEndpointProfile` for OPC UA.
75101
76-
Configure the setting as shown in the following example JSON code:
102+
Patch the asset endpoint with `autoAcceptUntrustedServerCertificates=true`:
77103
78-
```json
79-
"security": {
80-
"autoAcceptUntrustedServerCertificates": true
81-
}
104+
```bash
105+
ENDPOINT_NAME=<name-of-you-endpoint-here>
106+
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
107+
-n azure-iot-operations \
108+
--type=merge \
109+
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
82110
```
83111
112+
> [!WARNING]
113+
> Don't use untrusted certificates in production environments.
114+
84115
## Related content
85116

86117
- [Autodetect assets using Azure IoT Akri Preview](howto-autodetect-opcua-assets-using-akri.md)

articles/virtual-wan/route-maps-about.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ Before using Route-maps, take into consideration the following limitations:
6464
* Modifying the *Default* route is only supported when the default route is learned from on-premises or an NVA.
6565
* A prefix can be modified either by Route-maps, or by NAT, but not both.
6666
* Route-maps won't be applied to the [hub address space](virtual-wan-site-to-site-portal.md#hub).
67+
* Modifying the Default route is only supported when the default route is learned from on-Prem or an NVA.
68+
* Applying Route-Maps on NVAs in a spoke VNet is not supported.
6769

6870
## Configuration workflow
6971

@@ -157,4 +159,4 @@ For more information and steps, see [Monitor Route-maps using the Route Map dash
157159

158160
* To configure Route-maps, see [How to configure Route-maps](route-maps-how-to.md).
159161
* To monitor routes, AS Path, and BGP communities, see the
160-
[Route Map dashboard](route-maps-dashboard.md).
162+
[Route Map dashboard](route-maps-dashboard.md).
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
---
2-
author: cherylmc
3-
ms.service: vpn-gateway
4-
ms.topic: include
5-
ms.date: 12/01/2022
6-
ms.author: cherylmc
2+
author: cherylmc
3+
ms.service: vpn-gateway
4+
ms.topic: include
5+
ms.date: 03/20/2024
6+
ms.author: cherylmc
77
---
88

99
1. In the Azure portal, go to the virtual network gateway for the virtual network to which you want to connect.
1010
1. On the virtual network gateway page, select **Point-to-site configuration** to open the Point-to-site configuration page.
11-
1. At the top of the **Point-to-site configuration** page, select **Download VPN client**. This doesn't download VPN client software, it generates the configuration package used to configure VPN clients. It takes a few minutes for the client configuration package to generate. During this time, you may not see any indications until the packet has generated.
11+
1. At the top of the **Point-to-site configuration** page, select **Download VPN client**. This doesn't download VPN client software, it generates the configuration package used to configure VPN clients. It takes a few minutes for the client configuration package to generate. During this time, you might not see any indications until the packet generates.
1212

1313
:::image type="content" source="./media/vpn-gateway-generate-profile-portal/download-configuration.png" alt-text="Screenshot of Point-to-site configuration page." lightbox="./media/vpn-gateway-generate-profile-portal/download-configuration.png":::
1414

15-
1. Once the configuration package has been generated, your browser indicates that a client configuration zip file is available. It's named the same name as your gateway. Unzip the file to view the folders.
15+
1. Once the configuration package is generated, your browser indicates that a client configuration zip file is available. It's named the same name as your gateway.
16+
1. Unzip the file to view the folders. You'll use some, or all, of these files to configure your VPN client. The files that are generated correspond to the authentication and tunnel type settings that you configured on the P2S server.

0 commit comments

Comments
 (0)