Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
penting
Kecuali Anda menggunakan AWS SDKs atauCLI, Anda harus menulis kode untuk menghitung tanda tangan yang memberikan informasi otentikasi dalam permintaan Anda. Perhitungan AWS tanda tangan di Signature Version 4 dapat menjadi usaha yang rumit, dan kami menyarankan Anda menggunakan AWS SDKs atau CLI bila memungkinkan.
Anda dapat mengekspresikan informasi otentikasi dengan menggunakan salah satu metode berikut.
HTTPheader otorisasi
HTTPAuthorization
Header adalah metode yang paling umum untuk mengautentikasi permintaan. Semua REST API operasi (kecuali unggahan berbasis browser menggunakan POST
permintaan) memerlukan header ini.
Contoh berikut menunjukkan nilai Authorization
header untuk SigV4 dan Sigv4a. Jeda baris ditambahkan ke contoh ini untuk keterbacaan. Dalam kode Anda, header harus berupa string kontinu. Tidak ada koma antara algoritma dan Credential, tetapi elemen lainnya harus dipisahkan dengan koma.
contoh SiGv4
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
contoh Sigv4a
Authorization: AWS4-ECDSA-P256-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/s3/aws4_request, SignedHeaders=host;range;x-amz-date;x-amz-region-set, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Tabel berikut menjelaskan berbagai komponen nilai header Otorisasi pada contoh sebelumnya:
Komponen | Deskripsi |
---|---|
Otorisasi |
Algoritma yang digunakan untuk menghitung tanda tangan.
|
Kredensi |
ID kunci akses Anda dan informasi ruang lingkup.
<date>Nilai ditentukan menggunakan YYYYMMDD format. <aws-service>nilainya adalah S3 saat mengirim permintaan ke Amazon S3. |
SignedHeaders |
Daftar header permintaan yang dipisahkan titik koma yang Anda gunakan untuk menghitung Tanda Tangan. Daftar ini hanya mencakup nama header, dan nama header harus dalam huruf kecil. Misalnya: Untuk Sigv4a, Anda harus menyertakan header kumpulan wilayah yang menentukan kumpulan wilayah tempat permintaan akan valid. Header X-Amz-Region-Set ditentukan sebagai daftar nilai yang dipisahkan koma. |
Tanda tangan |
Tanda tangan 256-bit dinyatakan sebagai 64 karakter heksadesimal huruf kecil. Sebagai contoh: Perhatikan bahwa perhitungan tanda tangan bervariasi tergantung pada opsi yang Anda pilih untuk mentransfer muatan. |
Parameter string kueri
Anda dapat menggunakan string kueri untuk mengekspresikan permintaan sepenuhnya dalam fileURL. Dalam hal ini, Anda menggunakan parameter kueri untuk memberikan informasi permintaan, termasuk informasi otentikasi. Karena tanda tangan permintaan adalah bagian dariURL, jenis URL ini sering disebut sebagai presignedURL. Anda dapat menggunakan prasesigned URLs to embed link yang dapat diklikHTML, yang dapat berlaku hingga tujuh hari. Untuk informasi selengkapnya, lihat Mengautentikasi Permintaan: Menggunakan Parameter Kueri (Versi AWS Tanda Tangan 4) di Referensi Amazon API S3.
Contoh berikut menunjukkan presigned URLs untuk SigV4 dan Sigv4a. Jeda baris ditambahkan ke contoh ini untuk keterbacaan:
contoh SiGv4
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/<region>/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
contoh Sigv4a
http://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ?
X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256 &
X-Amz-Credential=<your-access-key-id>/20240721/s3/aws4_request &
X-amz-Region-Set=<regionset> &
X-Amz-Date=20240721T201207Z &
X-Amz-Expires=86400 &
X-Amz-SignedHeaders=host;x-amz-region-set &
X-Amz-Signature=<signature-value>
catatan
X-Amz-Credential
Nilai dalam URL menunjukkan karakter “/” hanya untuk keterbacaan. Dalam prakteknya, itu harus dikodekan sebagai% 2F. Sebagai contoh:
&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request
Tabel berikut menjelaskan parameter query dalam URL yang menyediakan informasi otentikasi.
Nama parameter string kueri | Deskripsi |
---|---|
X-Amz-Algorithm |
Versi AWS tanda tangan dan algoritma yang Anda gunakan untuk menghitung tanda tangan.
|
X-Amz-Credential |
Selain ID kunci akses Anda, parameter ini juga menyediakan ruang lingkup yang tanda tangannya valid. Nilai ini harus sesuai dengan cakupan yang Anda gunakan dalam perhitungan tanda tangan, dibahas di bagian berikut.
Untuk daftar string AWS regional, lihat Titik Akhir Regional di Referensi AWS Umum. |
Set Wilayah X-Amz |
Himpunan wilayah tempat permintaan akan valid. Header x-amz-region-set ditentukan sebagai daftar nilai yang dipisahkan koma. |
X-Amz-Date |
Format tanggal dan waktu harus mengikuti standar ISO 8601, dan harus diformat dengan format. |
X-Amz-Kedaluwarsa |
Menyediakan periode waktu, dalam hitungan detik, di mana presigned yang URL dihasilkan valid. Misalnya, 86400 (24 jam). Nilai ini adalah bilangan bulat. Nilai minimum yang dapat Anda tetapkan adalah 1, dan maksimum adalah 604800 (tujuh hari) .Presigned URL dapat berlaku selama maksimal tujuh hari karena kunci penandatanganan yang Anda gunakan dalam perhitungan tanda tangan berlaku hingga tujuh hari. |
X-Amz- SignedHeaders |
Daftar header yang Anda gunakan untuk menghitung tanda tangan. Header berikut diperlukan dalam perhitungan tanda tangan:
Untuk keamanan tambahan, Anda harus menandatangani semua header permintaan yang Anda rencanakan untuk disertakan dalam permintaan Anda. |
X-Amz-Signature |
Memberikan tanda tangan untuk mengautentikasi permintaan Anda. Tanda tangan ini harus sesuai dengan tanda tangan yang dihitung oleh layanan; jika tidak, layanan menolak permintaan tersebut. Sebagai contoh, Perhitungan tanda tangan dijelaskan di bagian berikut. |
X-Amz-Security-Token |
Parameter kredensi opsional jika menggunakan kredensional yang bersumber dari layanan. STS |