Skip to content

Commit 9c6854f

Browse files
Merge pull request #278574 from jordlay/achurchard/permissions-and-other-misc-updates
Minor updates for improved user security practices
2 parents fc4d9f7 + a144d6d commit 9c6854f

12 files changed

+90
-55
lines changed

articles/operator-service-manager/concepts-expose-parameters-configuration-group-schema.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ The Azure CLI AOSM extension `az aosm nfd generate-config` command generates an
3232

3333
This parameter controls the parameter exposure behavior in the AOSM CLI extension.
3434

35+
>[!WARNING]
36+
> By exposing all parameters you are also exposing all your defaults. Make sure your defaults do not contain any sensitive information.
37+
3538
## Default behavior
3639

3740
`expose_all_parameters` is always set to `false` by default. The AOSM CLI:
@@ -73,7 +76,7 @@ The AOSM CLI builds an NFDV that exposes the `required` parameter in the `deploy
7376
> [!IMPORTANT]
7477
> The AOSM CLI validates that the default `values.yaml` file in the helm chart is consistent with the chart by running `helm template`. The CLI raises an error if this `helm template` command fails.
7578

76-
## Exposing all parameters
79+
## Expose all parameters
7780

7881
The Azure AOSM CLI Extension supports making all parameters configurable. The required configuration in the input file generated by `az aosm nfd generate-config` is:
7982

articles/operator-service-manager/quickstart-containerized-network-function-create-site-network-service.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ ms.service: azure-operator-service-manager
3939
|User Assigned Identity | Select **identity-for-nginx**
4040

4141

42-
:::image type="content" source="media/create-site-network-service-basic-containerized.png" alt-text="Screenshot showing the basics tab to input project, instance and identity details." lightbox="media/create-site-network-service-basic-containerized.png":::
42+
:::image type="content" source="media/create-site-network-service-basic-containerized.png" alt-text="Screenshot showing the basics tab to input project, instance, and identity details." lightbox="media/create-site-network-service-basic-containerized.png":::
4343

4444
1. Select **Next: Choose a Network Site Design >**.
4545
1. On this screen, select the **Publisher**, **Network Service Design Resource**, and the **Network Service Design Version** you published earlier.
@@ -70,10 +70,15 @@ ms.service: azure-operator-service-manager
7070
> [!TIP]
7171
> Refer to the Retrieve Custom Location section for config group value for the customlocationID. For more information, see [Quickstart: Prerequisites for Operator and Containerized Network Function (CNF)](quickstart-containerized-network-function-operator.md).
7272

73-
10. Select **Review + Create** then **Create**.
73+
1. Select **Review + Create** then **Create**.
7474
1. Allow the deployment state to reach a state of **Succeeded**. This status indicates your CNF is up and running.
7575
1. Access your CNF by navigating to the **Site Network Service Object** in the Azure portal. Select the **Current State -> Resources** to view the managed resource group created by Azure Operator Service Manager (AOSM).
7676

7777
:::image type="content" source="media/site-network-service-preview.png" alt-text="Screenshot shows an overview of the site network service created." lightbox="media/site-network-service-preview.png":::
7878

7979
You have successfully created a Site Network Service for a Nginx Container as a CNF in Azure. You can now manage and monitor your CNF through the Azure portal.
80+
81+
When you have finished, remember to delete the resources. To do this:
82+
83+
1. Delete the Operator Resource Group.
84+
1. When step 1 is complete, delete the Publisher Resource Group.

articles/operator-service-manager/quickstart-containerized-network-function-network-design.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ az aosm nsd generate-config
2828
Execution of the preceding command generates an nsd-input.jsonc file.
2929

3030
> [!NOTE]
31-
> Edit the input.json file. Replace it with the values shown in the sample. Save the file as **input-cnf-nsd.jsonc**.
31+
> Edit the input.json file. Replace it with the values shown in the sample below. Save the file as **input-cnf-nsd.jsonc**.
32+
>
33+
> If you changed the name of the publisher when publishing the NFDV, use your publisher name for both the `publisher_name` and `publisher` fields (the latter is within the `resource_element_templates` array).
34+
>
35+
> If you have used a different resource group name, update both the `publisher_resource_group_name` and `publisher_resource_group` fields (the latter is within the `resource_element_templates` array).
3236
3337
Here's a sample **input-cnf-nsd.jsonc**:
3438

@@ -123,7 +127,7 @@ To publish the NSDV and its associated artifacts, issue the following command:
123127
az aosm nsd publish --build-output-folder nsd-cli-output
124128
```
125129

126-
When the Publish process is complete, navigate to your Publisher Resource Group to observe and review the resources and artifacts that were produced.
130+
When the publish process is complete, navigate to your Publisher Resource Group to observe and review the resources and artifacts that were produced.
127131

128132
## Next steps
129133

articles/operator-service-manager/quickstart-containerized-network-function-operator.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ This quickstart contains the prerequisite tasks for Operator and Containerized N
1818
1919
## Permissions
2020

21-
In order to complete these prerequisites for Operator and Containerized Network Function, you need an Azure subscription where you have the _Contributor_ role (in order to create a Resource Group) and you need to be able to attain the _Owner_ or _User Access Administrator_ role over this Resource Group. Alternatively, you need an existing Resource Group where you have the ‘Owner’ or ‘User Access Administrator’ Role.
21+
You need an Azure subscription with an existing Resource Group over which you have the _Contributor_ role and the _User Access Administrator_ role.
2222

23-
You also need the _Owner_ or _User Access Administrator_ role in the Network Function Definition Publisher Resource Group. The Network Function Definition Publisher Resource Group was created in [Quickstart: Publish Nginx container as Containerized Network Function (CNF)](quickstart-publish-containerized-network-function-definition.md) and named nginx-publisher-rg in the input.json file.
23+
Alternatively the AOSM CLI extension can create the Resource Group for you, in which case you need the _Contributor_ role over this subscription. If you use this feature, you will need to add to your user the _User Access Administrator_ role with scope of this newly created Resource Group.
24+
25+
You also need the _User Access Administrator_ role over the Network Function Definition Publisher Resource Group. The Network Function Definition Publisher Resource Group was used in [Quickstart: Publish Nginx container as Containerized Network Function (CNF)](quickstart-publish-containerized-network-function-definition.md). Check the input-cnf-nfd.jsonc file for the Resource Group name.
2426

2527
## Set environment variables
2628

@@ -51,11 +53,8 @@ az group create -n ${resourceGroup} -l ${location}
5153

5254
## Provision Azure Kubernetes Service (AKS) cluster
5355

54-
> [!NOTE]
55-
> Ensure that `agentCount` is set to 1. Only one node is required at this time.
56-
5756
```azurecli
58-
az aks create -g ${resourceGroup} -n ${clusterName} --node-count 1 --generate-ssh-keys
57+
az aks create -g ${resourceGroup} -n ${clusterName} --node-count 3 --generate-ssh-keys
5958
```
6059

6160
## Enable Azure Arc
@@ -220,7 +219,7 @@ In prior steps, you created a Managed Identity labeled identity-for-nginx-sns in
220219

221220
1. Choose **Add Role Assignment**.
222221

223-
:::image type="content" source="media/how-to-create-user-assigned-managed-identity-operator.png" alt-text="Screenshot showing identity for nginx sns add role assignment." lightbox="media/how-to-create-user-assigned-managed-identity-operator.png":::
222+
:::image type="content" source="media/how-to-create-user-assigned-managed-identity-operator.png" alt-text="Screenshot showing identity for nginx SNS add role assignment." lightbox="media/how-to-create-user-assigned-managed-identity-operator.png":::
224223

225224
1. Select the **Managed Identity Operator** role then proceed with **Next**.
226225

articles/operator-service-manager/quickstart-containerized-network-function-prerequisites.md

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,30 +39,14 @@ az extension add --name aosm
3939

4040
## Requirements for Containerized Network Function (CNF)
4141

42+
### Install required local tools
43+
4244
For those utilizing Containerized Network Functions, it's essential to ensure that the following packages are installed on the machine from which you're executing the CLI:
4345

4446
- **Install docker**, refer to [Install the Docker Engine](https://docs.docker.com/engine/install/).
4547
- **Install Helm**, refer to [Install Helm CLI](https://helm.sh/docs/intro/install/). You must use Helm v3.8.0 or later.
4648

4749

48-
### Configure Containerized Network Function (CNF) deployment
49-
50-
For deployments of Containerized Network Functions (CNFs), it's crucial to have the following stored on the machine from which you're executing the CLI:
51-
52-
- **Helm Packages with Schema** - These packages should be present on your local storage and referenced within the `cnf-input.jsonc` configuration file. When following this quickstart, you download the required helm package.
53-
- **Creating a Sample Configuration File** - Generate an example configuration file for defining a CNF deployment. Issue this command to generate an `cnf-input.jsonc` file that you need to populate with your specific configuration.
54-
55-
```azurecli
56-
az aosm nfd generate-config --definition-type cnf
57-
```
58-
59-
- Your container images must be present in either:
60-
- A reference to existing Azure Container Registries that contain the images for your CNF.
61-
- A reference to other Container Registries that contain the images for your CNF.
62-
63-
> [!IMPORTANT]
64-
> Use the `docker login` command to sign in to a non-Azure container registry hosting your container images before you run any `az aosm` commands.
65-
6650
### Download sample Helm chart
6751

6852
Download the sample Helm chart from here [Sample Helm chart](https://download.microsoft.com/download/c/5/1/c512cc48-ad99-4a69-afdc-db2bda449914/nginxdemo-0.3.0.tgz) for use with this quickstart.

articles/operator-service-manager/quickstart-publish-containerized-network-function-definition.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ This quickstart describes how to use the `az aosm` Azure CLI extension to create
1616

1717
- An Azure account with an active subscription is required. If you don't have an Azure subscription, follow the instructions here [Start free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) to create an account before you begin.
1818

19-
- The Contributor and AcrPush roles over this subscription in order to create a Resource Group, or an existing Resource Group where you have the Contributor role.
20-
2119
- Complete the [Quickstart: Complete the prerequisites to deploy a Containerized Network Function in Azure Operator Service Manager](quickstart-containerized-network-function-prerequisites.md).
2220

21+
- An existing Resource Group where you have the Contributor role, or the Contributor role over this subscription so that the AOSM CLI extension can create the resource group.
22+
2323
## Create input file
2424

2525
Create an input file for publishing the Network Function Definition. Execute the following command to generate the input configuration file for the Network Function Definition (NFD).
@@ -32,8 +32,14 @@ Execution of the preceding command generates an cnf-input.jsonc file.
3232

3333
> [!NOTE]
3434
> Edit the cnf-input.jsonc file. Replace it with the values shown in the following sample. Save the file as **input-cnf-nfd.jsonc**.
35-
> [!NOTE]
36-
> You can use multiple Container Registries as sources for your images in the AOSM CLI. The images to be copied from these Registries are populated automatically based on the helm package schema. To configure these source Registries, fill in `image_sources` list in the cnf-input.jsonc file. When using ACRs, you must have Reader/AcrPull permissions. When using other private Registries, you must run `docker login` to authenticate with all non-ACR Registries before running the `az aosm nfd build` command. In this quickstart we use `docker.io` as the image source Registry. This is a public Registry and does not require authentication.
35+
>
36+
> If you are using an existing resource group, change the `publisher_resource_group_name` field to match it.
37+
38+
> [!TIP]
39+
> You can use multiple container registries as sources for your images in the AOSM CLI. The images to be copied from these registries are selected automatically based on the helm package schema. The source registries are configured in the `image_sources` list of the cnf-input.jsonc file.
40+
>
41+
>When using ACRs, you must have the Reader and AcrPull roles on the ACR. When using non-ACR registries, you must run `docker login` to authenticate with each private registry before running the `az aosm nfd build` command.
42+
> **In this quickstart we use `docker.io` as the image source registry. This is a *public* registry and does not require authentication.**
3743
3844
Here's sample input-cnf-nfd.jsonc file:
3945

@@ -45,7 +51,7 @@ Here's sample input-cnf-nfd.jsonc file:
4551
// Will be created if it does not exist.
4652
"publisher_name": "nginx-publisher",
4753
// Resource group for the Publisher resource.
48-
// You should create this before running the publish command
54+
// Will be created if it does not exist.
4955
"publisher_resource_group_name": "nginx-publisher-rg",
5056
// Name of the ACR Artifact Store resource.
5157
// Will be created if it does not exist.
@@ -63,9 +69,8 @@ Here's sample input-cnf-nfd.jsonc file:
6369
"helm_packages": [
6470
{
6571
"name": "nginxdemo",
66-
"path_to_chart": "nginxdemo-0.1.0.tgz",
67-
"default_values": "",
68-
"depends_on": []
72+
"path_to_chart": "nginxdemo-0.3.0.tgz",
73+
"default_values": ""
6974
}
7075
]
7176
}
@@ -110,6 +115,13 @@ Execute the following command to publish the Network Function Definition (NFD) a
110115
> [!NOTE]
111116
> If you are using Windows, you must have Docker Desktop running during the publish step.
112117
118+
> [!NOTE]
119+
> Publisher names must be unique within a region. It is quite likely that the 'nginx-publisher' defined in the example config file already exists.
120+
>
121+
>If you get an error saying "**A private publisher resource with the name 'nginx-publisher' already exists in the provided region**", edit the `publisher_name` field in the config file so that it is unique (e.g. add a random string suffix), re-run the `build` command (above), and then re-run this `publish` command.
122+
>
123+
>If you go on to create a network service design, you will need to use this new pubilsher name in the `resource_element_templates` array.
124+
113125
```azurecli
114126
az aosm nfd publish -b cnf-cli-output --definition-type cnf
115127
```

articles/operator-service-manager/quickstart-publish-virtualized-network-function-definition.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ This quickstart describes how to use the `az aosm` Azure CLI extension to create
1616

1717
- An Azure account with an active subscription is required. If you don't have an Azure subscription, follow the instructions here [Start free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) to create an account before you begin.
1818

19-
- The Contributor role over this subscription in order to create a Resource Group, or an existing Resource Group where you have the Contributor role.
19+
- Complete the [Quickstart: Complete the prerequisites to deploy a Virtualized Network Function in Azure Operator Service Manager](quickstart-virtualized-network-function-prerequisites.md)
2020

21-
- It's also assumed that you followed the prerequisites in [Quickstart: Complete the prerequisites to deploy a Virtualized Network Function in Azure Operator Service Manager](quickstart-virtualized-network-function-prerequisites.md)
21+
- An existing Resource Group where you have the Contributor role, or the Contributor role over this subscription so that the AOSM CLI extension can create the resource group.
2222

2323
## Create input file
2424

@@ -32,6 +32,8 @@ Once you execute this command, a vnf-input.jsonc file is generated.
3232

3333
> [!NOTE]
3434
> Edit the vnf-input.jsonc file, replacing it with the values shown in the sample. Save the file as **input-vnf-nfd.jsonc**.
35+
>
36+
> If you are using an existing resource group, change the `publisher_resource_group_name` field to match it.
3537
3638
Here is a sample input-vnf-nfd.jsonc file:
3739

@@ -155,6 +157,13 @@ These files are created in a subdirectory called **vnf-cli-output**:
155157

156158
Execute the following command to publish the Network Function Definition (NFD) and upload the associated artifacts:
157159

160+
> [!NOTE]
161+
> Publisher names must be unique within a region. It is quite likely that the 'ubuntu-publisher' defined in the example config file already exists.
162+
>
163+
>If you get an error saying "**A private publisher resource with the name 'ubuntu-publisher' already exists in the provided region**", edit the `publisher_name` field in the config file so that it is unique (e.g. add a random string suffix), re-run the `build` command (above), and then re-run this `publish` command.
164+
>
165+
>If you go on to create a network service design, you will need to use this new pubilsher name in the `resource_element_templates` array.
166+
158167
```azurecli
159168
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
160169
```

articles/operator-service-manager/quickstart-virtualized-network-function-create-site-network-service.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,8 @@ Wait for the deployment to reach the 'Succeeded' state. After completion, your V
103103
1. Select the link under **Current State -> Resources**. The link takes you to the managed resource group created by Azure Operator Service Manager.
104104

105105
Congratulations! You have successfully created a Site Network Service for Ubuntu Virtual Machine (VM) as a Virtual Network Function (VNF) in Azure. You can now manage and monitor your Virtual Network Function (VNF) through the Azure portal.
106+
107+
When you have finished, remember to delete the resources. To do this:
108+
109+
1. Delete the Operator Resource Group.
110+
1. When step 1 is complete, delete the Publisher Resource Group.

articles/operator-service-manager/quickstart-virtualized-network-function-network-design.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ An `nsd-input.jsonc` file is generated when you run this command.
3030

3131
> [!NOTE]
3232
> Edit the nsd-input.jsonc file, replacing it with the values shown in the sample. Remove the section where resource_element_type is set to ArmTemplate. This is for adding infrastructure (such as VNets) to more complicated NSDs, which is not needed in this quickstart. Save the file as **input-vnf-nsd.jsonc**.
33+
>
34+
> If you changed the name of the publisher when publishing the NFDV, use your publisher name for both the `publisher_name` and `publisher` fields (the latter is within the `resource_element_templates` array).
35+
>
36+
> If you have used a different resource group name, update both the `publisher_resource_group_name` and `publisher_resource_group` fields (the latter is within the `resource_element_templates` array).
3337
3438
```json
3539
{

0 commit comments

Comments
 (0)