Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Elemen tanda tangan permintaan AWS API
penting
Kecuali Anda menggunakan AWS SDK atau CLI, 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 tugas yang rumit, dan kami menyarankan Anda menggunakan AWS SDK atau CLI bila memungkinkan.
Setiap permintaan HTTP/HTTPS yang menggunakan penandatanganan Signature Version 4 harus berisi elemen-elemen ini.
Spesifikasi titik akhir
Menentukan nama DNS dari titik akhir yang Anda kirim permintaan. Nama ini biasanya berisi kode layanan dan Wilayah. Misalnya, titik akhir untuk Amazon DynamoDB di Wilayah us-east-1
adalah. dynamodb.us-east-1.amazonaws.com
Untuk permintaan HTTP/1.1, Anda harus menyertakan header. Host
Untuk permintaan HTTP/2, Anda dapat menyertakan :authority
header atau header. Host
Hanya gunakan header :authority
untuk kepatuhan dengan spesifikasi HTTP/2. Tidak semua layanan mendukung permintaan HTTP/2.
Untuk titik akhir yang didukung oleh setiap layanan, lihat Titik akhir layanan dan kuota di. Referensi Umum AWS
Tindakan
Menentukan tindakan API untuk layanan. Misalnya, tindakan DynamoDB CreateTable
atau tindakan Amazon EC2. DescribeInstances
Untuk tindakan yang didukung oleh setiap layanan, lihat Referensi Otorisasi Layanan.
Parameter tindakan
Menentukan parameter untuk tindakan yang ditentukan dalam permintaan. Setiap tindakan AWS API memiliki seperangkat parameter wajib dan opsional. Versi API biasanya merupakan parameter yang diperlukan.
Untuk parameter yang didukung oleh tindakan API, lihat Referensi API untuk layanan.
Tanggal
Menentukan tanggal dan waktu permintaan. Menyertakan tanggal dan waktu dalam permintaan membantu mencegah pihak ketiga mencegat permintaan Anda dan mengirimkannya kembali nanti. Tanggal yang Anda tentukan dalam lingkup kredensi harus sesuai dengan tanggal permintaan Anda.
Cap waktu harus dalam UTC dan menggunakan format ISO 8601 berikut: YYYYMMDD T HHMMSS Z. Misalnya, 20220830T123600Z
. Jangan sertakan milidetik dalam stempel waktu.
Anda dapat menggunakan date
atau x-amz-date
header, atau menyertakan x-amz-date
sebagai parameter kueri. Jika kita tidak dapat menemukan x-amz-date
header, maka kita mencari date
header.
Informasi otentikasi
Setiap permintaan yang Anda kirim harus menyertakan informasi berikut. AWS menggunakan informasi ini untuk memastikan validitas dan keaslian permintaan.
-
Algoritma — Gunakan
AWS 4-HMAC-SHA256
untuk menentukan Signature Version 4 dengan algoritmaHMAC-SHA256
hash. -
Credential — String yang terdiri dari ID kunci akses Anda, tanggal dalam format YYYYMMDD, kode Region, kode layanan, dan string
aws4_request
terminasi, dipisahkan oleh garis miring (/). Kode Region, kode layanan, dan string terminasi harus menggunakan karakter huruf kecil.AKIAIOSFODNN7EXAMPLE
/YYYYMMDD
/region
/service
/aws4_request -
Header yang ditandatangani - Header HTTP untuk disertakan dalam tanda tangan, dipisahkan oleh titik koma (;). Misalnya,
host;x-amz-date
. -
Signature — String yang dikodekan heksadesimal yang mewakili tanda tangan yang dihitung. Anda harus menghitung tanda tangan menggunakan algoritme yang Anda tentukan di parameter
Algorithm
.