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