Share via


Använda hanterade identiteter

Azure AD hanterade identiteter kan användas för att ge Azure CycleCloud behörighet att hantera kluster i din prenumeration (som ett alternativ till att använda tjänstens huvudnamn). De kan också tilldelas till virtuella CycleCloud-datorer för att ge åtkomst till Azure-resurser (till exempel Storage, Key Vault eller Azure Container Registries).

CycleCloud VM-behörigheter med hanterad identitet

CycleCloud automatiserar många anrop till Azure Resource Manager i syfte att hantera HPC-kluster. Den här automatiseringen kräver att vissa behörigheter beviljas CycleCloud. Den här åtkomsten kan beviljas CycleCloud genom att konfigurera ett tjänsthuvudnamn eller genom att tilldela en hanterad identitet till den virtuella CycleCloud-datorn.

Vi rekommenderar vanligtvis att du antingen använder en systemtilldelad eller användartilldelad hanterad identitet för att bevilja dessa behörigheter i stället för ett tjänsthuvudnamn.

När Azure CycleCloud har installerats på en virtuell Azure-dator med en tilldelad hanterad identitet fungerar dialogrutan Skapa molnleverantörskonto något annorlunda. Det kommer att finnas en ny kryssruta för Hanterad identitet och prenumerations-ID :t fylls i i förväg med prenumerationen på den virtuella värddatorn.

Lägga till hanterade prenumerationsidentiteter

Lägga till hanterade prenumerationsidentiteter

Det går fortfarande att ange standarduppsättningen med autentiseringsuppgifter genom att helt enkelt avmarkera kryssrutan Hanterad identitet . När du gör det läggs standardfälten till i formuläret. Dessutom är det helt acceptabelt att använda ett separat prenumerations-ID. det angivna värdet är bara för enkelhetens skull.

Skapa en anpassad roll och hanterad identitet för CycleCloud

Det enklaste alternativet (med tillräcklig åtkomstbehörighet) är att tilldela deltagarrollen för prenumerationen till den virtuella CycleCloud-datorn som en System-Assigned hanterad identitet. Deltagarrollen har dock en högre behörighetsnivå än vad CycleCloud kräver. En anpassad roll kan skapas och tilldelas till den virtuella datorn.

En tillräcklig princip för de flesta CycleCloud-funktioner publiceras nedan.

{
    "assignableScopes": [
      "/"
    ],
    "description": "CycleCloud Orchestrator Role",
    "permissions": [
      {
        "actions": [
          "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/*/assign/action",
          "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/resources/read",
          "Microsoft.Resources/subscriptions/operationresults/read",
          "Microsoft.Storage/*/read",
          "Microsoft.Storage/checknameavailability/read",
          "Microsoft.Storage/register/action",
          "Microsoft.Storage/storageAccounts/read",
          "Microsoft.Storage/storageAccounts/listKeys/action",
          "Microsoft.Storage/storageAccounts/write"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "Name": "CycleCloud",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
}

Viktigt

Användning av en anpassad roll kräver en Azure AD Premium P1 licens. Information om hur du hittar rätt licens för dina krav finns i Jämföra allmänt tillgängliga funktioner i utgåvorna Kostnadsfri, Basic och Premium.

Valfria behörigheter

Om du vill aktivera CycleCloud för att tilldela hanterade identiteter till virtuella datorer som skapas i kluster lägger du till följande "actions":

          "Microsoft.Authorization/*/read",
          "Microsoft.Authorization/roleAssignments/*",
          "Microsoft.Authorization/roleDefinitions/*",

Om du vill aktivera CycleCloud för att skapa och hantera resursgrupper per kluster (rekommenderas, om det tillåts av en princip), lägger du till följande "actions":

          "Microsoft.Resources/subscriptions/resourceGroups/read",
          "Microsoft.Resources/subscriptions/resourceGroups/write",
          "Microsoft.Resources/subscriptions/resourceGroups/delete",

Skapa rollen

En roll kan skapas från rolldefinitionerna via Azure CLI . Använd den här rollen för att skapa en rolldefinition i Azure-klientorganisationen. När rollen finns i klientorganisationen tilldelar du rollen till en identitet med rätt omfång.

Nedan visas det grundläggande flödet med hjälp av 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>

Nu tilldelas och begränsas den anpassade rollen till identiteten och kan användas med en virtuell dator.

Tilldela roller till virtuella klusterdatorer med hanterad identitet

Det är vanligt att klusternoder behöver åtkomst till Azure-resurser. Många kluster behöver till exempel åtkomst till Azure Storage, Key Vault eller Azure Container Registries för att köra sin arbetsbelastning. Vi rekommenderar starkt att du skickar de autentiseringsuppgifter för åtkomst som krävs med hjälp av en användartilldelad hanterad identitet i stället för att skicka hemligheter/autentiseringsuppgifter till noden via klusterkonfigurationen.

User-Assigned hanterade identiteter kan konfigureras på klustrets virtuella datorer med hjälp av nodegenskapen Azure.Identities . Värdet för Azure.Identities egenskapen är en kommaavgränsad lista över resurs-ID-strängar för hanterad identitet:

[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
...