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 MICROSOFT Entra ID memberikan keamanan yang unggul dan kemudahan penggunaan melalui otorisasi Kunci Bersama. Microsoft merekomendasikan penggunaan otorisasi Microsoft Entra dengan aplikasi blob Anda jika memungkinkan untuk memastikan akses dengan hak istimewa minimum yang diperlukan.

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.

Penyimpanan blob juga mendukung pembuatan tanda tangan akses bersama (SAS) yang ditandatangani dengan kredensial Microsoft Entra. Untuk informasi selengkapnya, lihat Memberikan akses terbatas ke data dengan tanda tangan akses bersama.

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:

  1. 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.

  2. 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

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:

Bahasa .NET Java JavaScript Python Go
Gambaran umum autentikasi dengan MICROSOFT Entra ID Cara mengautentikasi aplikasi .NET dengan layanan Azure Autentikasi Azure dengan Java dan Azure Identity Mengautentikasi aplikasi JavaScript ke Azure menggunakan Azure SDK Mengautentikasi aplikasi Python ke Azure menggunakan Azure SDK
Autentikasi menggunakan perwakilan layanan pengembang Mengautentikasi aplikasi .NET ke layanan Azure selama pengembangan lokal menggunakan perwakilan layanan Autentikasi Azure dengan perwakilan layanan Aplikasi JS autentikasi ke layanan Azure dengan perwakilan layanan Mengautentikasi aplikasi Python ke layanan Azure selama pengembangan lokal menggunakan perwakilan layanan Autentikasi Azure SDK for Go dengan perwakilan layanan
Autentikasi menggunakan akun pengembang atau pengguna Mengautentikasi aplikasi .NET ke layanan Azure selama pengembangan lokal menggunakan akun pengembang Autentikasi Azure dengan kredensial pengguna Aplikasi JS autentikasi ke layanan Azure dengan akun dev Mengautentikasi aplikasi Python ke layanan Azure selama pengembangan lokal menggunakan akun pengembang Autentikasi Azure dengan Azure SDK for Go
Autentikasi dari aplikasi yang dihosting Azure Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan Azure SDK untuk .NET Mengautentikasi aplikasi Java yang dihosting Azure Mengautentikasi aplikasi JavaScript yang dihosting Azure ke sumber daya Azure dengan Azure SDK for JavaScript Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan Azure SDK for Python Autentikasi dengan Azure SDK for Go menggunakan identitas terkelola
Autentikasi dari aplikasi lokal Mengautentikasi ke sumber daya Azure dari aplikasi .NET yang dihosting secara lokal Mengautentikasi aplikasi JavaScript lokal ke sumber daya Azure Mengautentikasi ke sumber daya Azure dari aplikasi Python yang dihosting secara lokal
Gambaran umum pustaka klien identitas Pustaka klien Azure Identity untuk .NET Pustaka klien Azure Identity untuk Java Pustaka klien Azure Identity untuk JavaScript Pustaka klien Azure Identity untuk Python Pustaka klien Azure Identity untuk Go

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:

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:

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.

Langkah berikutnya