Identitas terkelola yang ditetapkan pengguna di Azure AD untuk Azure SQL
BERLAKU UNTUK:
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (hanya khusus kumpulan SQL)
Catatan
Identitas terkelola yang ditetapkan oleh pengguna untuk Azure SQL ada di pratinjau publik.
Azure Active Directory (AD) mendukung dua jenis identitas terkelola: Identitas terkelola yang ditetapkan sistem (SMI), dan identitas terkelola yang ditetapkan pengguna (UMI). Untuk informasi selengkapnya, lihat Jenis identitas terkelola.
Identitas terkelola yang ditetapkan sistem ditetapkan secara otomatis ke instans terkelola saat dibuat. Saat menggunakan autentikasi Azure AD dengan Azure SQL Managed Instance, identitas terkelola harus ditetapkan ke identitas server. Sebelumnya, hanya identitas terkelola yang ditetapkan sistem yang bisa ditetapkan untuk Instans Terkelola atau identitas server SQL Database. Dengan dukungan untuk identitas terkelola yang ditetapkan pengguna, UMI dapat ditetapkan ke Azure SQL Managed Instance atau Azure SQL Database sebagai instans atau identitas server. Fitur ini kini didukung untuk SQL Database.
Catatan
Artikel ini hanya berlaku untuk kumpulan SQL khusus (sebelumnya SQL DW) di server Azure SQL mandiri. Untuk informasi selengkapnya tentang identitas terkelola yang ditetapkan pengguna untuk kumpulan khusus di ruang kerja Azure Synapse, lihat Menggunakan identitas terkelola yang ditetapkan pengguna.
Keuntungan menggunakan identitas terkelola yang ditetapkan pengguna
Ada beberapa keuntungan menggunakan UMI sebagai identitas server.
- Fleksibilitas pengguna untuk membuat dan mempertahankan identitas terkelola yang ditetapkan pengguna mereka sendiri untuk penyewa tertentu. UMI bisa digunakan sebagai identitas server untuk Azure SQL. Dibandingkan SMI dengan identitas yang ditetapkan secara unik per server, dan ditetapkan oleh sistem, UMI dikelola oleh pengguna.
- Sebelumnya, peran Azure AD Pembaca Direktori diperlukan saat menggunakan SMI sebagai server atau identitas instans. Dengan diperkenalkan akses Azure AD menggunakan Microsoft Graph, pengguna yang peduli dengan pemberian izin tingkat tinggi seperti peran Pembaca Direktori ke SMI atau UMI dapat memberikan izin tingkat rendah sebagai alternatif sehingga server atau identitas instans dapat mengakses Microsoft Graph. Untuk informasi selengkapnya tentang memberikan izin Pembaca Direktori dan fungsinya, lihat Peran Pembaca Direktori di Azure Active Directory untuk Azure SQL.
- Pengguna dapat memilih UMI tertentu untuk dijadikan server atau identitas instans untuk semua SQL Database atau Instans Terkelola dalam penyewa, atau memiliki beberapa UMI yang ditetapkan ke server atau instans berbeda. Misalnya, UMI berbeda dapat digunakan di server berbeda yang mewakili fitur-fitur berbeda. Misalnya, UMI melayani enkripsi data transparan di satu server, dan UMI melayani autentikasi Azure AD di server lain.
- UMI diperlukan untuk membuat server logis Azure SQL yang dikonfigurasi dengan enkripsi data transparan (TDE) dengan kunci yang dikelola pelanggan (CMK). Untuk informasi selengkapnya, lihat Enkripsi data transparan yang dikelola pelanggan menggunakan identitas terkelola yang ditetapkan pengguna.
- Identitas terkelola yang ditetapkan pengguna terpisah dari server logis atau instans terkelola. Saat server atau instans logis dihapus, identitas terkelola yang ditetapkan sistem juga dihapus. Identitas terkelola yang ditetapkan pengguna tidak dihapus bersama server.
Catatan
Identitas instans (SMI atau UMI) harus diaktifkan untuk memungkinkan dukungan untuk autentikasi Azure AD dalam Instans Terkelola. Untuk SQL Database, mengaktifkan identitas server bersifat opsional dan hanya diperlukan jika perwakilan layanan Azure AD (aplikasi Azure AD) mengawasi pembuatan dan pengelolaan pengguna, grup, atau aplikasi Azure AD di server. Untuk informasi selengkapnya, lihat perwakilan layanan Azure Active Directory dengan Azure SQL.
Membuat identitas terkelola yang ditetapkan pengguna
Untuk informasi tentang cara membuat identitas terkelola yang ditetapkan pengguna, lihat Mengelola identitas terkelola yang ditetapkan pengguna.
Izin
Setelah UMI dibuat, beberapa izin diperlukan agar UMI dapat membaca dari Microsoft Graph sebagai identitas server. Berikan izin di bawah ini, atau berikan peran Pembaca Direktori kepada UMI. Izin ini harus diberikan sebelum memprovisikan server logis Azure SQL atau instans terkelola. Setelah izin diberikan ke UMI, izin diaktifkan untuk semua server atau instans yang dibuat dengan UMI yang ditetapkan sebagai identitas server.
Penting
Hanya Administrator Global atau Administrator Peran Istimewa yang dapat memberikan izin ini.
- User.Read.All - mengizinkan akses ke informasi pengguna Azure AD
- GroupMember.Read.All – mengizinkan akses ke informasi grup Azure AD
- Application.Read.ALL – mengizinkan akses ke informasi (aplikasi) perwakilan layanan Azure AD
Berikan izin
Berikut adalah sampel skrip PowerShell yang akan memberikan izin yang diperlukan untuk UMI atau SMI. Sampel ini akan menetapkan izin ke UMI umiservertest. Untuk menjalankan skrip, Anda harus masuk sebagai pengguna dengan peran "Administrator Global" atau "Administrator Peran Istimewa", dan memiliki izin Microsoft Graph berikut:
- Pengguna.Baca.Semua
- GroupMember.Read.All
- Application.Read.ALL
# Script to assign permissions to the UMI "umiservertest"
import-module AzureAD
$tenantId = '<tenantId>' # Your Azure AD tenant ID
Connect-AzureAD -TenantID $tenantId
# Login as a user with a "Global Administrator" or "Privileged Role Administrator" role
# Script to assign permissions to existing UMI
# The following Microsoft Graph permissions are required:
# User.Read.All
# GroupMember.Read.All
# Application.Read.ALL
# Search for Microsoft Graph
$AAD_SP = Get-AzureADServicePrincipal -SearchString "Microsoft Graph";
$AAD_SP
# Use Microsoft Graph; in this example, this is the first element $AAD_SP[0]
#Output
#ObjectId AppId DisplayName
#-------- ----- -----------
#47d73278-e43c-4cc2-a606-c500b66883ef 00000003-0000-0000-c000-000000000000 Microsoft Graph
#44e2d3f6-97c3-4bc7-9ccd-e26746638b6d 0bf30f3b-4a52-48df-9a82-234910c4a086 Microsoft Graph #Change
$MSIName = "<managedIdentity>"; # Name of your user-assigned or system-assigned managed identity
$MSI = Get-AzureADServicePrincipal -SearchString $MSIName
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found, please find your principal and copy the right object ID. Now use the syntax $MSI = Get-AzureADServicePrincipal -ObjectId <your_object_id>"
# Choose the right UMI or SMI
Exit
}
# If you have more UMIs with similar names, you have to use the proper $MSI[ ]array number
# Assign the app roles
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId[0] -Id $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId[0] -Id $AAD_AppRole.Id
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId[0] -Id $AAD_AppRole.Id
Pada langkah terakhir skrip, jika Anda memiliki lebih banyak UMIs dengan nama yang sama, Anda harus menggunakan nomor $MSI[ ]array yang tepat, misalnya, $AAD_SP.ObjectId[0].
Memeriksa izin untuk identitas kelola yang ditetapkan pengguna
Untuk memeriksa izin untuk UMI, buka portal Azure. Di sumber daya Azure Active Directory, buka Aplikasi perusahaan. Pilih Semua Aplikasi untuk Jenis aplikasi, lalu cari UMI yang dibuat.
Pilih UMI, dan masuk ke pengaturan Izin di bawah Keamanan.
Mengelola identitas terkelola untuk server atau instans
Untuk membuat server logis Azure SQL dengan identitas terkelola yang ditetapkan pengguna, lihat panduan berikut: Membuat server logis Azure SQL menggunakan identitas terkelola yang ditetapkan pengguna
Mengatur identitas terkelola di portal Azure
Untuk mengatur identitas untuk server SQL atau SQL terkelola di portal Azure:
- Buka sumber daya server SQL atau instans terkelola SQL Anda.
- Di bawah Keamanan, pilih pengaturan Identitas (pratinjau).
- Di bawah Identitas terkelola yang ditetapkan pengguna, pilih Tambahkan.
- Pilih Langganan yang diinginkan, lalu di Identitas terkelola yang ditetapkan oleh pengguna pilih identitas terkelola yang ditetapkan pengguna yang diinginkan dari langganan yang dipilih. Pilih tombol Pilih.
Membuat atau mengatur identitas terkelola menggunakan Azure CLI
Azure CLI 2.26.0 (atau yang lebih tinggi) diperlukan untuk menjalankan perintah ini dengan UMI.
Azure SQL Database
- Untuk memprovisikan server baru dengan UMI, gunakan perintah az sql server create.
- Untuk mendapatkan informasi server UMI, gunakan perintah az sql server show.
- Untuk memperbarui pengaturan server UMI, gunakan perintah az sql server update.
Instans Terkelola Azure SQL
- Untuk menyediakan instans terkelola baru dengan UMI, gunakan perintah az sql mi create.
- Untuk mendapatkan informasi instans terkelola UMI, gunakan perintah az sql server show.
- Untuk memperbarui pengaturan instans terkelola UMI, gunakan perintah az sql mi update.
Membuat atau mengatur identitas terkelola menggunakan PowerShell
Modul Az.Sql 3.4 atau lebih besar diperlukan saat menggunakan PowerShell dengan UMI.
Azure SQL Database
- Untuk memprovisikan server baru dengan UMI, gunakan perintah New-AzSqlServer.
- Untuk mendapatkan informasi server UMI, gunakan perintah Get-AzSqlServer.
- Untuk memperbarui pengaturan server UMI, gunakan perintah Set-AzSqlServer.
Instans Terkelola Azure SQL
- Untuk memprovisikan instans terkelola baru dengan UMI, gunakan perintah New-AzSqlInstance.
- Untuk mendapatkan informasi instans terkelola UMI, gunakan perintah Get-AzSqlInstance.
- Untuk mendapatkan informasi instans terkelola UMI, gunakan perintah Get-AzSqlInstance.
Membuat atau mengatur identitas terkelola menggunakan REST API
Skrip provisi REST API yang digunakan dalam Membuat server logis Azure SQL menggunakan identitas terkelola yang ditetapkan pengguna atau Membuat Azure SQL Managed Instance dengan identitas terkelola yang ditetapkan pengguna juga dapat digunakan untuk memperbarui pengaturan UMI untuk server. Jalankan ulang perintah provisi dalam panduan dengan properti identitas terkelola yang telah diperbarui yang ingin Anda perbarui.
Membuat atau mengatur identitas terkelola menggunakan templat ARM
Templat ARM yang digunakan dalam Membuat server logis Azure SQL menggunakan identitas terkelola yang ditetapkan pengguna atau Membuat Azure SQL Managed Instance dengan identitas terkelola yang ditetapkan pengguna juga dapat digunakan untuk memperbarui pengaturan UMI untuk server. Jalankan ulang perintah provisi dalam panduan dengan properti identitas terkelola yang telah diperbarui yang ingin Anda perbarui.
Catatan
Anda tidak dapat mengubah administrator atau kata sandi server SQL, atau admin Azure AD dengan menjalankan kembali perintah provisi untuk templat ARM.
Batasan dan masalah yang diketahui
- Setelah Instans Terkelola dibuat, bilah Admin Active Directory Domain Services di portal Azure menampilkan peringatan:
Managed Instance needs permissions to access Azure Active Directory. Click here to grant "Read" permissions to your Managed Instance.Jika identitas terkelola yang ditetapkan pengguna diberi izin yang sesuai seperti yang dibahas dalam Izin di atas, peringatan ini dapat diabaikan. - Jika identitas terkelola yang ditetapkan sistem atau yang ditetapkan pengguna digunakan sebagai identitas server atau instans, menghapus identitas akan mengakibatkan ketidakmampuan server atau instans untuk mengakses Microsoft Graph. Autentikasi Azure AD dan fungsi lain akan gagal. Untuk memulihkan fungsionalitas Azure AD, SMI atau UMI baru harus ditetapkan ke server dengan izin yang tepat.
- Izin untuk mengakses Microsoft Graph menggunakan UMI atau SMI hanya dapat diberikan menggunakan PowerShell. Izin ini tidak dapat diberikan menggunakan portal Azure.