Bagikan melalui


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.

  • MICROSOFT Entra ID (disarankan)
  • 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:

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:

Jika Anda mengatur x-ms-blob-public-access ke container, klien dapat memanggil operasi berikut secara anonim:

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