Menandatangani permintaan AWS 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.

Menandatangani permintaan AWS API

penting

Jika Anda menggunakan alat AWS SDK (lihat Contoh Kode dan Pustaka) atau baris AWS perintah (CLI) untuk mengirim permintaan API AWS, Anda dapat melewati bagian ini karena klien SDK dan CLI mengautentikasi permintaan Anda dengan menggunakan kunci akses yang Anda berikan. Kecuali Anda memiliki alasan bagus untuk tidak melakukannya, kami sarankan Anda selalu menggunakan SDK atau CLI.

Di Wilayah yang mendukung beberapa versi tanda tangan, permintaan penandatanganan secara manual berarti Anda harus menentukan versi tanda tangan yang digunakan. Saat Anda menyediakan permintaan ke Titik Akses Multi-Wilayah, SDK dan CLI secara otomatis beralih menggunakan Signature Version 4A tanpa konfigurasi tambahan.

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 untuk 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 Minta contoh tanda tangan.

Signature Version 4 adalah protokol AWS penandatanganan. AWS juga mendukung ekstensi, Signature Version 4A, yang mendukung tanda tangan untuk permintaan API Multi-wilayah. Untuk informasi lebih lanjut, lihat a-signing-examples proyek sigv4 di. GitHub

Diagram berikut menggambarkan proses umum komputasi tanda tangan.

Gambar bagian tanda tangan, termasuk string yang akan ditandatangani, kunci penandatanganan, dan tanda tangan yang dihitung.
  • String yang akan ditandatangani tergantung pada jenis permintaan. Misalnya, saat Anda menggunakan header Otorisasi HTTP atau parameter kueri untuk otentikasi, Anda menggunakan kombinasi elemen permintaan yang bervariasi untuk membuat string yang akan ditandatangani. Untuk permintaan HTTP POST, POST kebijakan dalam permintaan adalah string yang Anda tandatangani.

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

  • Ketika sebuah AWS layanan menerima permintaan yang diautentikasi, ia membuat ulang tanda tangan menggunakan informasi otentikasi yang terkandung dalam permintaan. Jika tanda tangan cocok, layanan memproses permintaan. Kalau tidak, itu menolak permintaan.

Kapan menandatangani permintaan

Saat Anda menulis kode kustom yang mengirimkan permintaan API AWS, Anda harus menyertakan kode yang menandatangani permintaan. Anda dapat menulis kode khusus karena:

  • Anda bekerja dengan bahasa pemrograman yang tidak ada SDK AWS .

  • Anda memerlukan kontrol penuh atas bagaimana permintaan dikirim AWS.

Mengapa permintaan ditandatangani

Proses penandatanganan membantu mengamankan permintaan dengan cara berikut:

  • Verifikasi identitas pemohon

    Permintaan yang diautentikasi memerlukan tanda tangan yang Anda buat dengan menggunakan kunci akses Anda (ID kunci akses, kunci akses rahasia). Jika Anda menggunakan kredenal keamanan sementara, perhitungan tanda tangan juga memerlukan token keamanan. Untuk informasi selengkapnya, lihat akses terprogram kredensional AWS keamanan.

  • Lindungi data dalam perjalanan

    Untuk mencegah gangguan pada permintaan saat sedang transit, beberapa elemen permintaan digunakan untuk menghitung hash (intisari) permintaan, dan nilai hash yang dihasilkan disertakan sebagai bagian dari permintaan. Ketika Layanan AWS menerima permintaan, ia menggunakan informasi yang sama untuk menghitung hash dan mencocokkannya dengan nilai hash dalam permintaan Anda. Jika nilainya tidak cocok, AWS tolak permintaan tersebut.

  • Lindungi dari potensi serangan replay

    Dalam kebanyakan kasus, permintaan harus mencapai AWS dalam waktu lima menit dari cap waktu dalam permintaan. Kalau tidak, AWS menolak permintaan itu.