Atur ACL Kontainer
Operasi Set Container ACL
mengatur izin untuk kontainer yang ditentukan. Izin menunjukkan apakah blob dalam kontainer dapat diakses secara publik.
Pada versi 2009-09-19, izin kontainer menyediakan opsi berikut untuk mengelola akses kontainer:
Akses baca publik lengkap: Data kontainer dan blob dapat dibaca melalui permintaan anonim. Klien dapat menghitung blob dalam kontainer melalui permintaan anonim, tetapi tidak dapat menghitung kontainer dalam akun penyimpanan.
Akses baca publik hanya untuk blob: data Blob dalam kontainer ini dapat dibaca melalui permintaan anonim, tetapi data kontainer tidak tersedia. Klien tidak dapat menghitung blob dalam kontainer melalui permintaan anonim.
Tidak ada akses baca publik: Data kontainer dan blob hanya dapat dibaca oleh pemilik akun.
Set Container ACL
juga menetapkan kebijakan akses tersimpan untuk digunakan dengan tanda tangan akses bersama. Untuk informasi selengkapnya, lihat Menentukan kebijakan akses tersimpan.
Semua akses publik ke kontainer bersifat anonim, seperti halnya akses melalui tanda tangan akses bersama.
Minta
Permintaan Set Container ACL
dapat dibuat sebagai berikut. Kami menyarankan agar Anda menggunakan HTTPS. Ganti myaccount dengan nama akun penyimpanan Anda:
Metode | Meminta URI | Versi HTTP |
---|---|---|
PUT |
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl |
HTTP/1.1 |
Permintaan layanan penyimpanan yang ditimulasi
Saat membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port layanan Blob sebagai 127.0.0.1:10000
, diikuti dengan nama akun penyimpanan yang ditimulasi:
Metode | Meminta URI | Versi HTTP |
---|---|---|
PUT |
http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl |
HTTP/1.1 |
Untuk informasi selengkapnya, lihat Menggunakan emulator Azurite untuk pengembangan Azure Storage lokal.
Parameter URI
Anda dapat menentukan parameter tambahan berikut dalam URI permintaan:
Parameter | Deskripsi |
---|---|
timeout |
Fakultatif. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi blob service. |
Header permintaan
Header permintaan yang diperlukan dan opsional dijelaskan dalam tabel berikut:
Header permintaan | Deskripsi |
---|---|
Authorization |
Diperlukan. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
Date atau x-ms-date |
Diperlukan. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
x-ms-version |
Fakultatif. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan Versi untuk layanan Azure Storage. |
x-ms-blob-public-access |
Fakultatif. Menentukan apakah data dalam kontainer dapat diakses secara publik dan tingkat akses. Nilai yang mungkin meliputi: - container : Menentukan akses baca publik penuh untuk data kontainer dan blob. Klien dapat menghitung blob dalam kontainer melalui permintaan anonim, tetapi tidak dapat menghitung kontainer dalam akun penyimpanan.- blob: Menentukan akses baca publik untuk blob. Data blob dalam kontainer ini dapat dibaca melalui permintaan anonim, tetapi data kontainer tidak tersedia. Klien tidak dapat menghitung blob dalam kontainer melalui permintaan anonim.Jika header ini tidak disertakan dalam permintaan, data kontainer bersifat pribadi bagi pemilik akun. Perhatikan bahwa mengatur akses publik untuk kontainer di akun Azure Premium Storage tidak diizinkan. |
x-ms-lease-id: <ID> |
Opsional, versi 2012-02-12 dan yang lebih baru. Jika ditentukan, Set Container ACL berhasil hanya jika sewa kontainer aktif dan cocok dengan ID ini. Jika tidak ada sewa aktif atau ID tidak cocok, 412 (Prasyarat Gagal) dikembalikan. |
x-ms-client-request-id |
Fakultatif. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Memantau Azure Blob Storage. |
Operasi ini juga mendukung penggunaan header bersyarah untuk menjalankan operasi hanya jika kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat Menentukan header kondisional untuk operasi blob service.
Isi permintaan
Untuk menentukan kebijakan akses tersimpan, berikan pengidentifikasi unik dan kebijakan akses dalam isi permintaan untuk operasi Set Container ACL
.
Elemen SignedIdentifier
mencakup pengidentifikasi unik, seperti yang ditentukan dalam elemen Id
, dan detail kebijakan akses, seperti yang ditentukan dalam elemen AccessPolicy
. Panjang maksimum pengidentifikasi unik adalah 64 karakter.
Bidang Start
dan Expiry
harus dinyatakan sebagai waktu UTC dan harus mematuhi format ISO 8061 yang valid. Format ISO 8061 yang didukung meliputi yang berikut ini:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.fffffffTZD
Untuk bagian tanggal format ini, YYYY
adalah representasi tahun empat digit, MM
adalah representasi bulan dua digit, dan DD
adalah representasi hari dua digit. Untuk bagian waktu, hh
adalah representasi jam dalam notasi 24 jam, mm
adalah representasi menit dua digit, ss
adalah representasi kedua dua digit, dan fffffff
adalah representasi milidetik tujuh digit. Penunjuk waktu T
memisahkan bagian tanggal dan waktu string, dan penunjuk zona waktu TZD
menentukan zona waktu.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Permintaan sampel
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2009-09-28T08:49:37.0000000Z</Start>
<Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
<Permission>rwd</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Jawaban
Respons mencakup kode status HTTP dan sekumpulan header respons.
Kode status
Operasi yang berhasil mengembalikan kode status 200 (OK).
Untuk informasi selengkapnya tentang kode status, lihat Status dan kode kesalahan.
Header respons
Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1 .
Header respons | Deskripsi |
---|---|
ETag |
ETag untuk kontainer. Jika versi permintaan adalah 2011-08-18 atau yang lebih baru, nilai ETag diapit dalam tanda kutip. |
Last-Modified |
Mengembalikan tanggal dan waktu saat kontainer terakhir diubah. Format tanggal mengikuti RFC 1123. Untuk informasi selengkapnya, lihat Mewakili nilai tanggal/waktu di header. Setiap operasi yang memodifikasi kontainer atau properti atau metadatanya memperbarui waktu yang terakhir dimodifikasi, termasuk mengatur izin kontainer. Operasi pada blob tidak memengaruhi waktu terakhir dimodifikasi kontainer. |
x-ms-request-id |
Secara unik mengidentifikasi permintaan yang dibuat dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API |
x-ms-version |
Menunjukkan versi blob service yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru. |
Date |
Nilai tanggal/waktu UTC yang dihasilkan oleh layanan, yang menunjukkan waktu ketika respons dimulai. |
x-ms-client-request-id |
Dapat digunakan untuk memecahkan masalah permintaan dan respons yang sesuai. Nilai header ini sama dengan nilai header x-ms-client-request-id jika ada dalam permintaan dan nilai berisi tidak lebih dari 1.024 karakter ASCII yang terlihat. Jika header x-ms-client-request-id tidak ada dalam permintaan, header tersebut tidak akan ada dalam respons. |
Sampel respons
Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Otorisasi
Otorisasi diperlukan saat memanggil operasi akses data apa pun di Azure Storage. Anda dapat mengotorisasi operasi Set Container ACL
seperti yang dijelaskan di bawah ini.
Penting
Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan ke Azure Storage. MICROSOFT Entra ID menyediakan keamanan yang unggul dan kemudahan penggunaan dibandingkan dengan otorisasi Kunci Bersama.
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. Prinsip keamanan mungkin pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola Azure. Prinsip keamanan diautentikasi oleh MICROSOFT Entra ID untuk mengembalikan token OAuth 2.0. Token kemudian dapat digunakan untuk mengotorisasi permintaan terhadap layanan Blob.
Untuk mempelajari selengkapnya tentang otorisasi menggunakan ID Microsoft Entra, lihat Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.
Izin
Tercantum di bawah ini adalah tindakan RBAC yang diperlukan untuk pengguna, grup, identitas terkelola, atau perwakilan layanan Microsoft Entra untuk memanggil operasi Set Container ACL
, dan peran Azure RBAC bawaan yang paling tidak istimewa yang mencakup tindakan ini:
- tindakan Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/setAcl/action
- Peran bawaan dengan hak istimewa paling sedikit: Pemilik Data Blob Penyimpanan
Untuk mempelajari selengkapnya tentang menetapkan peran menggunakan Azure RBAC, lihat Menetapkan peran Azure untuk akses ke data blob.
Komentar
Saat Anda mengatur izin untuk kontainer, izin yang ada akan diganti. Untuk memperbarui izin kontainer, panggil Get Container ACL untuk mengambil semua kebijakan akses yang terkait dengan kontainer. Ubah kebijakan akses yang ingin Anda ubah, lalu panggil Set Container ACL
dengan kumpulan data lengkap untuk melakukan pembaruan.
Mengaktifkan akses publik anonim pada data kontainer
Untuk mengaktifkan akses baca publik anonim pada data kontainer, panggil Set Container ACL
dengan header x-ms-blob-public-access
diatur ke container
atau blob
. Untuk menonaktifkan akses anonim, panggil Set Container ACL
tanpa menentukan header x-ms-blob-public-access
.
Jika Anda mengatur x-ms-blob-public-access
ke blob
, klien dapat memanggil operasi berikut secara anonim:
Dapatkan Blob
Dapatkan Metadata Blob
dapatkan Daftar Blokir (hanya untuk daftar blokir yang diterapkan)
Jika Anda mengatur x-ms-blob-public-access
ke container
, klien dapat memanggil operasi berikut secara anonim:
Operasi akses blob yang tercantum di bagian sebelumnya.
Dapatkan Metadata Kontainer
Daftar Blob
Membuat kebijakan akses tingkat kontainer
Kebijakan akses tersimpan dapat menentukan waktu mulai, waktu kedaluwarsa, dan izin untuk tanda tangan akses bersama yang terkait dengannya. Bergantung pada bagaimana Anda ingin mengontrol akses ke sumber daya kontainer atau blob, Anda dapat menentukan semua parameter ini dalam kebijakan akses tersimpan, dan menghilangkannya dari URL untuk tanda tangan akses bersama. Dengan demikian, Anda dapat memodifikasi perilaku tanda tangan terkait kapan saja atau mencabutnya. Atau Anda dapat menentukan satu atau beberapa parameter kebijakan akses dalam kebijakan akses tersimpan, dan yang lain di URL. Terakhir, Anda dapat menentukan semua parameter pada URL. Dalam hal ini, Anda dapat menggunakan kebijakan akses tersimpan untuk mencabut tanda tangan, tetapi tidak mengubah perilakunya. Untuk informasi selengkapnya, lihat Menentukan kebijakan akses tersimpan.
Bersama-sama, tanda tangan akses bersama dan kebijakan akses tersimpan harus menyertakan semua bidang yang diperlukan untuk mengotorisasi tanda tangan. Jika ada bidang yang diperlukan yang hilang, permintaan gagal. Demikian juga, jika bidang ditentukan dalam URL tanda tangan akses bersama dan kebijakan akses tersimpan, permintaan gagal dengan kode status 400 (Permintaan Buruk).
Paling banyak, lima kebijakan akses terpisah dapat diatur untuk satu kontainer kapan saja. Jika lebih dari lima kebijakan akses diteruskan dalam isi permintaan, layanan mengembalikan kode status 400 (Permintaan Buruk).
Tanda tangan akses bersama dapat dikeluarkan pada kontainer atau blob terlepas dari apakah data kontainer tersedia untuk akses baca anonim. Tanda tangan akses bersama memberikan ukuran kontrol yang lebih besar atas cara, kapan, dan kepada siapa sumber daya dapat diakses.
Nota
Saat Anda membuat kebijakan akses tersimpan pada kontainer, kebijakan mungkin memerlukan waktu hingga 30 detik untuk diterapkan. Selama interval ini, hingga kebijakan menjadi aktif, tanda tangan akses bersama yang terkait dengan kebijakan akses tersimpan gagal dengan kode status 403 (Terlarang).
Penagihan
Permintaan harga dapat berasal dari klien yang menggunakan API Blob Storage, baik secara langsung melalui BLob Storage REST API, atau dari pustaka klien Azure Storage. Permintaan ini mengumpulkan biaya per transaksi. Jenis transaksi memengaruhi bagaimana akun ditagih. Misalnya, transaksi baca bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk permintaan Set Container ACL
berdasarkan jenis akun penyimpanan:
Operasi | Jenis akun penyimpanan | Kategori penagihan |
---|---|---|
Atur ACL Kontainer | Blob blok premium Tujuan umum standar v2 |
Operasi lain |
Atur ACL Kontainer | Tujuan umum standar v1 | Operasi tulis |
Untuk mempelajari tentang harga untuk kategori penagihan yang ditentukan, lihat Harga Azure Blob Storage.
Lihat juga
Membatasi akses ke kontainer dan blob
Mendelegasikan akses dengan tanda tangan akses bersama
Membuat dan menggunakan tanda tangan akses bersama
Menentukan kebijakan akses tersimpan
Dapatkan ACL Kontainer
Mengotorisasi permintaan ke Azure Storage
status dan kode kesalahan
kode kesalahan blob service