Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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. Principal layanan Azure adalah identitas yang dibuat untuk digunakan dengan aplikasi, layanan yang dihosting, dan tools otomatis. Identitas ini digunakan untuk mengakses sumber daya.
Dalam tutorial ini, Anda akan belajar cara:
- Membuat "Service Principal"
- Masuk menggunakan prinsipal layanan dan kata sandi
- Masuk menggunakan perwakilan layanan dan sertifikat
- Kelola peran entitas layanan
- Membuat sumber daya Azure menggunakan prinsipal layanan
- Mengatur ulang kredensial entitas layanan
Prasyarat
- Dalam langganan, Anda harus memiliki
User Access Administrator
atauRole Based Access Control Administrator
atau izin yang lebih tinggi, untuk membuat entitas layanan. Untuk daftar peran yang tersedia untuk kontrol akses berbasis peran Azure (Azure RBAC), lihat Peran bawaan Azure.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah az login. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat diminta, instal ekstensi Azure CLI saat pertama kali digunakan. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan az version untuk menemukan versi dan pustaka dependen yang terinstal. Untuk meng-upgrade ke versi terbaru, jalankan az upgrade.
Membuat "Service Principal"
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 keluaran
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Jika Anda tidak mematuhi konvensi penamaan sumber daya dan berencana untuk membuat peran dan cakupan untuk principal layanan baru Anda nanti, perintah az ad sp create-for-rbac
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.
Nota
Jika akun Anda tidak memiliki izin untuk membuat perwakilan layanan, az ad sp create-for-rbac
mengembalikan pesan kesalahan yang berisi "Hak istimewa yang tidak memadai untuk menyelesaikan operasi". Hubungi admin Microsoft Entra Anda untuk membuat prinsipal layanan.
Dalam direktori ID Microsoft Entra di mana pengaturan Pengguna dapat mendaftarkan aplikasi telah diatur ke Tidak, Anda harus menjadi anggota salah satu peran bawaan ID Microsoft Entra berikut (yang memiliki tindakan: microsoft.directory/applications/createAsOwner
atau microsoft.directory/applications/create
):
- Pengembang Aplikasi
- Administrator Aplikasi
- Administrator Aplikasi Cloud
- Administrator Global
- Administrator Identitas Hibrid
Untuk informasi selengkapnya tentang pengaturan pengguna di ID Microsoft Entra, lihat Membatasi siapa yang dapat membuat aplikasi.
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:
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 penyimpanan blob data. Untuk daftar lengkap peran yang tersedia di Azure RBAC, lihat Peran bawaan Azure.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 portal Azure pada halaman Properti atau Titik Akhir dari setiap sumber daya. Berikut adalah contoh
--scopes
umum, tetapi bergantung pada ID Sumber Daya untuk format dan nilai aktual.Ruang Lingkup Contoh Langganan /subscriptions/mySubscriptionID
Grup sumber daya /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Mesin virtual /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Layanan berkas akun penyimpanan /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
fasilitas pemrosesan data /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Untuk contoh cakupan lainnya, lihat Memahami cakupan untuk Azure RBAC.
Buat service principal (perwakilan layanan).
Dalam contoh ini, perwakilan layanan baru bernama myServicePrincipalName1 dibuat dengan izin pembaca untuk 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 yang bernama myServicePrincipalName2 dibuat dengan izin pembaca untuk 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 entitas layanan menggunakan variabel
Anda juga dapat membuat entitas 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 az ad sp list dan lihat Dapatkan perwakilan layanan yang sudah ada.
Peringatan
Saat Anda membuat perwakilan layanan Azure menggunakan perintah az ad sp create-for-rbac
, output menyertakan kredensial yang harus Anda lindungi. Pastikan Anda tidak menyertakan kredensial ini dalam kode Anda atau periksa kredensial ke kontrol sumber Anda. Sebagai alternatif, pertimbangkan untuk menggunakan identitas terkelola jika tersedia untuk menghindari kebutuhan untuk menggunakan kredensial.
Langkah Selanjutnya
Sekarang setelah Anda mempelajari cara membuat perwakilan layanan Azure, lanjutkan ke langkah berikutnya untuk mempelajari cara menggunakan perwakilan layanan dengan autentikasi berbasis kata sandi.