Azure CLI kullanarak Azure VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma

Azure kaynakları için yönetilen kimlikler, Microsoft Entra Id'nin bir özelliğidir. Azure kaynakları için yönetilen kimlikleri destekleyen Azure hizmetlerinin her biri kendi zaman çizelgesine tabidir. Başlamadan önce kaynağınıza yönelik yönetilen kimliklerin kullanılabilirlik durumunu ve bilinen sorunları gözden geçirdiğinizden emin olun.

Azure kaynakları için yönetilen kimlikler, Azure hizmetlerine Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Kodunuzda kimlik bilgileri olmadan Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için bu kimliği kullanabilirsiniz.

Bu makalede, Azure CLI'yı kullanarak azure vm'sinde Azure kaynakları işlemleri için aşağıdaki yönetilen kimlikleri gerçekleştirmeyi öğreneceksiniz:

  • Azure VM'de sistem tarafından atanan yönetilen kimliği etkinleştirme ve devre dışı bırakma
  • Azure VM'de kullanıcı tarafından atanan yönetilen kimliği ekleme ve kaldırma

Henüz bir Azure hesabınız yoksa, devam etmeden önce ücretsiz bir hesaba kaydolun.

Ön koşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Sistem tarafından atanan yönetilen kimlik

Bu bölümde, Azure CLI kullanarak Bir Azure VM'de sistem tarafından atanan yönetilen kimliği etkinleştirmeyi ve devre dışı bırakmayı öğreneceksiniz.

Azure VM oluşturulurken sistem tarafından atanan yönetilen kimliği etkinleştirme

Sistem tarafından atanan yönetilen kimliğin etkinleştirildiği bir Azure VM oluşturmak için hesabınızın Sanal Makine Katılımcısı rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.

  1. VM'nizin ve onunla ilgili kaynakların kapsaması ve dağıtımı için, az group create komutunu kullanarak bir kaynak grubu oluşturun. Bunun yerine kullanmak istediğiniz bir kaynak grubunuz varsa, bu adımı atlayabilirsiniz:

    az group create --name myResourceGroup --location westus
    
  2. az vm create kullanarak VM oluşturun. Aşağıdaki örnek, belirtilen ve --scopeparametresi tarafından --assign-identity istendiği gibi sistem tarafından atanan yönetilen kimliğe sahip --role myVM adlı bir VM oluşturur. --admin-username ve --admin-password parametreleri, sanal makinede oturum açmak için yönetici hesabının kullanıcı adı ve parolasını belirtir. Bu değerleri ortamınıza uyacak şekilde güncelleştirin:

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

Mevcut Bir Azure VM'de sistem tarafından atanan yönetilen kimliği etkinleştirme

Vm'de sistem tarafından atanan yönetilen kimliği etkinleştirmek için hesabınıza Sanal Makine Katılımcısı rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.

  1. Azure CLI'yi yerel bir konsolda kullanıyorsanız, önce az login kullanarak Azure'da oturum açın. VM'yi içeren Azure aboneliğiyle ilişkilendirilmiş bir hesap kullanın.

    az login
    
  2. Az vm identity assign komutunu kullanarak identity assign mevcut bir VM'ye sistem tarafından atanan kimliği etkinleştirin:

    az vm identity assign -g myResourceGroup -n myVm
    

Azure VM'den sistem tarafından atanan kimliği devre dışı bırakma

Vm'de sistem tarafından atanan yönetilen kimliği devre dışı bırakmak için hesabınıza Sanal Makine Katılımcısı rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.

Artık sistem tarafından atanan kimliğe ihtiyacı olmayan ancak yine de kullanıcı tarafından atanan kimliklere ihtiyaç duyan bir Sanal Makineniz varsa aşağıdaki komutu kullanın:

az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

Artık sistem tarafından atanan kimliğe ihtiyacı olmayan ve kullanıcı tarafından atanan kimlikleri olmayan bir sanal makineniz varsa aşağıdaki komutu kullanın:

Dekont

Değer none büyük/küçük harfe duyarlıdır. Küçük harfle yazılmalıdır.

az vm update -n myVM -g myResourceGroup --set identity.type="none"

Kullanıcı tarafından atanan yönetilen kimlik

Bu bölümde, Azure CLI kullanarak Azure VM'de kullanıcı tarafından atanan yönetilen kimliği eklemeyi ve kaldırmayı öğreneceksiniz. Kullanıcı tarafından atanan yönetilen kimliğinizi VM'nizden farklı bir RG'de oluşturursanız. Vm'nize atamak için yönetilen kimliğinizin URL'sini kullanmanız gerekir. Örnek:

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

Azure VM oluşturulurken kullanıcı tarafından atanan yönetilen kimlik atama

Oluşturma sırasında vm'ye kullanıcı tarafından atanan bir kimlik atamak için hesabınızın Sanal Makine Katkıda Bulunanı ve Yönetilen Kimlik Operatörü rol atamalarına ihtiyacı vardır. Başka Microsoft Entra dizin rolü ataması gerekmez.

  1. Kullanmak istediğiniz bir kaynak grubunuz varsa bu adımı atlayabilirsiniz. az group create komutunu kullanarak kullanıcı tarafından atanan yönetilen kimliğinizin kapsaması ve dağıtımı için bir kaynak grubu oluşturun. <RESOURCE GROUP> ve <LOCATION> parametre değerlerini kendi değerlerinizle değiştirmeyi unutmayın. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. Kullanıcı tarafından atanan yönetilen kimliği oluşturmak için az identity create kullanın. -g parametresi kullanıcı tarafından atanan yönetilen kimliğin oluşturulduğu kaynak grubunu belirtirken, -n parametresi de bunun adını belirtir.

    Önemli

    Kullanıcı tarafından atanan yönetilen kimlikler oluşturduğunuzda yalnızca alfasayısal karakterler (0-9, a-z ve A-Z) ve kısa çizgi (-) desteklenir. Bir sanal makineye veya sanal makine ölçek kümesine atamanın düzgün çalışması için ad 24 karakterle sınırlıdır. Daha fazla bilgi için bkz. SSS ve bilinen sorunlar.

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    Yanıt, aşağıdakine benzer şekilde, oluşturulan kullanıcı tarafından atanan yönetilen kimliğin ayrıntılarını içerir. Kullanıcı tarafından atanan yönetilen kimliğe atanan kaynak kimliği değeri aşağıdaki adımda kullanılır.

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. az vm create kullanarak VM oluşturun. Aşağıdaki örnek, parametresi tarafından --assign-identity belirtilen yeni kullanıcı tarafından atanan kimlikle ilişkilendirilmiş ve --scopeile --role ilişkilendirilmiş bir VM oluşturur. , , <VM NAME>, , <USER NAME>, <PASSWORD>, <ROLE><USER ASSIGNED IDENTITY NAME>ve <SUBSCRIPTION> parametre değerlerini kendi değerlerinizle değiştirmeyi <RESOURCE GROUP>unutmayın.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

Mevcut Azure VM'sine kullanıcı tarafından atanan yönetilen kimlik atama

Vm'ye kullanıcı tarafından atanan bir kimlik atamak için hesabınıza Sanal Makine Katkıda Bulunanı ve Yönetilen Kimlik Operatörü rol atamaları gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.

  1. Kullanıcı tarafından atanan kimliği oluşturmak için az identity create kullanın. -g parametresi, kullanıcı tarafından atanan kimliğin oluşturulduğu kaynak grubunu, parametresi ise -n adını belirtir. <RESOURCE GROUP> ve <USER ASSIGNED IDENTITY NAME> parametre değerlerini kendi değerlerinizle değiştirmeyi unutmayın:

    Önemli

    Addaki özel karakterlerle (ör. alt çizgi) kullanıcı tarafından atanan yönetilen kimliklerin oluşturulması şu anda desteklenmemektedir. Lütfen alfasayısal karakterler kullanın. Güncelleştirmeler için sonra yeniden denetleyin. Daha fazla bilgi için bkz . SSS ve bilinen sorunlar

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    Yanıt, aşağıdakine benzer şekilde, oluşturulan kullanıcı tarafından atanan yönetilen kimliğin ayrıntılarını içerir.

    {
      "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. az vm identity assign komutunu kullanarak vm'nize kullanıcı tarafından atanan kimliği atayın. <RESOURCE GROUP> ve <VM NAME> parametre değerlerini kendi değerlerinizle değiştirmeyi unutmayın. <USER ASSIGNED IDENTITY NAME>, önceki adımda oluşturulduğu gibi kullanıcı tarafından atanan yönetilen kimliğin kaynak name özelliğidir. Kullanıcı tarafından atanan yönetilen kimliğinizi VM'nizden farklı bir RG'de oluşturduysanız. Yönetilen kimliğinizin URL'sini kullanmanız gerekir.

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

Azure VM'den kullanıcı tarafından atanan yönetilen kimliği kaldırma

Vm'ye kullanıcı tarafından atanan bir kimliği kaldırmak için hesabınıza Sanal Makine Katılımcısı rol ataması gerekir.

Sanal makineye atanan tek kullanıcı tarafından atanan yönetilen kimlik buysa, UserAssigned kimlik türü değerinden kaldırılır. <RESOURCE GROUP> ve <VM NAME> parametre değerlerini kendi değerlerinizle değiştirmeyi unutmayın. <USER ASSIGNED IDENTITY>, kullanıcı tarafından atanan kimliğin name özelliğidir ve bunu kullanarak az vm identity showsanal makinenin kimlik bölümünde bulabilirsiniz:

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

VM'nizin sistem tarafından atanan yönetilen kimliği yoksa ve kullanıcı tarafından atanan tüm kimlikleri kaldırmak istiyorsanız aşağıdaki komutu kullanın:

Dekont

Değer none büyük/küçük harfe duyarlıdır. Küçük harfle yazılmalıdır.

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

VM'nizde hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimlikler varsa, yalnızca sistem tarafından atanan kimlikleri kullanmaya geçerek kullanıcı tarafından atanan tüm kimlikleri kaldırabilirsiniz. Aşağıdaki komutu kullanın:

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

Sonraki adımlar