Membuat perwakilan layanan Azure dengan Microsoft Azure PowerShell

Alat otomatis yang menggunakan layanan Azure harus selalu memiliki izin terbatas untuk memastikan bahwa sumber daya Azure aman. Oleh karena itu, alih-alih memiliki aplikasi yang masuk sebagai pengguna dengan hak istimewa penuh, Azure menawarkan perwakilan layanan. Perwakilan layanan Azure adalah identitas yang dibuat untuk digunakan dengan aplikasi, layanan yang dihosting, dan alat otomatis. Identitas ini digunakan untuk mengakses sumber daya.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat perwakilan layanan
  • Masuk menggunakan perwakilan layanan dan kata sandi
  • Masuk menggunakan perwakilan layanan dan sertifikat
  • Kelola peran perwakilan layanan
  • Membuat sumber daya Azure menggunakan perwakilan layanan
  • Mereset kredensial perwakilan layanan

Prasyarat

  • Dalam langganan, Anda harus memiliki User Access Administrator atau Role Based Access Control Administrator izin, atau yang lebih tinggi, untuk membuat perwakilan layanan. Untuk daftar peran yang tersedia untuk kontrol akses berbasis peran Azure (Azure RBAC), lihat Peran bawaan Azure.

Membuat perwakilan layanan

Gunakan perintah referensi Azure CLI az ad sp create-for-rbac untuk membuat perwakilan layanan. Contoh ini tidak menentukan --name parameter, sehingga nama yang berisi stempel waktu dibuat secara otomatis.

az ad sp create-for-rbac

Konsol output:

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

Jika Anda tidak mematuhi konvensi penamaan sumber daya dan berencana untuk membuat peran dan cakupan untuk perwakilan layanan baru Anda nanti, az ad sp create-for-rbac perintah tanpa parameter adalah solusi yang dapat diterima. Namun, tanpa peran dan cakupan, perwakilan layanan baru tidak memiliki akses ke sumber daya. Itu hanya ada.

Saat Anda membuat perwakilan layanan tanpa parameter, selesaikan juga langkah-langkah berikut:

  • Rekam kata sandi yang ditetapkan sistem karena Anda tidak dapat mengambilnya lagi. Jika Anda kehilangan kata sandi, atur ulang menggunakan az ad sp credential reset seperti yang dijelaskan dalam Mengatur ulang kredensial perwakilan layanan.
  • Atur penetapan peran untuk perwakilan layanan baru Anda dengan menggunakan buat penetapan peran az seperti yang dijelaskan dalam Mengelola peran perwakilan layanan.

Membuat perwakilan layanan dengan peran dan cakupan

Sebagai praktik terbaik, selalu tetapkan perwakilan layanan tertentu --role dan --scopes saat Anda membuat perwakilan layanan. Ikuti langkah-langkah ini:

  1. Tentukan peran yang benar.

    Saat menentukan peran, selalu gunakan prinsip hak istimewa paling sedikit. Misalnya, jangan berikan izin perwakilan contributor layanan Anda ke langganan jika perwakilan layanan hanya perlu mengakses penyimpanan Azure dalam grup sumber daya. Pertimbangkan peran khusus seperti kontributor data blob penyimpanan. Untuk daftar lengkap peran yang tersedia di Azure RBAC, lihat Peran bawaan Azure.

  2. Dapatkan nilai untuk parameter cakupan.

    Temukan dan salin ID Sumber Daya sumber daya Azure yang perlu diakses oleh perwakilan layanan baru. Informasi ini biasanya ditemukan di halaman Properti atau Titik Akhir portal Azure dari setiap sumber daya. Berikut adalah contoh umum--scopes, tetapi bergantung pada ID Sumber Daya Anda untuk format dan nilai aktual.

    Scope Contoh
    Langganan /subscriptions/mySubscriptionID
    Grup sumber daya /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
    Komputer virtual /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
    Layanan file akun penyimpanan /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
    pabrik data /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName

    Untuk contoh cakupan lainnya, lihat Memahami cakupan untuk Azure RBAC.

  3. Buat perwakilan layanan.

    Dalam contoh ini, perwakilan layanan baru bernama myServicePrincipalName1 dibuat dengan izin pembaca ke semua sumber daya dalam grup sumber daya RG1.

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

    Parameter --scopes menerima daftar cakupan yang dibatasi spasi. Dalam contoh ini, perwakilan layanan baru bernama myServicePrincipalName2 dibuat dengan izin pembaca ke semua sumber daya dalam grup sumber daya myRG1. Perwakilan layanan ini juga diberikan izin pembaca ke myVM yang terletak di myRG2.

    # 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
    

Jika Anda memutuskan bahwa Anda memberikan terlalu sedikit atau terlalu banyak izin ke perwakilan layanan baru Anda, ubah izin dengan mengelola peran perwakilan layanan.

Membuat perwakilan layanan menggunakan variabel

Anda juga dapat membuat perwakilan layanan menggunakan variabel:

# 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

Untuk daftar lengkap properti perwakilan layanan, gunakan daftar az ad sp dan lihat Mendapatkan perwakilan layanan yang sudah ada.

Peringatan

Saat Anda membuat perwakilan layanan Azure menggunakan perintah az ad sp create-for-rbac, output akan menyertakan info masuk yang harus dilindungi. Pastikan Anda tidak menyertakan info masuk ini dalam kode atau memasukkan info masuk ke dalam kontrol sumber Anda. Sebagai alternatif, pertimbangkan untuk menggunakan identitas terkelola jika tersedia untuk mencegah penggunaan info masuk.

Langkah berikutnya

Sekarang setelah Anda mempelajari cara membuat perwakilan layanan Azure, lanjutkan ke langkah berikutnya untuk mempelajari cara menggunakan perwakilan layanan dengan autentikasi berbasis kata sandi.