Membuat perwakilan layanan Azure dengan Azure CLI
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
atauRole 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.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di 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 login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
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.
Catatan
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 perwakilan layanan.
Dalam direktori ID Microsoft Entra tempat pengaturan pengguna 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
- Admin 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 data blob penyimpanan. 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 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.Cakupan 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.
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.