Aracılığıyla paylaş


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ı yerine hizmet ilkeleri 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, bir hizmet sorumlusu oluşturmak için User Access Administrator veya Role Based Access Control Administrator izinlerine veya daha yüksek izinlere sahip olmanız gerekir. Azure rol tabanlı erişim denetimi (Azure RBAC) için kullanılabilen rollerin listesi için bkz . Azure yerleşik rolleri.

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:

Uyarı

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

Microsoft Entra ID dizininde "Kullanıcılar uygulama kaydedebilir" ayarının Hayır olarak ayarlandığı bir durumda, aşağıdaki Microsoft Entra ID yerleşik rollerinden birinin üyesi olmalısınız (şu eylemi içermelidir: 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 ilkesi oluşturun

En iyi yöntem olarak, hizmet sorumlusu oluşturduğunuzda her zaman belirli bir --role ve --scopes 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
    Depolama hesabı dosya hizmeti /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 listesini almak için az ad sp list komutunu kullanın ve Mevcut bir hizmet sorumlusunu alın.

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.