Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj tożsamości zarządzanych firmy Microsoft Entra, aby przyznać usłudze Azure CycleCloud uprawnienie do zarządzania klastrami w ramach subskrypcji. Takie podejście stanowi alternatywę dla używania głównej usługi. Przypisz tożsamości zarządzane do maszyn wirtualnych CycleCloud, aby zapewnić dostęp do zasobów platformy Azure, takich jak Storage, Key Vault lub Azure Container Registries.
Uprawnienia dla maszyn wirtualnych CycleCloud z tożsamością zarządzaną
Usługa CycleCloud automatyzuje wiele wywołań usługi Azure Resource Manager w celu zarządzania klastrami HPC. Ta automatyzacja wymaga pewnych uprawnień dla aplikacji CycleCloud. Możesz przyznać usłudze CycleCloud ten dostęp, konfigurując jednostkę usługi lub przypisując tożsamość zarządzaną do maszyny wirtualnej CycleCloud.
Zalecamy użycie tożsamości zarządzanejprzypisanej przez system lubUser-Assigned w celu udzielenia tych uprawnień zamiast jednostki usługi.
Po zainstalowaniu usługi Azure CycleCloud na maszynie wirtualnej platformy Azure i przypisaniu tożsamości zarządzanej do maszyny wirtualnej okno dialogowe Dodawanie subskrypcji działa nieco inaczej. Okno dialogowe włącza i wstępnie zaznacza opcję uwierzytelniania tożsamości zarządzanej . Również wypełnia identyfikator subskrypcji subskrypcją przypisaną do hostowanej maszyny wirtualnej.
Nadal możesz wprowadzić standardowy zestaw poświadczeń, wybierając opcję Uwierzytelnianie rejestracji aplikacji . Po wybraniu tej opcji pola standardowe będą wyświetlane w formularzu. Możesz również użyć innego identyfikatora subskrypcji; podana wartość jest tylko dla wygody.
W przypadku korzystania z tożsamości zarządzanej przypisanej przez system pozostaw pole ClientID puste. Jednak w przypadku korzystania z narzędzia CycleCloud z tożsamością zarządzaną User-Assigned, ustaw wartość ClientID na wartość ClientID określonej tożsamości zarządzanej, której chcesz użyć do orkiestracji klastra.
Dostęp do funkcji StorageLocker
Oprócz używania zarządzanej tożsamości do orkiestracji klastra na maszynie wirtualnej CycleCloud, można skonfigurować usługę CycleCloud, aby przypisała tożsamość zarządzoną przypisaną przez użytkownika do klastrów na potrzeby dostępu do konta magazynu i sejfu Locker z węzłów klastra. Takie podejście korzysta z tożsamości zarządzanej przypisanej przez użytkownika zamiast tokenów SAS pochodzących ze współdzielonego klucza dostępu konta magazynu.
Aby skonfigurować klastry do używania tożsamości zarządzanej przypisanej przez użytkownika, a nie klucza dostępu współdzielonego, utwórz dedykowaną tożsamość zarządzaną przypisaną przez użytkownika z dostępem czytelnika danych obiektu blob usługi Storage w zakresie konta magazynu. Najpierw utwórz konto magazynu i przypisaną przez użytkownika tożsamość zarządzaną w subskrypcji platformy Azure. Następnie w sekcji Konfiguracja schowka magazynowego okna dialogowego Dodawanie subskrypcji, wybierz nową tożsamość zarządzaną z listy rozwijanej Tożsamość schowka i konto magazynu z listy rozwijanej Konto magazynu.
Tworzenie roli niestandardowej i tożsamości zarządzanej dla aplikacji CycleCloud
Najprostsza opcja zapewniająca wystarczające prawa dostępu to przypisanie ról Contributor i Storage Blob Data Contributor do subskrypcji dla maszyny wirtualnej CycleCloud jako tożsamość zarządzana przypisana przez system.
Contributor Jednak rola ma wyższy poziom uprawnień niż usługa CycleCloud wymaga. Możesz utworzyć i przypisać rolę niestandardową do maszyny wirtualnej. Podobnie przypisz rolę Storage Blob Data Contributor w zakresie konta magazynowego, zamiast w zakresie subskrypcji, jeśli już utworzono konto magazynowe.
Ta rola obejmuje wszystkie funkcje usługi CycleCloud:
{
"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"
}
Pamiętaj, aby zastąpić <SubscriptionId> swoim identyfikatorem subskrypcji. Zakres tej roli można ograniczyć do subskrypcji, ale jeśli wolisz, możesz ograniczyć ją do pojedynczej grupy zasobów. Nazwa musi być unikatowa dla najemcy.
Ważne
Aby użyć roli niestandardowej, potrzebujesz licencji Microsoft Entra ID P1. Aby uzyskać więcej informacji na temat licencji, zobacz Plany i cennik firmy Microsoft Entra.
Uprawnienia opcjonalne
Jeśli konfigurujesz CycleCloud, aby używać jednej grupy zasobów dla każdego klastra, możesz usunąć następujące uprawnienia z actions:
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
Jeśli nie używasz usługi CycleCloud do przypisywania tożsamości zarządzanych maszynom wirtualnym tworzonym w klastrach, możesz usunąć następujące uprawnienia z actions.
"Microsoft.Authorization/*/read",
"Microsoft.Authorization/roleAssignments/*",
"Microsoft.Authorization/roleDefinitions/*",
Ostrzeżenie
Przyszłe wersje aplikacji CycleCloud wymagają możliwości przypisywania tożsamości zarządzanych do maszyn wirtualnych. Nie zalecamy usuwania tych uprawnień.
Tworzenie roli
Rolę można utworzyć na podstawie definicji ról przy użyciu interfejsu wiersza polecenia platformy Azure. Ta rola umożliwia utworzenie definicji roli w dzierżawcy platformy Azure. Gdy rola istnieje w dzierżawie, przypisz rolę do tożsamości z odpowiednim zakresem.
W poniższym przykładzie przedstawiono podstawowy przepływ przy użyciu interfejsu wiersza polecenia platformy Azure.
# 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>
Teraz rola niestandardowa jest przypisywana i ograniczona do tożsamości. Można go używać z maszyną wirtualną.
Przypisywanie ról do maszyn wirtualnych klastra przy użyciu tożsamości zarządzanej
Węzły klastra często potrzebują dostępu do zasobów platformy Azure. Na przykład wiele klastrów wymaga dostępu do usługi Azure Storage, Key Vault lub rejestrów kontenerów platformy Azure w celu uruchomienia obciążenia. Zdecydowanie zalecamy użycie User-Assigned Managed Identity w celu zapewnienia poświadczeń dostępu zamiast przekazywania tajnych kluczy lub poświadczeń do węzła za pośrednictwem konfiguracji klastra.
Tożsamości zarządzane przypisane przez użytkownika można skonfigurować na maszynach wirtualnych klastra za pomocą właściwości Azure.Identities node.
Azure.Identities Ustaw właściwość na rozdzielaną przecinkami listę ciągów identyfikatorów zasobów tożsamości zarządzanej:
[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
...