Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie von Microsoft Entra verwaltete Identitäten, um Azure CycleCloud die Berechtigung zum Verwalten von Clustern in Ihrem Abonnement zu erteilen. Dieser Ansatz dient als Alternative zur Verwendung eines Service Principal. Weisen Sie verwaltete Identitäten CycleCloud-VMs zu, um Zugriff auf Azure-Ressourcen wie Speicher, Key Vault oder Azure ContainerRegistries zu ermöglichen.
CycleCloud-VM-Berechtigungen mit verwalteter Identität
CycleCloud automatisiert viele Aufrufe an den Azure Resource Manager zum Verwalten von HPC-Clustern. Diese Automatisierung benötigt bestimmte Berechtigungen für CycleCloud. Sie können CycleCloud diesen Zugriff gewähren, indem Sie einen Dienstprinzipal einrichten oder der CycleCloud-VM eine verwaltete Identität zuweisen.
Es wird empfohlen, entweder eine vom System zugewiesene oder User-Assigned verwaltete Identität zu verwenden, um diese Berechtigungen anstelle eines Dienstprinzipals zu erteilen.
Wenn Sie Azure CycleCloud auf einem virtuellen Azure-Computer installieren und dem virtuellen Computer eine verwaltete Identität zuweisen, funktioniert das Dialogfeld " Abonnement hinzufügen " etwas anders. Das Dialogfeld aktiviert und deaktiviert die Option für die Authentifizierung der verwalteten Identität. Außerdem wird die Abonnement-ID mit dem Abonnement für die Host-VM ausgefüllt.


Sie können weiterhin den Standardsatz von Anmeldeinformationen eingeben, indem Sie die Authentifizierungsoption " App-Registrierung " auswählen. Wenn Sie diese Option auswählen, werden die Standardfelder im Formular angezeigt. Sie können auch eine andere Abonnement-ID verwenden; der bereitgestellte Wert ist nur für den Komfort vorgesehen.
Wenn Sie eine vom System zugewiesene verwaltete Identität verwenden, lassen Sie das ClientID-Feld leer. Wenn Sie CycleCloud jedoch mit einer User-Assigned managed Identity verwenden, legen Sie die ClientID auf die ClientID der gewünschten verwalteten Identität für die Cluster-Orchestrierung fest.
Speicherschließfachzugriff
Zusätzlich zur Verwendung einer verwalteten Identität für die Cluster-Orchestrierung auf der CycleCloud-VM können Sie CycleCloud so konfigurieren, dass Sie clustern eine vom Benutzer zugewiesene verwaltete Identität für Speicherkonto und Schließfachzugriff von Clusterknoten zuweisen. Bei diesem Ansatz wird die vom Benutzer zugewiesene verwaltete Identität anstelle von SAS-Token verwendet, die vom freigegebenen Zugriffsschlüssel des Speicherkontos abgeleitet wurden.
Um Cluster so zu konfigurieren, dass eine vom Benutzer zugewiesene verwaltete Identität anstelle des freigegebenen Zugriffsschlüssels verwendet wird, erstellen Sie eine dedizierte, vom Benutzer zugewiesene verwaltete Identität mit Speicher-Blob-Datenleser-Zugriff auf Speicherkontoebene. Erstellen Sie zunächst das Speicherkonto und die vom Benutzer zugewiesene verwaltete Identität in Ihrem Azure-Abonnement. Wählen Sie dann im Abschnitt "Konfiguration des Speicherschließfachs" im Dialogfeld " Abonnement hinzufügen " die neue verwaltete Identität aus der Dropdownliste "Locker Identity " und das Speicherkonto aus der Dropdownliste " Speicherkonto " aus.
Erstellen einer benutzerdefinierten Rolle und verwalteter Identität für CycleCloud
Die einfachste Option, die ausreichende Zugriffsrechte bietet, besteht darin, dem CycleCloud-virtuellen Computer die Contributor Und Storage Blob Data Contributor Rollen für das Abonnement als vom System zugewiesene verwaltete Identität zuzuweisen. Die Contributor Rolle hat jedoch eine höhere Berechtigungsstufe als CycleCloud erfordert. Sie können der VM eine benutzerdefinierte Rolle erstellen und zuweisen. Weisen Sie ebenso die Rolle Storage Blob Data Contributor im Bereich des Speicherkontos anstelle des Abonnementbereichs zu, wenn Sie das Speicherkonto bereits erstellt haben.
Diese Rolle umfasst alle CycleCloud-Features:
{
"assignableScopes": [
"/subscriptions/<SubscriptionId>"
],
"description": "CycleCloud Orchestrator Role",
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.Authorization/roleAssignments/*",
"Microsoft.Authorization/roleDefinitions/*",
"Microsoft.Commerce/RateCard/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/availabilitySets/*",
"Microsoft.Compute/disks/*",
"Microsoft.Compute/images/read",
"Microsoft.Compute/locations/usages/read",
"Microsoft.Compute/register/action",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/*",
"Microsoft.Compute/virtualMachineScaleSets/*",
"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/*",
"Microsoft.ManagedIdentity/userAssignedIdentities/*/read",
"Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action",
"Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read",
"Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write",
"Microsoft.Network/*/read",
"Microsoft.Network/locations/*/read",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/publicIPAddresses/read",
"Microsoft.Network/publicIPAddresses/write",
"Microsoft.Network/publicIPAddresses/delete",
"Microsoft.Network/publicIPAddresses/join/action",
"Microsoft.Network/register/action",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Resources/subscriptions/resourceGroups/resources/read",
"Microsoft.Resources/subscriptions/operationresults/read",
"Microsoft.Storage/*/read",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/register/action",
"Microsoft.Storage/storageAccounts/blobServices/containers/delete",
"Microsoft.Storage/storageAccounts/blobServices/containers/read",
"Microsoft.Storage/storageAccounts/blobServices/containers/write",
"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/write"
],
"dataActions": [
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action",
"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action"
],
"notActions": [],
"notDataActions": []
}
],
"Name": "CycleCloud <SubscriptionId>",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
Stellen Sie sicher, dass Sie <SubscriptionId> durch Ihre Abonnement-ID ersetzen. Sie legen diese Rolle auf ein Abonnement fest, können sie aber bei Bedarf auf eine einzelne Ressourcengruppe beschränken. Der Name muss im Mandanten eindeutig sein.
Von Bedeutung
Um eine benutzerdefinierte Rolle zu verwenden, benötigen Sie eine Microsoft Entra ID P1-Lizenz. Weitere Informationen zu Lizenzen finden Sie unter Microsoft Entra-Pläne und -Preise.
Optionale Berechtigungen
Wenn Sie CycleCloud so festlegen, dass eine einzelne Ressourcengruppe für jeden Cluster verwendet wird, können Sie die folgenden Berechtigungen von actions entfernen:
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
Wenn Sie CycleCloud nicht verwenden, um verwaltete Identitäten den virtuellen Computern zuzuweisen, die sie in Clustern erstellt, können Sie die folgenden Berechtigungen entfernen:actions
"Microsoft.Authorization/*/read",
"Microsoft.Authorization/roleAssignments/*",
"Microsoft.Authorization/roleDefinitions/*",
Warnung
Zukünftige Versionen von CycleCloud erfordern die Möglichkeit, verwaltete Identitäten VMs zuzuweisen. Es wird nicht empfohlen, diese Berechtigungen zu entfernen.
Erstellen der Rolle
Mithilfe der Azure CLI können Sie eine Rolle aus den Rollendefinitionen erstellen. Verwenden Sie diese Rolle, um eine Rollendefinition innerhalb des Azure-Mandanten zu erstellen. Wenn die Rolle im Mandanten vorhanden ist, weisen Sie sie einer Identität mit dem richtigen Geltungsbereich zu.
Das folgende Beispiel zeigt den grundlegenden Fluss mithilfe der Azure CLI.
# Create a custom role definition
az role definition create --role-definition role.json
# Create user identity
az identity create --name <name>
# Assign the custom role to the identity with proper scope
az role assignment create --role <CycleCloudRole> --assignee-object-id <identity-id> --scope <subscription>
Jetzt wird die benutzerdefinierte Rolle zugewiesen und auf die Identität beschränkt. Sie können sie mit einem virtuellen Computer verwenden.
Zuweisen von Rollen zu Cluster-VMs mit verwalteter Identität
Clusterknoten benötigen häufig Zugriff auf Azure-Ressourcen. Viele Cluster benötigen beispielsweise Zugriff auf Azure Storage, Key Vault oder Azure Container Registries, um ihre Workload auszuführen. Es wird dringend empfohlen, eine User-Assigned verwaltete Identität zu verwenden, um Zugriffsanmeldeinformationen bereitzustellen, anstatt geheime Schlüssel oder Anmeldeinformationen über die Clusterkonfiguration an den Knoten zu übergeben.
Sie können vom Benutzer zugewiesene verwaltete Identitäten auf den Cluster-VMs mithilfe der Azure.Identities Node-Eigenschaft konfigurieren. Setzen Sie die Azure.Identities Eigenschaft auf eine durch Kommas getrennte Liste von verwalteten Identitätsressourcen-ID-Zeichenfolgen fest:
[cluster sample]
...
[[node defaults]]
...
Azure.Identities = $ManagedServiceIdentity
...
[parameters Required Settings]
...
[[parameter ManagedServiceIdentity]]
ParameterType = Azure.ManagedIdentity
Label = MSI Identity
Description = The resource ID of the Managed Service Identity to apply to the nodes
...