Aracılığıyla paylaş


Yönetilen Kimlikleri Kullanma

Azure AD Yönetilen Kimlikler, Azure CycleCloud'un aboneliğinizdeki kümeleri yönetmesine izin vermek için kullanılabilir (Hizmet Sorumlusu kullanmaya 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 birçok çağrıyı otomatikleştirir. Bu otomasyon, CycleCloud'a belirli izinlerin verilmesini gerektirir. Bu erişim, Hizmet Sorumlusu yapılandırılarak veya CycleCloud VM'sine Yönetilen Kimlik atanarak CycleCloud'a verilebilir.

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

Yönetilen Kimlik atanmış bir Azure VM'ye Azure CycleCloud yüklendiğinde , Bulut Sağlayıcısı Hesabı Oluştur iletişim kutusu biraz farklı davranır. Yönetilen Kimlik için yeni bir onay kutusu olacaktır ve Abonelik Kimliği, konak VM aboneliğiyle önceden doldurulur.

Abonelik Yönetilen Kimlikleri Ekleme

Abonelik Yönetilen Kimlikleri Ekleme

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 mükemmel bir şekilde 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 seçenek (yeterli erişim haklarına sahip), Aboneliğin Katkıda Bulunan Rolünü CycleCloud VM'sine System-Assigned Yönetilen Kimlik olarak atamaktır. Ancak Katkıda Bulunan Rolü, CycleCloud'un gerektirdiğinden daha yüksek bir ayrıcalık düzeyine sahiptir. Özel bir Rol oluşturulabilir ve VM'ye atanabilir.

CycleCloud özelliklerinin çoğu için yeterli bir ilke aşağıda yayınlanır.

{
    "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.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/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"
}

Önemli

Özel rol kullanımı için Azure AD Premium P1 lisansı gerekir. Gereksinimlerinize uygun lisansı bulmak için bkz. Ücretsiz, Temel ve Premium sürümlerin genel kullanıma sunulan özelliklerini karşılaştırma.

İsteğe Bağlı İzinler

CycleCloud'un kümeler içinde oluşturduğu VM'lere Yönetilen Kimlikler atamasını etkinleştirmek için aşağıdakileri "actions"ekleyin:

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

CycleCloud'un küme başına Kaynak Grupları oluşturup yönetmesini etkinleştirmek için (ilke tarafından izin veriliyorsa önerilir), aşağıdakileri "actions"ekleyin:

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

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 kapsamlı 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 atanır ve kapsamı kimliğin kapsamına eklenir ve bir VM ile kullanılabilir.

Yönetilen Kimlikli 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ümenin iş yükünü çalıştırmak için Azure Depolama, Key Vault veya Azure Container Registries'e erişmesi gerekir. Küme yapılandırması aracılığıyla düğüme gizli dizileri/kimlik bilgilerini geçirmek yerine Kullanıcı Tarafından Atanan Yönetilen Kimlik kullanılarak gerekli erişim kimlik bilgilerinin geçirilmesi kesinlikle önerilir.

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