Mengonfigurasi akses baca publik anonim untuk kontainer dan blob

Azure Storage mendukung akses baca publik 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 publik kontainer untuk mengizinkan akses anonim, klien dapat membaca data di kontainer tersebut tanpa otorisasi permintaan.

Peringatan

Saat kontainer dikonfigurasi untuk akses publik, klien mana pun dapat membaca data di kontainer tersebut. Akses publik menimbulkan potensi risiko keamanan, jadi jika skenario Anda tidak memerlukannya, Microsoft merekomendasikan agar Anda melarangnya untuk akun penyimpanan. Untuk informasi selengkapnya, lihat Mencegah akses baca publik anonim untuk kontainer dan blob.

Artikel ini menjelaskan cara mengonfigurasi akses baca publik anonim untuk kontainer dan blob-nya. Untuk informasi tentang cara mengakses data blob secara anonim dari aplikasi klien, lihat Mengakses kontainer publik dan blob secara anonim dengan .NET.

Tentang akses baca publik anonim

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

  1. Mengizinkan akses publik untuk akun penyimpanan. Secara default, akun penyimpanan mengizinkan pengguna dengan izin yang sesuai untuk mengaktifkan akses publik ke kontainer. Data blob tidak tersedia untuk akses publik, kecuali pengguna mengambil langkah tambahan untuk mengonfigurasi pengaturan akses publik kontainer secara eksplisit.
  2. Mengonfigurasi pengaturan akses publik kontainer. Secara default, pengaturan akses publik kontainer dinonaktifkan, artinya otorisasi diperlukan untuk setiap permintaan ke kontainer atau datanya. Pengguna dengan izin yang sesuai dapat mengubah pengaturan akses publik kontainer untuk mengaktifkan akses anonim hanya jika akses anonim diizinkan untuk akun penyimpanan.

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

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

Ketika akses publik anonim diizinkan untuk akun penyimpanan dan dikonfigurasi untuk kontainer tertentu, maka permintaan untuk membaca blob pada kontainer dilewatkan tanpa header Otorisasi diterima oleh layanan, dan data blob dikembalikan dalam respon.

Mengizinkan atau melarang akses baca publik untuk akun penyimpanan

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

Perlu diingat bahwa akses publik 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 publik, kecuali pengguna dengan izin yang sesuai mengambil langkah tambahan ini untuk mengaktifkan akses publik pada kontainer.

Melarang akses publik untuk akun penyimpanan mencegah akses anonim ke semua kontainer dan blob di akun tersebut. Saat akses publik dilarang untuk akun tersebut, tidak mungkin untuk mengonfigurasi pengaturan akses publik untuk kontainer untuk mengizinkan akses anonim. Untuk keamanan yang lebih baik, Microsoft merekomendasikan agar Anda melarang akses publik untuk akun penyimpanan, kecuali skenario Anda mengharuskan pengguna mengakses sumber daya blob secara anonim.

Penting

Melarang akses publik untuk akun penyimpanan mengambil alih pengaturan akses publik untuk semua kontainer di akun penyimpanan tersebut. Saat akses publik dilarang untuk akun penyimpanan, permintaan anonim apa pun 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 publik anonim untuk kontainer dan blob.

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

Properti AllowBlobPublicAccess tidak diatur untuk akun penyimpanan secara default dan tidak mengembalikan nilai hingga Anda mengaturnya secara eksplisit. Akun penyimpanan mengizinkan akses publik saat nilai properti null atau true.

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

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

  2. Temukan pengaturan Konfigurasi di bawah Pengaturan.

  3. Atur Akses publik blob ke Diaktifkan atau Dinonaktifkan.

    Cuplikan layar menunjukkan cara mengizinkan atau melarang akses publik blob untuk akun

Catatan

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

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

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

Mengizinkan atau melarang akses publik blob 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 guna menentukan apakah akses publik saat ini diizinkan atau dilarang. Untuk mempelajari selengkapnya tentang cara memverifikasi bahwa pengaturan akses publik akun dikonfigurasi untuk mencegah akses anonim, lihat Memulihkan akses publik anonim.

Mengatur tingkat akses publik untuk kontainer

Untuk memberikan akses baca pada pengguna anonim ke kontainer dan blob-nya, terlebih dahulu izinkan akses publik untuk akun penyimpanan, kemudian atur tingkat akses publik kontainer. Jika akses publik ditolak untuk akun penyimpanan, Anda tidak akan dapat mengonfigurasi akses publik untuk kontainer.

Saat akses publik 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 publik untuk blob individu. Tingkat akses publik hanya diatur di tingkat kontainer. Anda dapat mengatur tingkat akses publik kontainer saat membuat kontainer atau Anda dapat memperbarui pengaturan pada kontainer yang ada.

Untuk memperbarui tingkat akses publik untuk satu atau beberapa kontainer yang ada di portal Microsoft 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 Blob.

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

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

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

    Cuplikan layar menunjukkan cara mengatur tingkat akses publik di portal.

Saat akses publik dilarang untuk akun penyimpanan, tingkat akses publik kontainer tidak dapat diatur. Jika Anda mencoba mengatur tingkat akses publik kontainer, Anda akan melihat bahwa pengaturan dinonaktifkan karena akses publik dilarang untuk akun tersebut.

Cuplikan layar menunjukkan pengaturan tingkat akses publik kontainer diblokir saat akses publik tidak diizinkan

Memeriksa pengaturan akses publik untuk set kontainer

Dimungkinkan untuk memeriksa kontainer mana di satu atau beberapa akun penyimpanan yang dikonfigurasi untuk akses publik dengan mencantumkan kontainer dan memeriksa pengaturan akses publik. 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 publik 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 Protokol Transfer File SSH (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