View a markdown version of this page

Permintaan Otentikasi (AWS Versi Tanda Tangan 4) - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Permintaan Otentikasi (AWS Versi Tanda Tangan 4)

Setiap interaksi dengan Amazon S3 diautentikasi atau dilakukan secara anonim. Bagian ini menjelaskan otentikasi permintaan dengan algoritma AWS Signature Version 4.

catatan

Jika Anda menggunakan AWS SDK (lihat Kode Contoh dan Pustaka) untuk mengirim permintaan, Anda tidak perlu membaca bagian ini karena klien SDK mengotentikasi permintaan Anda dengan menggunakan kunci akses yang Anda berikan. Kecuali Anda memiliki alasan bagus untuk tidak melakukannya, Anda harus selalu menggunakan AWS SDK. Di Wilayah yang mendukung kedua versi tanda tangan, Anda dapat meminta AWS SDK untuk menggunakan versi tanda tangan tertentu. Untuk informasi selengkapnya, lihat Mengirim permintaan yang diautentikasi menggunakan AWS SDK. Anda perlu membaca bagian ini hanya jika Anda menerapkan algoritma AWS Signature Version 4 di klien kustom Anda.

Otentik AWS asi dengan Tanda Tangan Versi 4 menyediakan beberapa atau semua hal berikut, tergantung pada cara Anda memilih untuk menandatangani permintaan Anda:

  • Verifikasi identitas pemohon — Permintaan yang diautentikasi memerlukan tanda tangan yang Anda buat dengan menggunakan kunci akses Anda (ID kunci akses, kunci akses rahasia). Untuk informasi tentang mendapatkan kunci akses, lihat Mem ahami dan Mendapatkan KredenSIAL Keamanan Anda di Referensi Umum AWS. Jika Anda menggunakan kredentif keamanan sementara, perhitungan tanda tangan juga memerlukan token keamanan. Untuk informasi lebih lanjut, lihat Meminta Kredensial Keamanan Sementara dalam Panduan Pengguna IAM.

  • In-transit perlindungan data — Untuk mencegah gangguan permintaan saat sedang transit, Anda menggunakan beberapa elemen permintaan untuk menghitung tanda tangan permintaan. Setelah menerima permintaan, Amazon S3 menghitung tanda tangan dengan menggunakan elemen permintaan yang sama. Jika komponen permintaan yang diterima oleh Amazon S3 tidak cocok dengan komponen yang digunakan untuk menghitung tanda tangan, Amazon S3 akan menolak permintaan tersebut.

  • Melindungi dari penggunaan kembali bagian permintaan yang ditandatangani — Bagian permintaan yang ditandatangani (menggunakan AWS Tanda Tangan) valid dalam waktu 15 menit dari stempel waktu dalam permintaan. Pihak yang tidak berwenang yang memiliki akses ke permintaan yang ditandatangani dapat mengubah bagian permintaan yang tidak ditandatangani tanpa mempengaruhi validitas permintaan dalam jendela 15 menit. Karena itu, sebaiknya Anda memaksimalkan perlindungan dengan menandatangani header dan isi permintaan, membuat permintaan HTTPS ke Amazon S3, dan dengan menggunakan kunci s3:x-amz-content-sha256 kondisi (lihatKunci Kebijakan Khusus Otentikasi Tanda Tangan Amazon S3 Versi 4) dalam AWS kebijakan untuk mengharuskan pengguna menandatangani badan permintaan Amazon S3.

catatan

Amazon S3 mendukung Signature Version 4, protokol untuk mengotentikasi permintaan API masuk ke AWS layanan, secara keseluruhan. Wilayah AWS Pada saat ini, Wilayah AWS dibuat sebelum 30 Januari 2014 akan terus mendukung protokol sebelumnya, Signature Version 2. Setiap Wilayah baru setelah 30 Januari 2014 hanya akan mendukung Tanda Tangan Versi 4 dan oleh karena itu semua permintaan ke Wilayah tersebut harus dibuat dengan Tanda Tangan Versi 4. Untuk informasi selengkapnya tentang AWS Tanda Tangan Versi 2, lihat Menandatangani dan Mengautentikasi Permintaan RES T di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Metode Autentikasi

Anda dapat mengungkapkan informasi otentikasi dengan menggunakan salah satu metode berikut:

  • Header Otorisasi HTTP — Menggunakan Authorization header HTTP adalah metode paling umum untuk mengotentikasi permintaan Amazon S3. Semua operasi REST Amazon S3 (kecuali untuk unggahan berbasis browser menggunakan permintaan POST) memerlukan header ini. Untuk informasi selengkapnya tentang nilai Authorization header, dan cara menghitung tanda tangan dan opsi terkait, lihatPermintaan Otentikasi: Menggunakan Header Otorisasi (AWS Versi Tanda Tangan 4).

  • Parameter string kueri — Anda dapat menggunakan string kueri untuk mengekspresikan permintaan sepenuhnya dalam URL. Dalam hal ini, Anda menggunakan parameter kueri untuk memberikan informasi permintaan, termasuk informasi otentikasi. Karena tanda tangan permintaan adalah bagian dari URL, jenis URL ini sering disebut sebagai URL yang ditandatangani sebelumnya. Anda dapat menggunakan URL yang telah ditandatangani sebelumnya untuk menyematkan tautan yang dapat diklik, yang dapat berlaku hingga tujuh hari, dalam HTML. Untuk informasi selengkapnya, lihat Otentikasi Permintaan: Menggunakan Parameter Kueri (AWS Versi Tanda Tangan 4).

Amazon S3 juga mendukung upload berbasis browser yang menggunakan permintaan HTTP POST. Dengan permintaan HTTP POST, Anda dapat mengunggah konten ke Amazon S3 langsung dari browser. Untuk informasi tentang mengotentikasi permintaan POST, lihatBrowser-Based Unggah Menggunakan POST (AWS Versi Tanda Tangan 4).

Pengantar Permintaan Penandatanganan

Informasi otentikasi yang Anda kirim dalam permintaan harus menyertakan tanda tangan. Untuk menghitung tanda tangan, pertama-tama Anda menggabungkan elemen permintaan pilih untuk membentuk string, yang disebut sebagai string yang akan ditandatangani. Anda kemudian menggunakan kunci penandatanganan untuk menghitung kode otentikasi pesan berbasis hash (HMAC) dari string yang akan ditandatangani.

Di AWS Signature Version 4, Anda tidak menggunakan kunci akses rahasia untuk menandatangani permintaan. Sebagai gantinya, pertama-tama Anda menggunakan kunci akses rahasia Anda untuk mendapatkan kunci penandatanganan. Kunci penandatanganan turunan khusus untuk tanggal, layanan, dan Wilayah. Untuk informasi selengkapnya tentang cara mendapatkan kunci penandatanganan dalam bahasa pemrograman yang berbeda, lihat Contoh cara mendapatkan kunci penandatanganan untuk Tanda Tangan Versi 4.

Diagram berikut menggambarkan proses umum menghitung tanda tangan.

Three-step proses yang menunjukkan StringToSign pembuatan, penandatanganan derivasi kunci, dan perhitungan tanda tangan menggunakan. HMAC-SHA256

String yang akan ditandatangani tergantung pada jenis permintaan. Misalnya, saat Anda menggunakan header Otorisasi HTTP atau parameter kueri untuk otentikasi, Anda menggunakan berbagai kombinasi elemen permintaan untuk membuat string yang akan ditandatangani. Untuk permintaan HTTP POST, kebijakan POST dalam permintaan adalah string yang Anda tandatangani. Untuk informasi lebih lanjut tentang komputasi string untuk ditandatangani, ikuti tautan yang disediakan di akhir bagian ini.

Untuk kunci penandatanganan, diagram menunjukkan serangkaian perhitungan, di mana hasil dari setiap langkah Anda masukkan ke langkah berikutnya. Langkah terakhir adalah kunci penandatanganan.

Setelah menerima permintaan yang diautentikasi, server Amazon S3 membuat ulang tanda tangan dengan menggunakan informasi otentikasi yang terkandung dalam permintaan. Jika tanda tangan cocok, Amazon S3 memproses permintaan Anda; jika tidak, permintaan ditolak.

Untuk informasi selengkapnya tentang mengotentikasi permintaan, lihat topik berikut: