Azure CLI ile Azure hizmet sorumlusu oluşturma

Azure hizmetlerini kullanan otomatik araçlar, Azure kaynaklarının güvenli olduğundan emin olmak için her zaman kısıtlanmış izinlere sahip olmalıdır. Bu nedenle Azure, uygulamaların tam ayrıcalıklı bir kullanıcı olarak oturum açmasını yerine hizmet sorumluları sunar. Azure hizmet sorumlusu, uygulamalar, barındırılan hizmetler ve otomatik araçlarla kullanılmak üzere oluşturulmuş bir kimliktir. Bu kimlik kaynaklara erişmek için kullanılır.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Hizmet sorumlusu oluşturma
  • Hizmet sorumlusu ve parola kullanarak oturum açma
  • Hizmet sorumlusu ve sertifika kullanarak oturum açma
  • Hizmet sorumlusu rollerini yönetme
  • Hizmet sorumlusu kullanarak Azure kaynağı oluşturma
  • Hizmet sorumlusu kimlik bilgilerini sıfırlama

Önkoşullar

  • Bir abonelikte, hizmet sorumlusu oluşturmak için izinlerinizin veya daha yüksek bir sürümün olması gerekir User Access Administrator Role Based Access Control Administrator . Azure rol tabanlı erişim denetimi (Azure RBAC) için kullanılabilen rollerin listesi için bkz . Azure yerleşik rolleri.
  • 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.

Hizmet sorumlusu oluşturma

Hizmet sorumlusu oluşturmak için az ad sp create-for-rbac Azure CLI reference komutunu kullanın. Bu örnekte parametre --name belirtilmez, bu nedenle zaman damgası içeren bir ad otomatik olarak oluşturulur.

az ad sp create-for-rbac

Çıkış konsolu:

{
  "appId": "myAppId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myTentantId"
}

Kaynak adlandırma kurallarına uygun değilseniz ve daha sonra yeni hizmet sorumlunuz için bir rol ve kapsam oluşturmayı planlıyorsanız, az ad sp create-for-rbac parametresiz komut kabul edilebilir bir çözümdür. Ancak, bir rol ve kapsam olmadan, yeni hizmet sorumlusunun kaynaklara erişimi yoktur. Sadece var.

Parametresiz bir hizmet sorumlusu oluşturduğunuzda şu adımları da tamamlayın:

Not

Hesabınızın hizmet sorumlusu oluşturma izni yoksa , az ad sp create-for-rbac "İşlemi tamamlamak için ayrıcalık yetersiz" hata iletisini döndürür. Hizmet sorumlusu oluşturmak için Microsoft Entra yöneticinize başvurun.

Kullanıcılar uygulamaları kaydedebilir kullanıcı ayarının Hayır olarak ayarlandığı bir Microsoft Entra ID dizininde, aşağıdaki Microsoft Entra Id yerleşik rollerinden birinin üyesi olmanız gerekir (şu eyleme sahip olmanız gerekir: microsoft.directory/applications/createAsOwner veya microsoft.directory/applications/create):

Microsoft Entra Id'deki kullanıcı ayarları hakkında daha fazla bilgi için bkz . Kimlerin uygulama oluşturabileceğini kısıtlama.

Rol ve kapsam ile hizmet sorumlusu oluşturma

En iyi yöntem olarak, her zaman belirli --role bir ve --scopes hizmet sorumlusu oluşturduğunuzda atayın. Şu adımları izleyin:

  1. Doğru rolü belirleyin.

    Rol belirlerken her zaman en az ayrıcalık ilkesini kullanın. Örneğin, hizmet sorumlusunun contributor yalnızca bir kaynak grubu içinde Azure depolamaya erişmesi gerekiyorsa, hizmet sorumlusuna abonelik için izin vermeyin. Depolama blobu veri katkıda bulunanı gibi bir uzman rolü düşünün. Azure RBAC'deki kullanılabilir rollerin tam listesi için bkz . Azure yerleşik rolleri.

  2. Scopes parametresi için bir değer alın.

    Yeni hizmet sorumlusunun erişmesi gereken Azure kaynağının Kaynak Kimliğini bulun ve kopyalayın. Bu bilgiler genellikle her kaynağın Azure portalının Özellikler veya Uç Noktalar sayfasında bulunur. Burada yaygın --scopes örnekler verilmiştir, ancak gerçek bir biçim ve değer için Kaynak Kimliğinize güvenebilirsiniz.

    Kapsam Örnek
    Abonelik /subscriptions/mySubscriptionID
    Kaynak grubu /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
    Sanal makine /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
    hesap dosya hizmetini Depolama /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
    Veri fabrikası /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName

    Diğer kapsam örnekleri için bkz . Azure RBAC kapsamını anlama.

  3. Hizmet sorumlusunu oluşturun.

    Bu örnekte, RG1 kaynak grubundaki tüm kaynaklar için okuyucu izinleriyle myServicePrincipalName1 adlı yeni bir hizmet sorumlusu oluşturulur.

    # Bash script
    az ad sp create-for-rbac --name myServicePrincipalName1 \
                             --role reader \
                             --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
    

    --scopes parametresi, boşlukla ayrılmış kapsam listesini kabul eder. Bu örnekte, myRG1 kaynak grubundaki tüm kaynaklar için okuyucu izinleriyle myServicePrincipalName2 adlı yeni bir hizmet sorumlusu oluşturulur. Bu hizmet sorumlusuna myRG2'de bulunan myVM için okuyucu izinleri de verilir.

    # Bash script
    az ad sp create-for-rbac --name myServicePrincipalName2 \
                             --role reader \
                             --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
    

Yeni hizmet sorumlunuza çok az veya çok fazla izin vermenize karar verirseniz, hizmet sorumlusu rollerini yöneterek izinleri değiştirin.

Değişkenleri kullanarak hizmet sorumlusu oluşturma

Değişkenleri kullanarak bir hizmet sorumlusu da oluşturabilirsiniz:

# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"

echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
                         --role $roleName \
                         --scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup

Hizmet sorumlusu özelliklerinin tam listesi için az ad sp list komutunu kullanın ve bkz. Mevcut hizmet sorumlusunu alma.

Uyarı

komutunu kullanarak az ad sp create-for-rbac bir Azure hizmet sorumlusu oluşturduğunuzda, çıkışta korumanız gereken kimlik bilgileri bulunur. Bu kimlik bilgilerini kodunuza eklemediğinizden emin olun veya kaynak denetiminizdeki kimlik bilgilerini denetleyin. Alternatif olarak, kimlik bilgilerini kullanma gereksinimini önlemek için varsa yönetilen kimlikleri kullanmayı göz önünde bulundurun.

Sonraki Adımlar

Azure hizmet sorumlusu oluşturmayı öğrendiğinize göre, hizmet sorumlularını parola tabanlı kimlik doğrulamasıyla kullanmayı öğrenmek için sonraki adıma geçin.