Memulihkan akses baca anonim ke data blob (penyebaran Azure Resource Manager)

Azure Blob Storage mendukung akses baca anonim opsional ke kontainer dan blob. Namun, akses anonim dapat menimbulkan risiko keamanan. Kami menyarankan agar Anda menonaktifkan akses anonim untuk keamanan yang optimal. Melarang akses anonim membantu mencegah pelanggaran data yang disebabkan oleh akses anonim yang tidak diinginkan.

Secara default, akses anonim ke data blob Anda selalu dilarang. Konfigurasi default untuk akun penyimpanan Azure Resource Manager melarang pengguna mengonfigurasi akses anonim ke kontainer dan blob di akun penyimpanan. Konfigurasi default ini melarang semua akses anonim ke akun penyimpanan Azure Resource Manager, terlepas dari pengaturan akses untuk kontainer individual.

Saat akses anonim untuk akun penyimpanan tidak diizinkan, Azure Storage menolak semua permintaan baca anonim terhadap data blob. Pengguna nantinya tidak dapat mengonfigurasi akses anonim untuk kontainer di akun tersebut. Setiap kontainer yang telah dikonfigurasi untuk akses anonim tidak akan lagi menerima permintaan anonim.

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 melarangnya untuk akun penyimpanan.

Remediasi untuk Azure Resource Manager versus akun penyimpanan klasik

Artikel ini menjelaskan cara menggunakan kerangka kerja DRAG (Detection-Remediation-Audit-Governance) untuk terus mengelola akses anonim untuk akun penyimpanan yang menggunakan model penyebaran Azure Resource Manager. Semua akun penyimpanan v2 tujuan umum, akun penyimpanan blob blok premium, akun berbagi file premium, dan akun Blob Storage menggunakan model penyebaran Azure Resource Manager. Beberapa akun v1 tujuan umum yang lebih lama dan akun blob halaman premium dapat menggunakan model penyebaran klasik.

Jika akun penyimpanan Anda menggunakan model penyebaran klasik, kami sarankan Anda bermigrasi ke model penyebaran Azure Resource Manager sesegera mungkin. Akun Azure Storage yang menggunakan model penyebaran klasik akan dihentikan pada 31 Agustus 2024. Untuk informasi selengkapnya, lihat Akun penyimpanan klasik Azure akan dihentikan pada 31 Agustus 2024.

Jika Anda tidak dapat memigrasikan akun penyimpanan klasik Anda saat ini, maka Anda harus memulihkan akses anonim ke akun tersebut sekarang. Untuk mempelajari cara memulihkan akses anonim untuk akun penyimpanan klasik, lihat Memulihkan akses baca anonim ke data blob (penyebaran klasik). Untuk informasi selengkapnya tentang model penyebaran Azure, lihat Resource Manager dan penerapan klasik.

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.

Mendeteksi permintaan anonim dari aplikasi klien

Saat Anda melarang akses baca anonim untuk akun penyimpanan, Anda berisiko menolak permintaan ke kontainer dan blob yang saat ini dikonfigurasi untuk akses anonim. Melarang akses anonim untuk akun penyimpanan mengambil alih pengaturan akses untuk kontainer individual di akun penyimpanan tersebut. Ketika akses anonim tidak diizinkan untuk akun penyimpanan, permintaan anonim di masa mendatang ke akun tersebut akan gagal.

Untuk memahami bagaimana melarang akses anonim dapat memengaruhi aplikasi klien, kami sarankan Anda mengaktifkan pengelogan dan metrik untuk akun tersebut dan menganalisis pola permintaan anonim selama interval waktu. Gunakan metrik untuk menentukan jumlah permintaan anonim ke akun penyimpanan, dan gunakan log untuk menentukan kontainer mana yang diakses secara anonim.

Memantau permintaan anonim dengan Metrics Explorer

Untuk melacak permintaan anonim ke akun penyimpanan, gunakan Azure Metrics Explorer di portal Azure. Untuk informasi selengkapnya tentang Metrics Explorer, lihat Menganalisis metrik dengan penjelajah metrik Azure Monitor.

Ikuti langkah-langkah berikut untuk membuat metrik yang melacak permintaan anonim:

  1. Navigasikan ke akun penyimpanan Anda di portal Microsoft Azure. Di bawah Pemantauan, pilih Metrik.

  2. Pilih Tambahkan metrik. Dalam dialog Metrik, tentukan nilai berikut ini:

    1. Biarkan bidang Lingkup diatur ke nama akun penyimpanan.
    2. Atur Namespace Metrik ke Blob. Metrik ini melaporkan permintaan terhadap penyimpanan Blob saja.
    3. Atur bidang Metrik ke Transaksi.
    4. Atur bidang Agregasi ke Jumlah.

    Metrik baru menampilkan jumlah transaksi terhadap penyimpanan Blob selama interval waktu tertentu. Metrik yang dihasilkan muncul seperti yang ditunjukkan pada gambar berikut:

    Screenshot showing how to configure metric to sum blob transactions

  3. Berikutnya, pilih tombol Tambah filter untuk membuat filter pada metrik untuk permintaan yang tak dikenal.

  4. Dalam dialog Filter, tentukan nilai berikut ini:

    1. Atur nilai Properti ke Autentikasi.
    2. Atur bidang Operator ke tanda sama dengan (=).
    3. Atur bidang Nilai ke Anonim dengan memilihnya dari menu menurun atau mengetiknya.
  5. Di pojok kanan atas, pilih interval waktu yang Anda inginkan untuk melihat metrik. Anda juga dapat menunjukkan seberapa terperinci agregasi permintaannya, dengan menentukan interval di mana saja dari 1 menit hingga 1 bulan.

Setelah Anda mengonfigurasi metrik, permintaan anonim akan mulai muncul di grafik. Gambar berikut menunjukkan permintaan anonim yang dikumpulkan selama 30 menit terakhir.

Screenshot showing aggregated anonymous requests against Blob storage

Anda juga dapat mengonfigurasi aturan peringatan untuk memberi tahu Anda ketika sejumlah permintaan anonim dibuat terhadap akun penyimpanan Anda. Untuk informasi selengkapnya, lihat Membuat, menampilkan, dan mengelola peringatan metrik menggunakan Azure Monitor.

Menganalisis log untuk mengidentifikasi kontainer yang menerima permintaan anonim

Log Azure Storage menangkap detail tentang permintaan yang dibuat terhadap akun penyimpanan, termasuk bagaimana permintaan diotorisasi. Anda dapat menganalisis log untuk menentukan kontainer mana yang menerima permintaan anonim.

Untuk mencatat permintaan ke akun Azure Storage Anda untuk mengevaluasi permintaan anonim, Anda dapat menggunakan pengelogan Azure Storage di Azure Monitor. Untuk informasi selengkapnya, lihat Memantau Azure Storage.

Pembuatan log Azure Storage di Azure Monitor mendukung penggunaan kueri log untuk menganalisis data log. Untuk membuat kueri log, Anda dapat menggunakan ruang kerja Azure Log Analytics. Untuk mempelajari selengkapnya tentang kueri log, lihat Tutorial: Mulai menggunakan kueri Log Analytics.

Buat pengaturan diagnostik di portal Azure

Untuk mencatat data Azure Storage dengan Azure Monitor dan menganalisisnya dengan Azure Log Analytics, Anda harus terlebih dahulu membuat pengaturan diagnostik yang menunjukkan jenis permintaan apa dan layanan penyimpanan mana yang ingin Anda catat datanya. Untuk membuat pengaturan diagnostik di portal Microsoft Azure, ikuti langkah-langkah berikut ini:

  1. Buat ruang kerja Log Analytics baru di langganan yang berisi akun Azure Storage Anda. Setelah mengonfigurasi pembuatan log untuk akun penyimpanan Anda, log akan tersedia di ruang kerja Log Analytics. Untuk informasi selengkapnya, lihat Membuat ruang kerja Log Analytics di portal Microsoft Azure.

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

  3. Di bagian Pemantauan, pilih Pengaturan diagnostik.

  4. Pilih Blob untuk mencatat permintaan yang dibuat terhadap penyimpanan Blob.

  5. Pilih Menambahkan pengaturan diagnostik.

  6. Berikan nama untuk pengaturan diagnostik.

  7. Pada Detail kategori, di bagian log, pilih jenis permintaan mana yang akan dicatat. Semua permintaan anonim adalah permintaan baca, jadi pilih StorageRead untuk menangkap permintaan anonim.

  8. Di bawah Detail tujuan, pilih Kirim ke Log Analytics. Pilih langganan Anda dan ruang kerja Log Analytics yang Anda buat sebelumnya, seperti yang ditunjukkan pada gambar berikut.

    Screenshot showing how to create a diagnostic setting for logging requests

Setelah Anda membuat pengaturan diagnostik, permintaan ke akun penyimpanan pun dicatat sesuai dengan pengaturan tersebut. Untuk informasi selengkapnya, lihat Membuat pengaturan diagnostik untuk mengumpulkan log dan metrik sumber daya di Azure.

Untuk referensi bidang yang tersedia di log Azure Storage di Azure Monitor, lihat Log sumber daya.

Log kueri untuk permintaan anonim

Log Azure Storage di Azure Monitor menyertakan jenis otorisasi yang digunakan untuk membuat permintaan ke akun penyimpanan. Di kueri log Anda, filter pada properti AuthenticationType untuk menampilkan permintaan anonim.

Untuk mengambil log selama tujuh hari terakhir untuk permintaan anonim terhadap penyimpanan Blob, buka ruang kerja Analitik Log Anda. Berikutnya, tempelkan kueri berikut ini ke dalam kueri log baru dan jalankan:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AuthenticationType == "Anonymous"
| project TimeGenerated, AccountName, AuthenticationType, Uri

Anda juga bisa mengonfigurasi aturan pemberitahuan berdasarkan kueri ini untuk memberi tahu Anda tentang permintaan anonim. Untuk informasi selengkapnya, lihat Membuat, menampilkan, dan mengelola peringatan log menggunakan Azure Monitor.

Respons terhadap permintaan anonim

Saat Blob Storage menerima permintaan anonim, permintaan tersebut akan berhasil jika semua kondisi berikut ini benar:

  • Akses anonim diizinkan untuk akun penyimpanan.
  • Kontainer yang ditargetkan dikonfigurasi untuk memungkinkan akses anonim.
  • Permintaannya adalah untuk akses baca.

Jika salah satu kondisi tersebut tidak benar, maka permintaan akan gagal. Kode respons pada kegagalan tergantung pada apakah permintaan anonim dibuat dengan versi layanan yang mendukung tantangan pembawa. Tantangan pembawa didukung dengan versi layanan 2019-12-12 dan yang lebih baru:

  • Jika permintaan anonim dibuat dengan versi layanan yang mendukung tantangan pembawa, maka layanan mengembalikan kode kesalahan 401 (Tidak Sah).
  • Jika permintaan anonim dibuat dengan versi layanan yang tidak mendukung tantangan pembawa dan akses anonim tidak diizinkan untuk akun penyimpanan, maka layanan mengembalikan kode kesalahan 409 (Konflik).
  • Jika permintaan anonim dibuat dengan versi layanan yang tidak mendukung tantangan pembawa dan akses anonim diizinkan untuk akun penyimpanan, maka layanan mengembalikan kode kesalahan 404 (Tidak Ditemukan).

Untuk informasi selengkapnya tentang tantangan pembawa, lihat Tantangan pembawa.

Memulihkan akses anonim untuk akun penyimpanan

Setelah Anda mengevaluasi permintaan anonim ke kontainer dan blob di akun penyimpanan Anda, Anda dapat mengambil tindakan untuk memulihkan akses anonim untuk seluruh akun dengan mengatur properti AllowBlobPublicAccess akun ke False.

Pengaturan akses anonim untuk akun penyimpanan mengambil alih pengaturan individual untuk kontainer di akun tersebut. Saat Anda melarang akses anonim untuk akun penyimpanan, kontainer apa pun yang dikonfigurasi untuk mengizinkan akses anonim tidak lagi dapat diakses secara anonim. Jika Anda melarang akses anonim untuk akun tersebut, Anda tidak perlu menonaktifkan akses anonim untuk masing-masing kontainer.

Jika skenario Anda mengharuskan kontainer tertentu harus tersedia untuk akses anonim, maka Anda harus memindahkan kontainer tersebut dan blobnya ke akun penyimpanan terpisah yang dicadangkan untuk akses anonim. Anda kemudian dapat melarang akses anonim untuk akun penyimpanan lainnya.

Memulihkan 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 AllowBlobPublicAccess 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.

Atur properti AllowBlobPublicAccess akun penyimpanan ke False

Untuk melarang akses anonim untuk akun penyimpanan, atur properti AllowBlobPublicAccess akun ke False.

Penting

Melarang akses anonim untuk akun penyimpanan mengambil alih pengaturan akses untuk semua kontainer di akun penyimpanan tersebut. Ketika akses anonim tidak diizinkan untuk akun penyimpanan, 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 dengan mengikuti langkah-langkah yang diuraikan dalam Mendeteksi permintaan anonim dari aplikasi klien.

Untuk 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 Dinonaktifkan.

    Screenshot showing how to 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.

Contoh skrip untuk remediasi massal

Contoh skrip PowerShell berikut berjalan terhadap semua akun penyimpanan Azure Resource Manager dalam langganan dan mengatur pengaturan AllowBlobPublicAccess untuk akun tersebut ke False.

<#
.SYNOPSIS
Finds storage accounts in a subscription where AllowBlobPublicAccess is True or null.

.DESCRIPTION
This script runs against all Azure Resource Manager storage accounts in a subscription
and sets the "AllowBlobPublicAccess" property to False.

Standard operation will enumerate all accounts where the setting is enabled and allow the 
user to decide whether or not to disable the setting.  

Classic storage accounts will require individual adjustment of containers to remove public
access, and will not be affected by this script.

Run with BypassConfirmation=$true if you wish to disallow public access on all Azure Resource Manager 
storage accounts without individual confirmation.

You will need access to the subscription to run the script.

.PARAMETER BypassConformation
Set this to $true to skip confirmation of changes. Not recommended.

.PARAMETER SubscriptionId
The subscription ID of the subscription to check.

.PARAMETER ReadOnly
Set this parameter so that the script makes no changes to any subscriptions and only reports affect accounts.

.PARAMETER NoSignin
Set this parameter so that no sign-in occurs -- you must sign in first. Use this if you're invoking this script repeatedly for multiple subscriptions and want to avoid being prompted to sign-in for each subscription.

.OUTPUTS
This command produces only STDOUT output (not standard PowerShell) with information about affect accounts.
#>
param(
    [boolean]$BypassConfirmation=$false,
    [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName='SubscriptionId')]
    [String] $SubscriptionId,
    [switch] $ReadOnly, # Use this if you don't want to make changes, but want to get information about affected accounts
    [switch] $NoSignin # Use this if you are already signed in and don't want to be prompted again
)

begin {
    if ( ! $NoSignin.IsPresent ) {
        login-azaccount | out-null
    }
}

process {
    try {
        select-azsubscription -subscriptionid $SubscriptionId -erroraction stop | out-null
    } catch {
        write-error "Unable to access select subscription '$SubscriptionId' as the signed in user -- ensure that you have access to this subscription." -erroraction stop
    }

    foreach ($account in Get-AzStorageAccount) 
    {
        if($account.AllowBlobPublicAccess -eq $null -or $account.AllowBlobPublicAccess -eq $true)
        {
            Write-host "Account:" $account.StorageAccountName " isn't disallowing public access."

            if ( ! $ReadOnly.IsPresent ) {
                if(!$BypassConfirmation)
                {
                    $confirmation = Read-Host "Do you wish to disallow public access? [y/n]"
                }
                if($BypassConfirmation -or $confirmation -eq 'y')
                {
                    try
                    {
                        set-AzStorageAccount -Name $account.StorageAccountName -ResourceGroupName $account.ResourceGroupName -AllowBlobPublicAccess $false
                        Write-Host "Success!"
                    }
                    catch
                    {
                        Write-output $_
                    }
                }
            }
        }
        elseif($account.AllowBlobPublicAccess -eq $false)
        {
            Write-Host "Account:" $account.StorageAccountName " has public access disabled, no action required."
        }
        else
        {
            Write-Host "Account:" $account.StorageAccountName ". Error, please manually investigate."
        }
    }
}

end {
    Write-Host "Script complete"
}

Verifikasi bahwa akses anonim telah diperbaiki

Untuk memverifikasi bahwa Anda telah memulihkan akses anonim untuk akun penyimpanan, Anda dapat menguji bahwa akses anonim ke blob tidak diizinkan, bahwa memodifikasi pengaturan akses kontainer tidak diizinkan, dan tidak dimungkinkan untuk membuat kontainer dengan akses anonim diaktifkan.

Verifikasi bahwa akses anonim ke blob tidak diizinkan

Untuk memverifikasi bahwa akses anonim ke blob tertentu tidak diizinkan, Anda dapat mencoba mengunduh blob melalui URL-nya. Jika unduhan berhasil, maka gumpalan masih tersedia untuk umum. Jika blob tidak dapat diakses publik karena akses anonim tidak diizinkan untuk akun penyimpanan, maka Anda akan melihat pesan kesalahan yang menunjukkan bahwa akses anonim tidak diizinkan di akun penyimpanan ini.

Contoh berikut menunjukkan cara menggunakan PowerShell untuk mencoba mengunduh gumpalan melalui URL-nya. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

$url = "<absolute-url-to-blob>"
$downloadTo = "<file-path-for-download>"
Invoke-WebRequest -Uri $url -OutFile $downloadTo -ErrorAction Stop

Verifikasi bahwa mengubah pengaturan akses kontainer tidak diizinkan

Untuk memverifikasi bahwa pengaturan akses kontainer tidak dapat dimodifikasi setelah akses anonim tidak diizinkan untuk akun penyimpanan, Anda dapat mencoba mengubah pengaturan. Mengubah pengaturan akses kontainer gagal jika akses anonim tidak diizinkan untuk akun penyimpanan.

Contoh berikut menunjukkan cara menggunakan PowerShell untuk mencoba mengubah pengaturan akses kontainer. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container-name>"

$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context

Set-AzStorageContainerAcl -Context $ctx -Container $containerName -Permission Blob

Verifikasi bahwa kontainer tidak dapat dibuat dengan akses anonim diaktifkan

Jika akses anonim tidak diizinkan untuk akun penyimpanan, Maka Anda tidak akan dapat membuat kontainer baru dengan akses anonim diaktifkan. Untuk memverifikasi, Anda dapat mencoba membuat kontainer dengan akses anonim diaktifkan.

Contoh berikut menunjukkan cara menggunakan PowerShell untuk mencoba membuat kontainer dengan akses anonim diaktifkan. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container-name>"

$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context

New-AzStorageContainer -Name $containerName -Permission Blob -Context $ctx

Periksa pengaturan akses anonim untuk beberapa akun

Untuk memeriksa pengaturan akses anonim di sekumpulan akun penyimpanan dengan performa optimal, Anda dapat menggunakan Azure Resource Graph Explorer di portal Azure. Untuk mempelajari selengkapnya tentang penggunaan Resource Graph Explorer, lihat Mulai Cepat: Jalankan kueri Resource Graph pertama Anda menggunakan Azure Resource Graph Explorer.

Menjalankan kueri berikut di Resource Graph Explorer mengembalikan daftar akun penyimpanan dan menampilkan pengaturan akses anonim untuk setiap akun:

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend allowBlobPublicAccess = parse_json(properties).allowBlobPublicAccess
| project subscriptionId, resourceGroup, name, allowBlobPublicAccess

Gambar berikut ini memperlihatkan hasil kueri di seluruh langganan. Untuk akun penyimpanan tempat properti AllowBlobPublicAccess telah diatur secara eksplisit, properti tersebut muncul dalam hasil sebagai true atau false. Jika properti AllowBlobPublicAccess belum diatur untuk akun penyimpanan, properti tersebut muncul sebagai kosong (atau null) dalam hasil kueri.

Screenshot showing query results for anonymous access setting across storage accounts

Menggunakan Azure Policy untuk mengaudit kepatuhan

Jika Anda memiliki sejumlah besar akun penyimpanan, Anda mungkin ingin melakukan audit untuk memastikan bahwa akun tersebut dikonfigurasi untuk mencegah akses anonim. Untuk mengaudit sekumpulan akun penyimpanan atas kepatuhannya, gunakan Azure Policy. Azure Policy adalah layanan yang dapat Anda gunakan untuk membuat, menetapkan, dan mengelola kebijakan yang menerapkan aturan ke sumber daya Azure. Azure Policy membantu Anda menjaga sumber daya tersebut sesuai dengan standar perusahaan dan perjanjian tingkat layanan Anda. Untuk mengetahui informasi selengkapnya, lihat Gambaran Umum Azure Policy.

Membuat kebijakan dengan efek Audit

Azure Policy mendukung efek yang menentukan apa yang terjadi jika aturan kebijakan dievaluasi terhadap sumber daya. Efek Audit membuat peringatan saat sumber daya tidak sesuai, tetapi tidak menghentikan permintaan. Untuk informasi selengkapnya tentang efek, lihat Memahami efek Azure Policy.

Untuk membuat kebijakan dengan efek Audit untuk pengaturan akses anonim untuk akun penyimpanan dengan portal Azure, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.

  2. Di bagian Penulisan, pilih Definisi.

  3. Pilih Tambahkan definisi kebijakan untuk membuat definisi kebijakan baru.

  4. Untuk bidang Lokasi definisi, pilih tombol Lainnya untuk menentukan tempat sumber daya kebijakan audit berada.

  5. Tentukan nama untuk kebijakan tersebut. Anda dapat menentukan deskripsi dan kategori secara opsional.

  6. Pada Aturan kebijakan, tambahkan definisi kebijakan berikut ke bagian policyRule.

    {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "not": {
              "field":"Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
              "equals": "false"
            }
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    }
    
  7. Simpan kebijakan.

Menetapkan kebijakan

Selanjutnya, tetapkan kebijakan ke sumber daya. Cakupan kebijakan sesuai dengan sumber daya tersebut dan sumber daya apa pun di bawahnya. Untuk informasi selengkapnya tentang penetapan kebijakan, lihat Struktur penetapan Azure Policy.

Untuk menetapkan kebijakan dengan portal Microsoft Azure, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.
  2. Di bagian Penulisan, pilih Penugasan.
  3. Pilih Tetapkan kebijakan untuk membuat penetapan kebijakan baru.
  4. Untuk bidang Cakupan, pilih cakupan penetapan kebijakan.
  5. Untuk bidang Definisi kebijakan, pilih tombol Lainnya, lalu pilih kebijakan yang Anda tentukan di bagian sebelumnya dari daftar.
  6. Berikan nama untuk penetapan kebijakan tersebut. Deskripsinya bersifat opsional.
  7. Biarkan Pemberlakuan kebijakan diatur ke Aktif. Pengaturan ini tidak berpengaruh pada kebijakan audit.
  8. Pilih Tinjau + buat untuk membuat penetapan.

Melihat hasil kepatuhan

Setelah menetapkan kebijakan, Anda dapat melihat laporan kepatuhan. Laporan kepatuhan untuk kebijakan audit memberikan informasi tentang akun penyimpanan mana yang tidak mematuhi kebijakan. Untuk informasi selengkapnya, lihat Mendapatkan data kepatuhan kebijakan.

Mungkin perlu waktu beberapa menit agar laporan kepatuhan tersedia setelah penetapan kebijakan dibuat.

Untuk melihat laporan kepatuhan dalam portal Microsoft Azure, ikuti langkah-langkah berikut ini:

  1. Di portal Microsoft Azure, navigasikan ke layanan Azure Policy.

  2. Pilih Kepatuhan.

  3. Filter hasil untuk nama penetapan kebijakan yang Anda buat di langkah sebelumnya. Laporan menunjukkan berapa banyak sumber daya yang tidak sesuai dengan kebijakan.

  4. Anda dapat menelusuri paling detail laporan untuk detail tambahan, termasuk daftar akun penyimpanan yang tidak sesuai.

    Screenshot showing compliance report for audit policy for anonymous access

Menggunakan Kebijakan Azure untuk memberlakukan akses resmi

Azure Policy mendukung tata kelola cloud dengan memastikan sumber daya Azure mematuhi persyaratan dan standar. Untuk memastikan bahwa akun penyimpanan di organisasi Anda hanya mengizinkan permintaan resmi, Anda dapat membuat kebijakan yang mencegah pembuatan akun penyimpanan baru dengan pengaturan akses anonim yang memungkinkan permintaan anonim. Kebijakan ini juga akan mencegah semua perubahan konfigurasi pada akun yang ada jika pengaturan akses anonim untuk akun tersebut tidak sesuai dengan kebijakan.

Kebijakan penegakan menggunakan efek Tolak untuk mencegah permintaan yang akan membuat atau memodifikasi akun penyimpanan untuk memungkinkan akses anonim. Untuk informasi selengkapnya tentang efek, lihat Memahami efek Azure Policy.

Untuk membuat kebijakan dengan efek Tolak untuk pengaturan akses anonim yang memungkinkan permintaan anonim, ikuti langkah-langkah yang sama yang dijelaskan dalam Menggunakan Azure Policy untuk mengaudit kepatuhan, tetapi berikan JSON berikut di bagian policyRule dari definisi kebijakan:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Storage/storageAccounts"
      },
      {
        "not": {
          "field":"Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
          "equals": "false"
        }
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

Setelah Anda membuat kebijakan dengan efek Tolak dan menetapkannya ke cakupan, pengguna tidak dapat membuat akun penyimpanan yang memungkinkan akses anonim. Pengguna juga tidak dapat membuat perubahan konfigurasi apa pun pada akun penyimpanan yang ada yang saat ini memungkinkan akses anonim. Percobaan untuk melakukannya akan menyebabkan kesalahan. Pengaturan akses anonim untuk akun penyimpanan harus diatur ke false untuk melanjutkan pembuatan atau konfigurasi akun.

Gambar berikut menunjukkan kesalahan yang terjadi jika Anda mencoba membuat akun penyimpanan yang memungkinkan akses anonim ketika kebijakan dengan efek Tolak mengharuskan akses anonim tidak diizinkan.

Screenshot showing the error that occurs when creating a storage account in violation of policy

Langkah berikutnya