Aracılığıyla paylaş


Yönetilen Kimlikleri Kullanma

Azure AD Yönetilen Kimlikleri, Azure CycleCloud'un aboneliğinizdeki kümeleri yönetmesine izin vermek için kullanılabilir (Hizmet Sorumlusukullanmaya alternatif olarak). Azure kaynaklarına (Depolama, Key Vault veya Azure Container Registries gibi) erişim sağlamak için CycleCloud VM'lerine de atanabilir.

Yönetilen Kimlik ile CycleCloud VM İzinleri

CycleCloud, HPC kümelerini yönetmek amacıyla Azure Resource Manager'a yapılan birçok çağrıyı otomatikleştirir. Bu otomasyon, CycleCloud'a belirli izinler verilmesini gerektirir. Bu erişim, bir Hizmet İlkesi yapılandırılarak veya CycleCloud sanal makinesine Yönetilen Kimlik atayarak CycleCloud'a verilebilir.

Hizmet Sorumlusu yerine bu izinleri vermek için genellikle Sistem Tarafından Atanan veya User-Assigned Yönetilen Kimlik kullanılması önerilir.

Azure CycleCloud, yönetilen kimliği atanmış bir Azure VM'sine yüklendiğinde Bulut Sağlayıcısı Hesabı Oluştur iletişim kutusu biraz farklı davranır. Yeni bir Yönetilen Kimlik onay kutusu olacak ve Abonelik Kimliği, konak VM'nin aboneliği ile önceden doldurulacak.

Abonelik Yönetilen Kimlikler Ekle

Abonelikle Yönetilen Kimlikler Ekle

Yönetilen Kimlik onay kutusunun işaretini kaldırarak standart kimlik bilgileri kümesini girmek mümkündür. Bunu yaptıktan sonra, standart alanlar forma eklenir. Ayrıca,ayrı bir Abonelik Kimliği kullanmak kesinlikle kabul edilebilir; sağlanan değer yalnızca kolaylık sağlamak içindir.

CycleCloud için özel rol ve yönetilen kimlik oluşturma

En basit tercih (yeterli erişim haklarına sahipseniz), Abonelik için Katkıda Bulunan Rolünü System-Assigned Yönetilen Kimlik olarak CycleCloud VM'sine atamaktır. Ancak Katkıda Bulunan Rolü, CycleCloud'un gerektirdiğinden daha yüksek bir ayrıcalık düzeyine sahiptir. özel Rol oluşturulabilir ve VM'ye atanabilir.

Bu rol tüm CycleCloud özelliklerini kapsar:

{
    "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/*/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/read",
          "Microsoft.Storage/storageAccounts/listKeys/action",
          "Microsoft.Storage/storageAccounts/write"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "Name": "CycleCloud <SubscriptionId>",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
}

<SubscriptionId>'ı abonelik kimliğinizle değiştirdiğinizden emin olun. Rolün kapsamı bir abonelik olarak belirlenmiştir, ancak tercih edilirse tek bir kaynak grubuyla sınırlandırılabilir. Adın kiracı için benzersiz olması gerektiğini de unutmayın.

Önemli

Özel rolün kullanılması için Bir Microsoft Entra Id P1 lisansı gerekir. Gereksinimleriniz için doğru lisansı bulmak için bkz. Microsoft Entra planları ve fiyatlandırma.

İsteğe Bağlı İzinler

CycleCloud'u her küme için tek bir kaynak grubu kullanacak şekilde yapılandırıyorsanız, aşağıdakileri actions'dan çıkarabilirsiniz:

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

Yönetilen Kimlikleri, kümeler içinde oluşturduğu VM'lere atamak için CycleCloud kullanmıyorsanız, aşağıdakileri actions'dan kaldırabilirsiniz.

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

Uyarı

CycleCloud'un gelecekteki sürümleri, VM'lere Yönetilen Kimlikler atama olanağı gerektirir, bu nedenle bu izinlerin kaldırılması önerilmez.

Rol Oluşturma

Rol tanımlarından Azure CLI aracılığıyla bir rol oluşturulabilir. Azure Kiracısı içinde rol tanımı oluşturmak için bu rolü kullanın. Rol kiracıda mevcut olduğunda, rolü uygun kapsama sahip bir kimliğe atayın.

Aşağıda Azure CLI kullanan temel akış yer almaktadır.

# 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>

Artık özel rol atandı ve kimliğe yönelik olarak kapsamlandırılmıştır ve bir VM üzerinde kullanılabilir.

Yönetilen Kimlikle Küme VM'lerine Rol Atama

Küme düğümlerinin Azure Kaynaklarına erişim gerektirmesi yaygın bir durumdur. Örneğin, birçok küme iş yüklerini çalıştırmak için Azure Depolama, Key Vault veya Azure Container Registries erişimi gerektirir. Erişim kimlik bilgilerinin, küme yapılandırması yoluyla düğüme sırlar veya kimlik bilgileri vermek yerine User-Assigned Yönetilen Kimlik kullanarak geçirilmesi şiddetle tavsiye edilir.

User-Assigned Yönetilen Kimlikler, Azure.Identities düğümü özelliği kullanılarak küme VM'lerinde yapılandırılabilir. Azure.Identities özelliğinin değeri, Yönetilen Kimlik Kaynak Kimliği dizelerinin virgülle ayrılmış listesidir:

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