Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Permintaan Otentikasi: Menggunakan Header Otorisasi (AWS Versi Tanda Tangan 4)
Topik
Gambaran umum
Menggunakan Authorization header HTTP adalah metode yang paling umum untuk memberikan informasi otentikasi. Kecu ali permintaan POST dan permintaan yang ditandatangani menggunakan parameter kueri, semua operasi Amazon S3 menggunakan header Authorization permintaan untuk memberikan informasi otentikasi.
Berikut ini adalah contoh dari nilai Authorization header. Istirahat baris ditambahkan ke contoh ini untuk keterbacaan:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Tabel berikut menjelaskan berbagai komponen dari nilai Authorization header dalam contoh sebelumnya:
| Komponen | Deskripsi |
|---|---|
AWS4-HMAC-SHA256 |
Algoritma yang digunakan untuk menghitung tanda tangan. Anda harus memberikan nilai ini saat menggunakan Tanda T AWS angan Versi 4 untuk otentikasi. String menentukan AWS Signature Version 4 ( |
Credential |
ID kunci akses Anda dan informasi cakupan, yang mencakup tanggal, Wilayah, dan layanan yang digunakan untuk menghitung tanda tangan. String ini memiliki bentuk berikut:
Di mana:
|
SignedHeaders |
Daftar header permintaan yang dipisahkan titik koma yang Anda gunakan untuk menghitung.
|
Signature |
Tanda tangan 256-bit dinyatakan sebagai 64 karakter heksadesimal huruf kecil. Contoh: Perhatikan bahwa perhitungan tanda tangan bervariasi tergantung pada opsi yang Anda pilih untuk mentransfer payload. |
Perhitungan tanda tangan bervariasi tergantung pada metode yang Anda pilih untuk mentransfer payload permintaan. S3 mendukung opsi berikut:
-
Transfer payload dalam satu potongan — Dalam hal ini, Anda memiliki opsi perhitungan tanda tangan berikut:
-
Opsi payload yang ditandatangani — Anda dapat secara opsional menghitung seluruh checksum payload dan memasukkannya ke dalam perhitungan tanda tangan. Ini memberikan keamanan tambahan tetapi Anda perlu membaca payload Anda dua kali atau menyimpannya dalam memori.
Misalnya, untuk mengunggah file, Anda perlu membaca file terlebih dahulu untuk menghitung hash payload untuk perhitungan tanda tangan dan sekali lagi untuk transmisi saat Anda membuat permintaan. Untuk muatan yang lebih kecil, pendekatan ini mungkin lebih disukai. Namun, untuk file besar, membaca file dua kali bisa tidak efisien, jadi Anda mungkin ingin mengunggah data dalam potongan sebagai gantinya.
Kami sarankan Anda menyertakan payload checksum untuk keamanan tambahan.
-
Opsi payload yang tidak ditandatangani — Jangan sertakan checksum payload dalam perhitungan tanda tangan.
Untuk petunjuk langkah demi langkah untuk menghitung tanda tangan dan membangun nilai header Otorisasi, lihatPerhitungan Tanda Tangan untuk Header Otorisasi: Mentransfer Payload dalam Satu Potongan (AWS Versi Tanda Tangan 4).
-
-
Transfer payload dalam beberapa potongan (unggahan potongan) — Dalam hal ini Anda mentransfer payload dalam potongan. Anda dapat mentransfer muatan dalam potongan terlepas dari ukuran payloadnya.
Anda dapat memecah muatan Anda menjadi potongan-potongan. Ini bisa berupa potongan tetap atau ukuran variabel. Dengan mengunggah data dalam potongan, Anda menghindari membaca seluruh payload untuk menghitung tanda tangan. Sebagai gantinya, untuk potongan pertama, Anda menghitung tanda tangan benih yang hanya menggunakan header permintaan. Potongan kedua berisi tanda tangan untuk potongan pertama, dan setiap potongan berikutnya berisi tanda tangan untuk potongan yang mendahuluinya. Di akhir unggahan, Anda mengirim potongan terakhir dengan 0 byte data yang berisi tanda tangan dari potongan terakhir muatan. Untuk informasi selengkapnya, lihat Perhitungan Tanda Tangan untuk Header Otorisasi: Mentransfer Payload dalam Beberapa Potongan (Unggahan Terpotong) (AWS Versi Tanda Tangan 4).
Saat menandatangani permintaan Anda, Anda dapat menggunakan Tanda Tangan AWS Versi 4 atau Tanda T AWS angan Versi 4A. Perbedaan utama antara keduanya ditentukan oleh bagaimana tanda tangan dihitung. Dengan AWS Tanda Tangan Versi 4A, tanda tangan tidak Region-specific menyertakan informasi dan dihitung menggunakan AWS4-ECDSA-P256-SHA256 algoritma.
Selain opsi ini, Anda memiliki opsi untuk menyertakan trailer dengan permintaan Anda. Untuk menyertakan trailer dengan permintaan Anda, Anda perlu menentukannya di header dengan mengatur nilai yang x-amz-content-sha256 sesuai. Jika Anda menggunakan header trailing, Anda harus menyertakan x-amz-trailer dalam header dan menentukan nama header trailing sebagai string dalam daftar yang dipisahkan koma. Semua header trailing ditulis setelah potongan terakhir. Jika Anda mengunggah data dalam beberapa potongan, Anda harus mengirim potongan terakhir dengan 0 byte data sebelum mengirim header trailing.
Saat Anda mengirim permintaan, Anda harus memberi tahu Amazon S3 mana dari opsi sebelumnya yang telah Anda pilih dalam perhitungan tanda tangan Anda, dengan menambahkan x-amz-content-sha256 header dengan salah satu nilai berikut:
| Nilai header | Deskripsi |
|---|---|
|
Nilai checksum muatan aktual |
Nilai ini adalah checksum aktual dari objek Anda dan hanya mungkin ketika Anda mengunggah data dalam satu potongan. |
|
UNSIGNED-PAYLOAD |
Gunakan ini saat Anda mengunggah objek sebagai potongan tunggal yang tidak ditandatangani. |
|
STREAMING-UNSIGNED-PAYLOAD-TRAILER |
Gunakan ini saat mengirim muatan yang tidak ditandatangani melalui beberapa potongan. Dalam hal ini Anda juga memiliki header trailing setelah potongan diunggah. |
|
STREAMING-AWS4-HMAC-SHA256-PAYLOAD |
Gunakan ini saat mengirim muatan melalui beberapa potongan, dan potongan ditandatangani menggunakan. |
|
STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER |
Gunakan ini saat mengirim muatan melalui beberapa potongan, dan potongan ditandatangani menggunakan. |
|
STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD |
Gunakan ini saat mengirim muatan melalui beberapa potongan, dan potongan ditandatangani menggunakan. |
|
STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD-TRAILER |
Gunakan ini saat mengirim muatan melalui beberapa potongan, dan potongan ditandatangani menggunakan. |
Setelah menerima permintaan, Amazon S3 membuat ulang string untuk ditandatangani menggunakan informasi di Authorization header dan date header. Kemudian memverifikasi dengan layanan otentikasi tanda tangan cocok. Tanggal permintaan dapat ditentukan dengan menggunakan HTTP Date atau x-amz-date header. Jika kedua header hadir, diutam x-amz-date akan.
Jika tanda tangan cocok, Amazon S3 memproses permintaan Anda; jika tidak, permintaan Anda akan gagal.
Untuk informasi selengkapnya, lihat topik berikut:
Perhitungan tanda tangan untuk header trailing (unggahan berpotongan) (AWS Versi Tanda Tangan 4)