Mengotorisasi akses ke blob menggunakan ID Microsoft Entra
Azure Storage mendukung penggunaan ID Microsoft Entra untuk mengotorisasi permintaan ke data blob. Dengan MICROSOFT Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan, yang mungkin merupakan pengguna, grup, atau perwakilan layanan aplikasi. Prinsip keamanan diautentikasi oleh MICROSOFT Entra ID untuk mengembalikan token OAuth 2.0. Token kemudian dapat digunakan untuk mengotorisasi permintaan terhadap Blob service.
Otorisasi dengan ID Microsoft Entra tersedia untuk semua akun penyimpanan tujuan umum dan Blob di semua wilayah publik dan cloud nasional. Hanya akun penyimpanan yang dibuat dengan model penyebaran Azure Resource Manager yang mendukung otorisasi Microsoft Entra.
Penting
Untuk keamanan yang optimal, Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan terhadap data blob, antrean, dan tabel, jika memungkinkan. Otorisasi dengan ID Microsoft Entra dan identitas terkelola memberikan keamanan yang unggul dan kemudahan penggunaan melalui otorisasi Kunci Bersama. Untuk mempelajari selengkapnya tentang identitas terkelola, lihat Apa itu identitas terkelola untuk sumber daya Azure. Untuk contoh cara mengaktifkan dan menggunakan identitas terkelola untuk aplikasi .NET, lihat Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan .NET.
Untuk sumber daya yang dihosting di luar Azure, seperti aplikasi lokal, Anda dapat menggunakan identitas terkelola melalui Azure Arc. Misalnya, aplikasi yang berjalan di server dengan dukungan Azure Arc dapat menggunakan identitas terkelola untuk menyambungkan ke layanan Azure. Untuk mempelajari selengkapnya, lihat Mengautentikasi terhadap sumber daya Azure dengan server dengan dukungan Azure Arc.
Untuk skenario di mana tanda tangan akses bersama (SAS) digunakan, Microsoft merekomendasikan penggunaan SAS delegasi pengguna. SAS delegasi pengguna diamankan dengan kredensial Microsoft Entra alih-alih kunci akun. Untuk mempelajari tentang tanda tangan akses bersama, lihat Memberikan akses terbatas ke data dengan tanda tangan akses bersama. Untuk contoh cara membuat dan menggunakan SAS delegasi pengguna dengan .NET, lihat Membuat SAS delegasi pengguna untuk blob dengan .NET.
Gambaran umum ID Microsoft Entra untuk blob
Ketika prinsip keamanan (pengguna, grup, atau aplikasi) mencoba mengakses sumber daya blob, permintaan harus diotorisasi, kecuali blob tersedia untuk akses anonim. Dengan ID Microsoft Entra, akses ke sumber daya adalah proses dua langkah:
Pertama, identitas prinsipal keamanan diautentikasi, dan token OAuth 2.0 dikembalikan.
Langkah autentikasi mengharuskan permintaan aplikasi berisi token akses OAuth 2.0 pada saat runtime. Jika aplikasi dijalankan dari dalam entitas Azure seperti Azure VM, sekumpulan skala mesin virtual, atau aplikasi Azure Functions, aplikasi dapat menggunakan identitas terkelola untuk mengakses data blob.
Selanjutnya, token diteruskan sebagai bagian dari permintaan ke Blob service dan digunakan oleh layanan untuk mengotorisasi akses ke sumber daya yang ditentukan.
Langkah otorisasi mengharuskan satu atau beberapa peran RBAC Azure ditetapkan ke perwakilan keamanan yang membuat permintaan. Untuk informasi lebih lanjut, lihat Menetapkan peran Azure untuk hak akses.
Menggunakan akun Microsoft Entra dengan portal, PowerShell, atau Azure CLI
Untuk mempelajari tentang cara mengakses data di portal Azure dengan akun Microsoft Entra, lihat Akses data dari portal Azure. Untuk mempelajari cara memanggil perintah Azure PowerShell atau Azure CLI dengan akun Microsoft Entra, lihat Akses data dari PowerShell atau Azure CLI.
Menggunakan ID Microsoft Entra untuk mengotorisasi akses dalam kode aplikasi
Untuk mengotorisasi akses ke Azure Storage dengan MICROSOFT Entra ID, Anda dapat menggunakan salah satu pustaka klien berikut untuk memperoleh token OAuth 2.0:
- Pustaka klien Azure Identity direkomendasikan untuk sebagian besar skenario pengembangan.
- Microsoft Authentication Library (MSAL) mungkin cocok untuk skenario tingkat lanjut tertentu.
Pustaka klien Azure Identity
Pustaka klien Azure Identity menyederhanakan proses mendapatkan token akses OAuth 2.0 untuk otorisasi dengan ID Microsoft Entra melalui Azure SDK. Versi terbaru pustaka klien Azure Storage untuk .NET, Java, Python, JavaScript, dan Go terintegrasi dengan pustaka Azure Identity untuk setiap bahasa tersebut guna menyediakan cara yang sederhana dan aman dalam memperoleh token akses untuk otorisasi permintaan Azure Storage.
Keuntungan dari pustaka klien Azure Identity adalah memungkinkan Anda menggunakan kode yang sama untuk memperoleh token akses apakah aplikasi Anda berjalan di lingkungan pengembangan atau di Azure. Pustaka klien Azure Identity menghasilkan token akses untuk prinsipal keamanan. Ketika kode Anda berjalan di Azure, prinsipal keamanan mungkin merupakan identitas terkelola untuk sumber daya Azure, prinsipal layanan, atau pengguna atau grup. Dalam lingkungan pengembangan, pustaka klien menyediakan token akses untuk pengguna atau prinsipal layanan untuk tujuan pengujian.
Token akses yang dihasilkan oleh pustaka klien Azure Identity dikemas dalam kredensial token. Anda kemudian dapat menggunakan kredensial token untuk mendapatkan objek klien layanan untuk digunakan dalam melakukan operasi resmi dari Azure Storage. Cara sederhana untuk mendapatkan token akses dan kredensial token adalah dengan menggunakan kelas DefaultAzureCredential yang disediakan oleh pustaka klien Azure Identity. DefaultAzureCredential mencoba mendapatkan kredensial token dengan secara berurutan mencoba beberapa jenis kredensial yang berbeda. DefaultAzureCredential berfungsi di lingkungan pengembangan dan di Azure.
Tabel berikut menunjuk ke informasi tambahan untuk mengotorisasi akses ke data dalam berbagai skenario:
Microsoft Authentication Library (MSAL)
Meskipun Microsoft merekomendasikan penggunaan pustaka klien Azure Identity jika memungkinkan, pustaka MSAL mungkin sesuai untuk digunakan dalam skenario tingkat lanjut tertentu. Untuk informasi selengkapnya, lihat Pelajari tentang MSAL.
Saat Anda menggunakan MSAL untuk memperoleh token OAuth untuk akses ke Azure Storage, Anda perlu memberikan ID sumber daya Microsoft Entra. ID sumber daya Microsoft Entra menunjukkan audiens yang tokennya dikeluarkan dapat digunakan untuk menyediakan akses ke sumber daya Azure. Semisalnya Azure Storage, ID sumber daya mungkin spesifik untuk satu akun penyimpanan, atau mungkin berlaku untuk akun penyimpanan apa pun.
Saat Anda memberikan ID sumber daya yang khusus untuk satu akun penyimpanan dan layanan, ID sumber daya digunakan untuk memperoleh token untuk mengotorisasi permintaan ke akun dan layanan yang ditentukan saja. Tabel berikut mencantumkan nilai yang akan digunakan untuk ID sumber daya, berdasarkan cloud yang sedang Anda kerjakan. Ganti <account-name>
dengan nama akun penyimpanan Anda.
Cloud | ID Sumber Daya |
---|---|
Azure Global | https://<account-name>.blob.core.windows.net |
Azure Government | https://<account-name>.blob.core.usgovcloudapi.net |
Azure China 21Vianet | https://<account-name>.blob.core.chinacloudapi.cn |
Anda juga dapat memberikan ID sumber daya yang berlaku untuk akun penyimpanan apa pun, seperti yang ditunjukkan dalam tabel berikut. ID sumber daya ini sama untuk semua cloud publik dan berdaulat, dan digunakan untuk memperoleh token untuk mengotorisasi permintaan ke akun penyimpanan apa pun.
Cloud | ID Sumber Daya |
---|---|
Azure Global Azure Government Azure China 21Vianet |
https://storage.azure.com/ |
Menetapkan peran Azure untuk hak akses
Microsoft Entra mengotorisasi hak akses ke sumber daya aman melalui Azure RBAC. Azure Storage mendefinisikan set peran RBAC bawaan yang mencakup set izin umum yang digunakan untuk mengakses data blob. Anda juga dapat menentukan peran khusus untuk akses ke data blob. Untuk mempelajari selengkapnya tentang menetapkan peran Azure untuk akses blob, lihat Menetapkan peran Azure untuk akses ke data blob.
Perwakilan keamanan Microsoft Entra mungkin pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola untuk sumber daya Azure. Peran RBAC yang ditetapkan ke prinsip keamanan menentukan izin yang dimiliki prinsipal untuk sumber daya yang ditentukan. Untuk mempelajari lebih lanjut tentang menetapkan peran Azure untuk akses blob, lihat Menetapkan peran Azure untuk akses ke data blob
Dalam beberapa kasus Anda mungkin perlu mengaktifkan akses berbutir halus ke sumber daya blob atau untuk menyederhanakan izin ketika Anda memiliki sejumlah besar penetapan peran untuk sumber daya penyimpanan. Anda dapat menggunakan kontrol akses berbasis atribut Azure (Azure ABAC) untuk mengonfigurasi kondisi di penetapan peran. Anda dapat menggunakan ketentuan dengan peran kustom atau memilih peran bawaan. Untuk informasi lebih lanjut tentang mengonfigurasi kondisi untuk sumber daya penyimpanan Azure dengan ABAC, lihat Mengotorisasi akses ke blob menggunakan kondisi penetapan peran Azure (pratinjau). Untuk detail tentang kondisi yang didukung untuk operasi data blob, lihat Tindakan dan atribut untuk kondisi penetapan peran Azure di Azure Storage (pratinjau).
Catatan
Saat membuat akun Azure Storage, Anda tidak secara otomatis diberi izin untuk mengakses data melalui ID Microsoft Entra. Anda harus secara eksplisit menetapkan peran Azure untuk akses ke Blob Storage. Anda dapat menetapkannya di tingkat langganan, grup sumber daya, akun penyimpanan, atau kontainer.
Cakupan sumber daya
Sebelum Anda menetapkan peran Azure RBAC ke perwakilan keamanan, tentukan cakupan akses yang harus dimiliki perwakilan keamanan. Praktik terbaik memerintahkan bahwa yang terbaik selalu hanya memberikan cakupan sesempit mungkin. Peran Azure RBAC yang ditentukan pada cakupan yang lebih luas diwariskan oleh sumber daya di bawahnya.
Anda dapat menjangkau akses ke sumber daya blob Azure di tingkat berikut, dimulai dengan cakupan tersempit:
- Kontainer individu. Pada cakupan ini, penetapan peran berlaku untuk semua blob dalam kontainer, dan ke properti kontainer dan metadata.
- Akun penyimpanan. Pada cakupan ini, penetapan peran berlaku untuk semua kontainer dan blobnya.
- Grup sumber daya. Pada cakupan ini, penetapan peran berlaku untuk semua kontainer di semua akun penyimpanan di grup sumber daya.
- Langganan. Pada cakupan ini, penetapan peran berlaku untuk semua kontainer di semua akun penyimpanan pada semua grup sumber daya dalam langganan.
- Grup manajemen. Pada cakupan ini, penetapan peran berlaku untuk semua kontainer di semua akun penyimpanan di semua grup sumber daya pada semua langganan di grup manajemen.
Untuk informasi selengkapnya tentang cakupan penetapan peran Azure RBAC, lihat Memahami cakupan untuk Azure RBAC.
Peran bawaan Azure untuk blob
Azure RBAC menyediakan beberapa peran bawaan untuk mengotorisasi akses ke data blob menggunakan MICROSOFT Entra ID dan OAuth. Beberapa contoh peran yang menyediakan izin ke sumber daya data di Azure Storage meliputi:
- Pemilik Data Blob Penyimpanan: Gunakan untuk mengatur kepemilikan dan mengelola kontrol akses POSIX untuk Azure Data Lake Storage Gen2. Untuk informasi selengkapnya, lihat Kontrol akses di Azure Data Lake Storage Gen2.
- Kontributor Data Blob Penyimpanan: Gunakan untuk memberikan izin baca/tulis/hapus ke sumber daya penyimpanan Blob.
- Pembaca Data Blob Penyimpanan: Gunakan untuk memberikan izin baca-saja ke sumber daya penyimpanan Blob.
- Delegator Blob Penyimpanan: Dapatkan kunci delegasi pengguna yang digunakan untuk membuat tanda tangan akses bersama yang ditandatangani dengan kredensial Microsoft Entra untuk kontainer atau blob.
Untuk mempelajari cara menetapkan peran bawaan Azure ke prinsip keamanan, lihat Menetapkan peran Azure untuk akses ke data blob. Untuk mempelajari cara mencantumkan peran RBAC Azure dan izinnya, lihat Definisi peran List Azure.
Untuk informasi selengkapnya tentang penentuan peran bawaan Azure Storage, lihat Memahami definisi peran. Untuk informasi tentang membuat peran kustom Azure, lihat Peran kustom Azure.
Hanya peran yang secara eksplisit ditentukan untuk akses data yang mengizinkan prinsipal keamanan mengakses data blob. Peran bawaan seperti Pemilik, Kontributor, dan Kontributor Akun Penyimpanan mengizinkan prinsip keamanan untuk mengelola akun penyimpanan, tetapi tidak menyediakan akses ke data blob dalam akun tersebut melalui ID Microsoft Entra. Namun, jika peran menyertakan Microsoft.Storage/storageAccounts/listKeys/action, maka pengguna yang perannya ditetapkan dapat mengakses data di akun penyimpanan melalui otorisasi Kunci Bersama dengan kunci akses akun. Untuk informasi selengkapnya, lihat Memilih cara memberi otorisasi akses ke data blob di portal Microsoft Azure.
Untuk informasi terperinci tentang peran bawaan Azure untuk Azure Storage untuk layanan data dan layanan manajemen, lihat bagian Penyimpanan di peran bawaan Azure untuk Azure RBAC. Selain itu, untuk informasi tentang berbagai jenis peran yang menyediakan izin di Azure, lihat Peran Azure, peran Microsoft Entra, dan peran administrator langganan klasik.
Penting
Penetapan peran Azure mungkin membutuhkan waktu hingga 30 menit untuk disebarluaskan.
Izin akses untuk operasi data
Untuk detail tentang izin yang diperlukan untuk memanggil operasi Blob service tertentu, lihat Izin untuk memanggil operasi data.
Mengakses data dengan akun Microsoft Entra
Akses ke data blob melalui portal Azure, PowerShell, atau Azure CLI dapat diotorisasi baik dengan menggunakan akun Microsoft Entra pengguna atau dengan menggunakan kunci akses akun (otorisasi Kunci Bersama).
Perhatian
Otorisasi dengan Kunci Bersama tidak disarankan karena mungkin kurang aman. Untuk keamanan optimal, nonaktifkan otorisasi melalui Kunci Bersama untuk akun penyimpanan Anda, seperti yang dijelaskan dalam Mencegah otorisasi Kunci Bersama untuk akun Azure Storage.
Penggunaan kunci akses dan string koneksi harus dibatasi pada bukti awal aplikasi konsep atau prototipe pengembangan yang tidak mengakses data produksi atau sensitif. Jika tidak, kelas autentikasi berbasis token yang tersedia di Azure SDK harus selalu disukai saat mengautentikasi ke sumber daya Azure.
Microsoft menyarankan agar klien menggunakan ID Microsoft Entra atau tanda tangan akses bersama (SAS) untuk mengotorisasi akses ke data di Azure Storage. Untuk informasi selengkapnya, lihat Mengotorisasi operasi untuk akses data.
Akses data dari portal Azure
portal Azure dapat menggunakan akun Microsoft Entra atau kunci akses akun Anda untuk mengakses data blob di akun penyimpanan Azure. Skema otorisasi yang digunakan portal Azure bergantung pada peran Azure yang ditetapkan untuk Anda.
Saat Anda mencoba mengakses data blob, portal Azure terlebih dahulu memeriksa apakah Anda telah diberi peran Azure dengan Microsoft.Storage/storageAccounts/listkeys/action. Jika Anda telah diberi peran dengan tindakan ini, maka portal Azure menggunakan kunci akun untuk mengakses data blob melalui otorisasi Kunci Bersama. Jika Anda belum diberi peran dengan tindakan ini, maka portal Azure mencoba mengakses data menggunakan akun Microsoft Entra Anda.
Untuk mengakses data blob dari portal Azure menggunakan akun Microsoft Entra, Anda memerlukan izin untuk mengakses data blob, dan Anda juga memerlukan izin untuk menavigasi melalui sumber daya akun penyimpanan di portal Azure. Peran bawaan yang disediakan oleh Azure Storage memberikan akses ke sumber daya blob, tetapi tidak memberikan izin ke sumber daya akun penyimpanan. Untuk alasan ini, akses ke portal juga memerlukan penugasan peran Azure Resource Manager seperti peran Reader (Pembaca) yang tercakup ke tingkat akun penyimpanan atau yang lebih tinggi. Peran Pembaca memberi izin yang paling terbatas, tetapi peran Azure Resource Manager lain yang memberi akses ke sumber daya manajemen akun penyimpanan juga dapat diterima. Untuk mempelajari selengkapnya tentang cara menetapkan izin kepada pengguna untuk akses data di portal Azure dengan akun Microsoft Entra, lihat Menetapkan peran Azure untuk akses ke data blob.
Portal Azure menunjukkan skema otorisasi yang digunakan saat Anda membuka kontainer. Untuk informasi selengkapnya tentang akses data di portal, lihat Memilih cara mengotorisasi akses ke data blob di portal Azure.
Akses data dari PowerShell atau Azure CLI
Azure CLI dan PowerShell mendukung masuk dengan kredensial Microsoft Entra. Setelah Anda masuk, sesi Anda berjalan di bawah kredensial tersebut. Untuk mempelajari lebih lanjut, lihat salah satu artikel berikut:
- Memilih cara mengotorisasi akses ke data blob dengan Azure CLI
- Menjalankan perintah PowerShell dengan informasi masuk Microsoft Entra untuk mengakses data blob
Dukungan fitur
Dukungan untuk fitur ini mungkin terpengaruh dengan mengaktifkan Data Lake Storage Gen2, protokol Network File System (NFS) 3.0, atau SSH File Transfer Protocol (SFTP). Jika Anda telah mengaktifkan salah satu kemampuan ini, lihat Dukungan fitur Blob Storage di akun Azure Storage untuk menilai dukungan untuk fitur ini.
Mengotorisasi operasi data blob dengan MICROSOFT Entra ID hanya didukung untuk REST API versi 2017-11-09 dan yang lebih baru. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.