Mengonfigurasi akses baca anonim untuk kontainer dan blob

Azure Storage mendukung akses baca anonim opsional untuk kontainer dan blob. Secara default, akses anonim ke data Anda tidak pernah diizinkan. Semua permintaan ke kontainer dan blob-nya harus diotorisasi, kecuali Anda secara eksplisit mengaktifkan akses anonim. Saat Anda mengonfigurasi pengaturan tingkat akses kontainer untuk mengizinkan akses anonim, klien dapat membaca data dalam kontainer tersebut tanpa mengotorisasi permintaan.

Peringatan

Ketika kontainer dikonfigurasi untuk akses anonim, klien apa pun dapat membaca data dalam kontainer tersebut. Akses anonim menyajikan potensi risiko keamanan, jadi jika skenario Anda tidak memerlukannya, kami sarankan Anda memulihkan akses anonim untuk akun penyimpanan.

Artikel ini menjelaskan cara mengonfigurasi akses baca anonim untuk kontainer dan blobnya. Untuk informasi tentang cara memulihkan akses anonim untuk keamanan yang optimal, lihat salah satu artikel berikut:

Tentang akses baca anonim

Akses anonim ke data Anda selalu dilarang secara default. Ada dua pengaturan terpisah yang memengaruhi akses anonim:

  1. Pengaturan akses anonim untuk akun penyimpanan. Akun penyimpanan Azure Resource Manager menawarkan pengaturan untuk mengizinkan atau melarang akses anonim untuk akun tersebut. Microsoft merekomendasikan untuk melarang akses anonim untuk akun penyimpanan Anda untuk keamanan yang optimal.

    Ketika akses anonim diizinkan di tingkat akun, data blob tidak tersedia untuk akses baca anonim kecuali pengguna mengambil langkah tambahan untuk secara eksplisit mengonfigurasi pengaturan akses anonim kontainer.

  2. Konfigurasikan pengaturan akses anonim kontainer. Secara default, pengaturan akses anonim kontainer dinonaktifkan, yang berarti bahwa otorisasi diperlukan untuk setiap permintaan ke kontainer atau datanya. Pengguna dengan izin yang sesuai dapat mengubah pengaturan akses anonim kontainer untuk mengaktifkan akses anonim hanya jika akses anonim diizinkan untuk akun penyimpanan.

Tabel berikut ini meringkas bagaimana kedua pengaturan bersama-sama memengaruhi akses anonim untuk kontainer.

Tingkat akses anonim untuk kontainer diatur ke Privat (pengaturan default) Tingkat akses anonim untuk kontainer diatur ke Kontainer Tingkat akses anonim untuk kontainer diatur ke Blob
Akses anonim tidak diizinkan untuk akun penyimpanan Tidak ada akses anonim ke kontainer apa pun di akun penyimpanan. Tidak ada akses anonim ke kontainer apa pun di akun penyimpanan. Pengaturan akun penyimpanan mengambil alih pengaturan kontainer. Tidak ada akses anonim ke kontainer apa pun di akun penyimpanan. Pengaturan akun penyimpanan mengambil alih pengaturan kontainer.
Akses anonim diizinkan untuk akun penyimpanan Tidak ada akses anonim ke kontainer ini (konfigurasi default). Akses anonim diizinkan ke kontainer ini dan blob-nya. Akses anonim diizinkan untuk blob dalam kontainer ini, tetapi tidak ke kontainer itu sendiri.

Ketika akses anonim diizinkan untuk akun penyimpanan dan dikonfigurasi untuk kontainer tertentu, permintaan untuk membaca blob dalam kontainer tersebut yang diteruskan tanpa header Otorisasi diterima oleh layanan, dan data blob dikembalikan dalam respons.

Mengizinkan atau melarang akses baca anonim untuk akun penyimpanan

Saat akses anonim diizinkan untuk akun penyimpanan, pengguna dengan izin yang sesuai dapat mengubah pengaturan akses anonim kontainer untuk mengaktifkan akses anonim ke data dalam kontainer tersebut. Data blob tidak pernah tersedia untuk akses anonim kecuali pengguna mengambil langkah tambahan untuk secara eksplisit mengonfigurasi pengaturan akses anonim kontainer.

Perlu diingat bahwa akses anonim ke kontainer selalu dinonaktifkan secara default dan harus dikonfigurasi secara eksplisit untuk mengizinkan permintaan anonim. Terlepas dari pengaturan pada akun penyimpanan, data Anda tidak akan pernah tersedia untuk akses anonim kecuali pengguna dengan izin yang sesuai mengambil langkah tambahan ini untuk mengaktifkan akses anonim pada kontainer.

Melarang akses anonim untuk akun penyimpanan mengambil alih pengaturan akses untuk semua kontainer di akun penyimpanan tersebut, mencegah akses anonim ke data blob di akun tersebut. Ketika akses anonim tidak diizinkan untuk akun, tidak dimungkinkan untuk mengonfigurasi pengaturan akses untuk kontainer untuk mengizinkan akses anonim, dan permintaan anonim di masa mendatang ke akun tersebut akan gagal. Sebelum mengubah pengaturan ini, pastikan untuk memahami dampak pada aplikasi klien yang mungkin mengakses data di akun penyimpanan Anda secara anonim. Untuk informasi selengkapnya, lihat Mencegah akses baca anonim ke kontainer dan blob.

Penting

Setelah akses anonim tidak diizinkan untuk akun penyimpanan, klien yang menggunakan tantangan pembawa anonim akan menemukan bahwa Azure Storage mengembalikan kesalahan 403 (Terlarang) daripada kesalahan 401 (Tidak sah). Kami menyarankan agar Anda membuat semua kontainer privat untuk mengurangi masalah ini. Untuk informasi selengkapnya tentang mengubah pengaturan akses anonim untuk kontainer, lihat Mengatur tingkat akses untuk kontainer.

Mengizinkan atau melarang akses anonim memerlukan penyedia sumber daya Azure Storage versi 2019-04-01 atau yang lebih baru. Untuk informasi selengkapnya, lihat REST API Penyedia Sumber Daya Azure Storage.

Izin untuk melarang akses anonim

Untuk mengatur properti AllowBlobAnonymousAccess untuk akun penyimpanan, pengguna harus memiliki izin untuk membuat dan mengelola akun penyimpanan. Peran kontrol akses berbasis peran Azure (Azure RBAC) yang menyediakan izin ini mencakup tindakan Microsoft.Storage/storageAccounts/write . Peran bawaan dengan tindakan ini meliputi:

Penetapan peran harus dicakup ke tingkat akun penyimpanan atau yang lebih tinggi untuk mengizinkan pengguna melarang akses anonim untuk akun penyimpanan. Untuk informasi selengkapnya tentang cakupan peran, lihat Memahami cakupan Azure RBAC.

Berhati-hatilah untuk membatasi penetapan peran ini hanya untuk pengguna administratif yang memerlukan kemampuan untuk membuat akun penyimpanan atau memperbarui propertinya. Gunakan prinsip hak istimewa paling sedikit untuk memastikan bahwa pengguna memiliki izin terkecil yang dibutuhkan dalam menyelesaikan tugasnya. Untuk informasi selengkapnya tentang pengelolaan akses dengan Azure RBAC, lihat Praktik terbaik untuk Azure RBAC.

Peran ini tidak menyediakan akses ke data di akun penyimpanan melalui ID Microsoft Entra. Namun, peran ini meliputi Microsoft.Storage/storageAccounts/listkeys/action, yang memberikan akses ke kunci akses akun. Dengan izin ini, pengguna dapat menggunakan kunci akses akun untuk mengakses semua data di akun penyimpanan.

Microsoft.Storage/storageAccounts/listkeys/action sendiri memberikan akses data melalui kunci akun, tetapi tidak memberi pengguna kemampuan untuk mengubah properti AllowBlobPublicAccess untuk akun penyimpanan. Untuk pengguna yang perlu mengakses data di akun penyimpanan Anda tetapi seharusnya tidak memiliki kemampuan untuk mengubah konfigurasi akun penyimpanan, pertimbangkan untuk menetapkan peran seperti Kontributor Data Blob Penyimpanan, Pembaca Data Blob Penyimpanan, atau Pembaca dan Akses Data.

Catatan

Peran administrator langganan klasik Administrator Layanan dan Administrator Bersama mencakup peran Pemilik Azure Resource Manager yang setara. Peran Pemilik mencakup semua tindakan, sehingga pengguna dengan salah satu peran administratif ini juga dapat membuat akun penyimpanan dan mengelola konfigurasi akun. Untuk informasi selengkapnya, lihat Peran Azure, peran Microsoft Entra, dan peran administrator langganan klasik.

Mengatur properti AllowBlobPublicAccess akun penyimpanan

Untuk mengizinkan atau melarang akses anonim untuk akun penyimpanan, atur properti AllowBlobPublicAccess akun. Properti ini tersedia untuk semua akun penyimpanan yang dibuat dengan model penerapan Azure Resource Manager. Untuk informasi selengkapnya, lihat Ringkasan akun penyimpanan.

Untuk mengizinkan atau melarang akses anonim untuk akun penyimpanan di portal Azure, ikuti langkah-langkah berikut:

  1. Navigasikan ke akun penyimpanan Anda di portal Microsoft Azure.

  2. Temukan pengaturan Konfigurasi di bawah Pengaturan.

  3. Atur Izinkan akses anonim Blob ke Diaktifkan atau Dinonaktifkan.

    Screenshot showing how to allow or disallow anonymous access for account

Catatan

Melarang akses anonim untuk akun penyimpanan tidak memengaruhi situs web statis apa pun yang dihosting di akun penyimpanan tersebut. Kontainer $web selalu dapat diakses publik.

Setelah Anda memperbarui pengaturan akses anonim untuk akun penyimpanan, mungkin perlu waktu hingga 30 detik sebelum perubahan disebarluaskan sepenuhnya.

Ketika kontainer dikonfigurasi untuk akses anonim, permintaan untuk membaca blob dalam kontainer tersebut tidak perlu diotorisasi. Namun, aturan firewall apa pun yang dikonfigurasi untuk akun penyimpanan tetap berlaku dan akan memblokir lalu lintas sebaris dengan ACL yang dikonfigurasi.

Mengizinkan atau melarang akses anonim memerlukan penyedia sumber daya Azure Storage versi 2019-04-01 atau yang lebih baru. Untuk informasi selengkapnya, lihat REST API Penyedia Sumber Daya Azure Storage.

Contoh di bagian ini menunjukkan cara membaca properti AllowBlobPublicAccess untuk akun penyimpanan untuk menentukan apakah akses anonim saat ini diizinkan atau tidak diizinkan. Untuk mempelajari cara memverifikasi bahwa pengaturan akses anonim akun dikonfigurasi untuk mencegah akses anonim, lihat Memulihkan akses anonim untuk akun penyimpanan.

Mengatur tingkat akses anonim untuk kontainer

Untuk memberikan pengguna anonim akses baca ke kontainer dan blobnya, pertama-tama izinkan akses anonim untuk akun penyimpanan, lalu atur tingkat akses anonim kontainer. Jika akses anonim ditolak untuk akun penyimpanan, Anda tidak akan dapat mengonfigurasi akses anonim untuk kontainer.

Perhatian

Microsoft merekomendasikan untuk tidak mengizinkan akses anonim ke data blob di akun penyimpanan Anda.

Saat akses anonim diizinkan untuk akun penyimpanan, Anda dapat mengonfigurasi kontainer dengan izin berikut:

  • Tidak ada akses baca publik: Kontainer dan blob-nya hanya dapat diakses dengan permintaan resmi. Opsi ini adalah default untuk semua kontainer baru.
  • Akses baca publik hanya untuk blob: Blob dalam kontainer dapat dibaca dengan permintaan anonim, tetapi data kontainer tidak tersedia secara anonim. Klien anonim tidak dapat menghitung blob dalam kontainer.
  • Akses baca publik untuk kontainer dan blob-nya: Data kontainer dan blob dapat dibaca dengan permintaan anonim, kecuali untuk pengaturan izin kontainer dan metadata kontainer. Klien dapat menghitung blob dalam kontainer berdasarkan permintaan anonim, tetapi tidak dapat menghitung kontainer dalam akun penyimpanan.

Anda tidak dapat mengubah tingkat akses anonim untuk blob individual. Tingkat akses anonim hanya diatur pada tingkat kontainer. Anda dapat mengatur tingkat akses anonim kontainer saat membuat kontainer, atau Anda dapat memperbarui pengaturan pada kontainer yang ada.

Untuk memperbarui tingkat akses anonim untuk satu atau beberapa kontainer yang ada di portal Azure, ikuti langkah-langkah berikut:

  1. Navigasi ke ringkasan akun penyimpanan Anda di portal Microsoft Azure.

  2. Di bawah Penyimpanan data pada bilah menu, pilih Kontainer.

  3. Pilih kontainer yang ingin Anda atur tingkat akses anonimnya.

  4. Gunakan tombol Ubah tingkat akses untuk menampilkan pengaturan akses anonim.

  5. Pilih tingkat akses anonim yang diinginkan dari menu dropdown Tingkat akses anonim dan klik tombol OK untuk menerapkan perubahan ke kontainer yang dipilih.

    Screenshot showing how to set anonymous access level in the portal.

Ketika akses anonim tidak diizinkan untuk akun penyimpanan, tingkat akses anonim kontainer tidak dapat diatur. Jika Anda mencoba mengatur tingkat akses anonim kontainer, Anda akan melihat bahwa pengaturan dinonaktifkan karena akses anonim tidak diizinkan untuk akun tersebut.

Screenshot showing that setting a container's anonymous access level is blocked when anonymous access disallowed for the account

Periksa pengaturan akses anonim untuk sekumpulan kontainer

Dimungkinkan untuk memeriksa kontainer mana dalam satu atau beberapa akun penyimpanan yang dikonfigurasi untuk akses anonim dengan mencantumkan kontainer dan memeriksa pengaturan akses anonim. Pendekatan ini adalah opsi praktis saat akun penyimpanan tidak berisi kontainer dalam jumlah besar atau saat Anda memeriksa pengaturan di sejumlah kecil akun penyimpanan. Namun, performa dapat menurun jika Anda mencoba menghitung kontainer dalam jumlah besar.

Contoh berikut menggunakan PowerShell untuk mendapatkan pengaturan akses anonim untuk semua kontainer di akun penyimpanan. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess

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.

Langkah berikutnya