View a markdown version of this page

Elemen dari sebuah AWS Tanda tangan permintaan API - AWS Identity and Access Management

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

Elemen dari sebuah AWS Tanda tangan permintaan 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 Tanda Tangan Versi 4 bisa menjadi tugas yang rumit, dan kami menyarankan Anda menggunakan AWS SDK atau CLI bila memungkinkan.

Setiap HTTP/HTTPS permintaan yang menggunakan penandatanganan Signature Version 4 harus berisi elemen-elemen ini.

Spesifikasi titik akhir

Menentukan nama DNS titik akhir tempat Anda mengirim permintaan. Nama ini biasanya berisi kode layanan dan Wilayah. Misalnya, titik akhir untuk Amazon DynamoDB di Wil us-east-1 ayah adalah. dynamodb.us-east-1.amazonaws.com

Untuk HTTP/1.1 permintaan, Anda harus menyertakan Host header. Untuk HTTP/2 permintaan, Anda dapat menyertakan :authority header atau Host header. Gunakan hanya :authority header untuk kepatuhan dengan HTTP/2 spesifikasi. Tidak semua layanan mendukung HTTP/2 permintaan.

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 atau CreateTable tindakan Amazon EC DescribeInstances 2.

Untuk tindakan yang didukung oleh setiap layanan, lihat Referensi O torisasi Layanan.

Parameter tindakan

Menentukan parameter untuk tindakan yang ditentukan dalam permintaan. Setiap tindakan AWS API memiliki satu set parameter wajib dan opsional. Versi API biasanya merupakan parameter yang diperlukan.

Untuk parameter yang didukung oleh tindakan API, lihat Referensi API untuk layanan.

Date

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 cakupan 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 a 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 — Algoritma yang Anda gunakan sebagai bagian dari proses penandatanganan.

    • SIGv4 - Gunakan AWS4-HMAC-SHA256 untuk menentukan Signature Version 4 dengan algoritma HMAC-SHA256 hash.

    • Sigv4a — Gunakan AWS4-ECDSA-P256-SHA256 untuk menentukan algoritma ECDSA-P256-SHA-256 hash.

  • Credential — Sebuah string yang dibentuk dengan menggabungkan ID kunci akses Anda dan komponen cakupan kredensia Anda.

    • SIGv4 — Cakupan kredensi mencakup ID kunci akses Anda, tanggal dalam format YYYYMMDD, kode Wilayah, kode layanan, dan string aws4_request terminasi, dipisahkan oleh garis miring (/). Kode Wilayah, kode layanan, dan string terminasi harus menggunakan karakter huruf kecil.

      AKIAIOSFODNN7EXAMPLE/YYYYMMDD/region/service/aws4_request
    • SigV4a — Cakupan kredensi mencakup tanggal dalam format YYYYMMDD, nama layanan, dan string aws4_request terminasi, dipisahkan oleh garis miring (/). Perhatikan bahwa cakupan kredenSIAL tidak menyertakan wilayah karena wilayah tersebut tercakup dalam header X-Amz-Region-Set terpisah.

      AKIAIOSFODNN7EXAMPLE/YYYYMMDD/service/aws4_request
  • Header yang ditandatangani — Header HTTP untuk disertakan dalam tanda tangan, dipisahkan oleh titik koma (;). Misalnya, host;x-amz-date.

    Untuk SigV4a, Anda harus menyertakan header set wilayah yang menentukan kumpulan wilayah tempat permintaan akan valid. Header X-Amz-Region-Set ditentukan sebagai daftar nilai yang dipisahkan koma. Contoh berikut menunjukkan header wilayah yang memungkinkan permintaan dibuat di wilayah us-east-1 dan us-west-1.

    X-Amz-Region-Set=us-east-1,us-west-1

    Anda dapat menggunakan wildcard (*) di wilayah untuk menentukan beberapa wilayah. Dalam contoh berikut, header memungkinkan permintaan dibuat di us-west-1 dan us-west-2.

    X-Amz-Region-Set=us-west-*
  • Signature — Sebuah string berkode heksadesimal yang mewakili tanda tangan yang dihitung. Anda harus menghitung tanda tangan menggunakan algoritme yang Anda tentukan di parameter Algorithm.

Untuk informasi selengkapnya, lihat Metode autentikasi