

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
<a name="reference_sigv-signing-elements"></a>

**penting**  
Kecuali Anda menggunakan AWS SDKs 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 usaha yang rumit, dan kami menyarankan Anda menggunakan AWS SDKs atau CLI bila memungkinkan.

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

**Topics**
+ [Spesifikasi titik akhir](#endpoint-specification)
+ [Tindakan](#action)
+ [Parameter tindakan](#parameters)
+ [Date](#date)
+ [Informasi otentikasi](#authentication)

## Spesifikasi titik akhir
<a name="endpoint-specification"></a>

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](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) di. *Referensi Umum AWS*

## Tindakan
<a name="action"></a>

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](https://docs.aws.amazon.com//service-authorization/latest/reference/reference.html).

## Parameter tindakan
<a name="parameters"></a>

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

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

## Date
<a name="date"></a>

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
<a name="authentication"></a>

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 hash. `ECDSA-P256-SHA-256`
+ Credential — String yang dibentuk dengan menggabungkan ID kunci akses dan komponen cakupan kredensialmu.
  + SigV4 - Cakupan kredenal mencakup ID kunci akses Anda, tanggal dalam format *YYYYMMDD*, kode Wilayah, kode layanan, dan string `aws4_request` penghentian, dipisahkan oleh garis miring (/). Kode Region, kode layanan, dan string terminasi harus menggunakan karakter huruf kecil.

    ```
    AKIAIOSFODNN7EXAMPLE/YYYYMMDD/region/service/aws4_request
    ```
  + Sigv4a — Cakupan kredenal mencakup tanggal dalam format YYYYMMDD, nama layanan, dan string `aws4_request` terminasi, dipisahkan oleh garis miring (/). Perhatikan bahwa cakupan kredensi 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 kumpulan 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 (\$1) 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 — String yang dikodekan 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 otentikasi](reference_sigv-authentication-methods.md)