Mengatur ACL Kontainer

Operasi Set Container ACL menetapkan 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 penuh: 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 ditimulasikan:

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 Gunakan emulator Azurite untuk pengembangan Microsoft Azure Storage lokal.

Parameter URI

Anda dapat menentukan parameter tambahan berikut dalam URI permintaan:

Parameter Deskripsi
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur waktu habis untuk operasi Blob service.

Header permintaan

Header permintaan yang diperlukan dan opsional dijelaskan dalam tabel berikut:

Meminta kop Deskripsi
Authorization Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
Date atau x-ms-date Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
x-ms-version Pilihan. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-blob-public-access Opsional. Menentukan apakah data dalam kontainer dapat diakses secara publik dan tingkat akses. Nilai yang mungkin termasuk:

- 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 hanya berhasil 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 Opsional. 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 bersyar 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 tersebut Set Container ACL .

Elemen SignedIdentifier ini mencakup pengidentifikasi unik, seperti yang ditentukan dalam Id elemen , dan detail kebijakan akses, seperti yang ditentukan dalam AccessPolicy elemen . 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 merupakan representasi dua digit hari. 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 merupakan representasi milidetik tujuh digit. Penunjuk T waktu memisahkan bagian tanggal dan waktu string, dan penunjuk TZD zona waktu 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>  
  

Contoh permintaan

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>  
  

Respons

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 terakhir diubah, termasuk mengatur izin kontainer. Operasi pada blob tidak memengaruhi waktu terakhir kontainer yang dimodifikasi.
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 saat respons dimulai.
x-ms-client-request-id Dapat digunakan untuk memecahkan masalah permintaan dan respons yang sesuai. Nilai header ini sama dengan nilai x-ms-client-request-id header jika ada dalam permintaan dan nilainya berisi tidak lebih dari 1.024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header tidak akan ada dalam respons.

Respons sampel

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  

Authorization

Operasi Set Container ACL ini hanya mendukung otorisasi Kunci Bersama.

Keterangan

Hanya pemilik akun yang dapat mengakses sumber daya dalam kontainer tertentu, kecuali pemilik telah menentukan bahwa sumber daya kontainer tersedia untuk akses publik dengan mengatur izin pada kontainer, atau telah mengeluarkan tanda tangan akses bersama untuk sumber daya dalam kontainer.

Saat Anda mengatur izin untuk kontainer, izin yang ada akan diganti. Untuk memperbarui izin kontainer, panggil Dapatkan ACL Kontainer 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 yang x-ms-blob-public-access diatur ke container atau blob. Untuk menonaktifkan akses anonim, panggil Set Container ACL tanpa menentukan x-ms-blob-public-access header .

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:

Menetapkan 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 kontainer atau sumber daya 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 lainnya 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 ditetapkan 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 bagaimana, kapan, dan kepada siapa sumber daya dapat diakses.

Catatan

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).

Billing

Permintaan harga dapat berasal dari klien yang menggunakan API Blob Storage, baik 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, membaca transaksi bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk Set Container ACL permintaan berdasarkan jenis akun penyimpanan:

Operasi Jenis akun penyimpanan Kategori penagihan
Atur ACL Kontainer Objek besar biner blok premium
Tujuan umum standar v2
Operasi lainnya
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
Tentukan kebijakan akses tersimpan
Mendapatkan ACL Kontainer
Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Kode kesalahan blob service