Skip to content

Commit 957a1ca

Browse files
authored
Managed Identity And Locker Updates (#430)
* added updated images for account creation * typo corrections * phrasing changes for new account creation UI * added blob contributor actions to custom role example * updated managed identity and service principal pages * incorporated suggested additions
1 parent 19f9683 commit 957a1ca

10 files changed

+33
-19
lines changed

articles/cyclecloud/common-issues/node_timeout_await_bootup.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ ms.author: mirequa
1515

1616
Cyclecloud nodes use [custom script extension](/azure/virtual-machines/extensions/custom-script-linux)
1717
to install jetpack. The jetpack installer is staged into the locker during the initial node phase
18-
and downloaded by the node at start time. Cyclecloud transmits the blob url and the access key to
19-
the node via the script extension.
18+
and downloaded by the node at start time. Cyclecloud transmits the blob url and the chosen authentication
19+
method to the node via the script extension.
2020

2121
The installer is downloaded to the following location on the node:
2222

articles/cyclecloud/concepts/security-best-practices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ The [virtual network](</azure/virtual-network/virtual-networks-overview>) that c
3030

3131
We strongly recommend using at least two subnets. One for the CycleCloud installation VM and any other VMs with the same access policies, and additional subnets for the compute clusters. However, keep in mind that for large clusters, the IP range of the subnet may become a limiting factor. So, in general, the CycleCloud subnet should use a small CIDR (Classless Inter-Domain Routing) range and compute subnets should be large.
3232

33-
CycleCloud uses the Azure Resource Manager for managing clusters. To make calls to Azure Resource Manager certain permissions are granted to CycleCloud by configuring [Managed Identity](~/how-to/managed-identities.md) to CycleCloud VM. It is recommended to use either System-assigned or User-assigned Managed Identity.A system-assigned Managed Identity creates an identity in Azure AD that is tied to the lifecycle of that service instance. When that resource is deleted, the managed identity is automatically deleted. A user-assigned Managed Identity can be assigned to one or more instances of an Azure service. In this case, the managed identity is separately managed by the resources used.
33+
CycleCloud uses the Azure Resource Manager for managing clusters. To make calls to Azure Resource Manager, certain permissions are granted to CycleCloud by configuring [Managed Identity](~/how-to/managed-identities.md) on the CycleCloud VM. It is recommended to use either System-assigned or User-assigned Managed Identity. A system-assigned Managed Identity creates an identity in Azure AD that is tied to the lifecycle of that service instance. When that resource is deleted, the managed identity is automatically deleted. A user-assigned Managed Identity can be assigned to one or more instances of an Azure service. In this case, the managed identity is separately managed by the resources used.
3434

3535
## Secured Locked-down environment
3636

articles/cyclecloud/how-to/managed-identities.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Using Managed Identities
33
description: Learn how to use Managed Identities with Azure CycleCloud. Assign roles to cluster VMs with Managed Identity.
44
author: rokeptne
5-
ms.date: 02/05/2019
5+
ms.date: 01/27/2025
66
ms.author: rokeptne
77
---
88

@@ -16,21 +16,29 @@ CycleCloud automates many calls to the Azure Resource Manager for the purposes o
1616

1717
It is generally recommended to use either a [System-Assigned](/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm#system-assigned-managed-identity) or [User-Assigned Managed Identity](/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm#user-assigned-managed-identity) to grant those permissions rather than a Service Principal.
1818

19-
When Azure CycleCloud has been installed on an Azure VM with a Managed Identity assigned to it, the **Create Cloud Provider Account** dialog will behave slightly differently. There will be a new checkbox for **Managed Identity** and the **Subscription ID** will be pre-populated with the subscription of the host VM.
19+
When Azure CycleCloud has been installed on an Azure VM with a Managed Identity assigned to it, the **Add Subscription** dialog will behave slightly differently. The **Managed Identity** authentication option will be enabled and pre-selected, and the **Subscription ID** will be pre-populated with the subscription of the host VM.
2020

2121
::: moniker range="=cyclecloud-7"
2222
![Add Subscription Managed Identities](../images/version-7/create-account-managed-identity.png)
2323
::: moniker-end
2424

2525
::: moniker range=">=cyclecloud-8"
26-
![Add Subscription Managed Identities](../images/version-8/add-subscription-managed-identity.png)
26+
![Add Subscription Managed Identities](../images/version-8/add-subscription-managed-identity-8.7.png)
2727
::: moniker-end
2828

29-
It is still possible to enter the standard set of credentials by simply unchecking the **Managed Identity** checkbox. Upon doing so, the standard fields will be added to the form. Additionally, it is perfectly acceptable to use a separate **Subscription ID**; the provided value is just for convenience.
29+
It is still possible to enter the standard set of credentials by simply selecting the **App Registration** authentication option. Upon doing so, the standard fields will be added to the form. Additionally, it is perfectly acceptable to use a separate **Subscription ID**; the provided value is just for convenience.
30+
31+
When using a System Assigned Managed Identity, the ClientID field can be left blank. However, when using CycleCloud with a User-Assigned Managed Identity, the ClientID should be set to the ClientID of the specific Managed Identity intended for cluster orchestration.
32+
33+
### Storage Locker Access
34+
35+
In addition to using a Managed Identity for cluster orchestration on the CycleCloud VM, CycleCloud can also be configured to assign a User-Assigned Managed Identity to clusters for Storage Account / Locker access from cluster nodes rather than using SAS tokens derived from the Storage Account's Shared Access Key.
36+
37+
To configure clusters to use a User-Assigned Managed Identity rather than the Shared Access Key, we recommend creating a dedicated User-Assigned Managed Identity with Storage Blob Data Reader access at the Storage Account scope. First, create the Storage Account and User-Assigned Managed Identity in your Azure Subscription. Then in the Storage Locker Configuration section of the "Add Subscription" dialog, select the new Managed Identity from the Locker Identity dropdown and the Storage Account from the Storage Account dropdown.
3038

3139
### Create a custom role and managed identity for CycleCloud
3240

33-
The simplest option (with sufficient access rights) is to assign the Contributor Role for the Subscription to the CycleCloud VM as a System-Assigned Managed Identity. However, the Contributor Role has a higher privilege level than CycleCloud requires. A [custom Role](/azure/role-based-access-control/custom-roles) may be created and assigned to the VM.
41+
The simplest option (with sufficient access rights) is to assign the `Contributor` and `Storage Blob Data Contributor` roles for the Subscription to the CycleCloud VM as a System-Assigned Managed Identity. However, the `Contributor` Role has a higher privilege level than CycleCloud requires. A [custom Role](/azure/role-based-access-control/custom-roles) may be created and assigned to the VM. Similarly, the `Storage Blob Data Contributor` Role may be assigned at the Storage Account scope rather than subscription scope if the Storage Account has already been created.
3442

3543
This role covers all CycleCloud features:
3644

articles/cyclecloud/how-to/service-principals.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22
title: Using a Service Principal
33
description: How to use a Service Principal with Azure CycleCloud.
44
author: rokeptne
5-
ms.date: 02/05/2019
5+
ms.date: 01/27/2025
66
ms.author: rokeptne
77
---
88

99
# Using Service Principal
1010

11-
An Azure AD Service Principal may be used to permission Azure CycleCloud to manage clusters in your subscription (as an alternative to using a [Managed Identity](managed-identities.md)).
11+
An Azure AD Service Principal may be used to permission Azure CycleCloud to manage clusters in your subscription (as an alternative to using a [Managed Identity](managed-identities.md)).
1212

13-
## Choosing between a Service Principal and a Managed Identity
14-
15-
If CycleCloud will only manage clusters in a single subscription, then consider using a Managed Identity rather than a Service Principal.
16-
17-
However, since CycleCloud can only use a single Managed Identity, using Service Principals is required when managing clusters in multiple subscriptions or tenants.
13+
It is generally recommended to use either a [System-Assigned](/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm#system-assigned-managed-identity) or [User-Assigned Managed Identity](/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm#user-assigned-managed-identity) to grant those permissions rather than a Service Principal.
1814

1915
## Create a Service Principal
2016

@@ -45,8 +41,8 @@ However, the Contributor Role has a higher privilege level than CycleCloud requi
4541

4642
The [Managed Identity Guide](managed-identities.md) has details on creating an appropriate lower-privilege AD Role for the Service Principal.
4743

48-
To use a Service Principle to give permissions to CycleCloud, ensure that the "Manage Identity" checkbox is unchecked.
44+
To use a Service Principle to give permissions to CycleCloud, ensure that the "App Registration" radio button is selected.
4945

5046
::: moniker range=">=cyclecloud-8"
51-
![Add Subscription Managed Identities](../images/version-8/add-subscription-service-principle.png)
47+
![Add Subscription Managed Identities](../images/version-8/add-subscription-service-principle-8.7.png)
5248
::: moniker-end
50.3 KB
Loading
79.1 KB
Loading

articles/cyclecloud/includes/custom-role.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,21 @@
5050
"Microsoft.Storage/*/read",
5151
"Microsoft.Storage/checknameavailability/read",
5252
"Microsoft.Storage/register/action",
53+
"Microsoft.Storage/storageAccounts/blobServices/containers/delete",
54+
"Microsoft.Storage/storageAccounts/blobServices/containers/read",
55+
"Microsoft.Storage/storageAccounts/blobServices/containers/write",
56+
"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action",
5357
"Microsoft.Storage/storageAccounts/read",
5458
"Microsoft.Storage/storageAccounts/listKeys/action",
5559
"Microsoft.Storage/storageAccounts/write"
5660
],
57-
"dataActions": [],
61+
"dataActions": [
62+
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete",
63+
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read",
64+
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write",
65+
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action",
66+
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action"
67+
],
5868
"notActions": [],
5969
"notDataActions": []
6070
}

articles/cyclecloud/qs-install-marketplace.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ You will then need to create a CycleCloud admin user for the application server.
107107

108108
Once you have created your user, you may want to set your SSH key so that you can more easily access any Linux VMs created by CycleCloud. To add an SSH key, edit your profile by clicking on your name in the upper right hand corner of the screen.
109109

110-
You will need to set up you Azure provider account in CycleCloud. You can either use [Managed Identities](./how-to/managed-identities.md) or [Service Principals](./how-to/service-principals.md).
110+
You will need to set up your Azure provider account in CycleCloud. You can either use [Managed Identities](./how-to/managed-identities.md) or [Service Principals](./how-to/service-principals.md).
111111

112112
You should now have a running CycleCloud application that allows you to create and run clusters.
113113

0 commit comments

Comments
 (0)