Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Tanda Tangan Versi 4 untuk API permintaan
penting
Jika Anda menggunakan alat AWS SDK (lihat Contoh Kode dan Pustaka
Di Wilayah yang mendukung beberapa versi tanda tangan, menandatangani permintaan secara manual berarti Anda harus menentukan versi tanda tangan yang akan digunakan. Saat Anda menyediakan permintaan ke Titik Akses Multi-Wilayah, SDKs dan CLI secara otomatis beralih menggunakan Signature Version 4A tanpa konfigurasi tambahan.
Informasi otentikasi yang Anda kirim dalam permintaan harus menyertakan tanda tangan. AWS Signature Version 4 (SiGv4) adalah protokol AWS penandatanganan untuk menambahkan informasi autentikasi ke permintaan. AWS API
Anda tidak menggunakan secret access key untuk menandatangani API permintaan. Sebagai gantinya, Anda menggunakan proses penandatanganan SiGv4. Menandatangani permintaan melibatkan:
-
Membuat permintaan kanonik berdasarkan detail permintaan.
-
Menghitung tanda tangan menggunakan AWS kredensional Anda.
-
Menambahkan tanda tangan ini ke permintaan sebagai header Otorisasi.
AWS kemudian mereplikasi proses ini dan memverifikasi tanda tangan, memberikan atau menolak akses yang sesuai.
SigV4 simetris mengharuskan Anda untuk mendapatkan kunci yang dicakup ke satu AWS layanan, di satu AWS wilayah, pada hari tertentu. Ini membuat kunci dan tanda tangan yang dihitung berbeda untuk setiap wilayah, artinya Anda harus mengetahui wilayah yang ditakdirkan untuk tanda tangan tersebut.
Asymmetric Signature Version 4 (Sigv4a) adalah ekstensi yang mendukung penandatanganan dengan algoritma baru, dan menghasilkan tanda tangan individual yang dapat diverifikasi di lebih dari satu wilayah. AWS Dengan Sigv4a, Anda dapat menandatangani permintaan untuk beberapa wilayah, dengan perutean dan failover yang mulus antar wilayah. Saat Anda menggunakan AWS SDK atau AWS CLI untuk memanggil fungsionalitas yang memerlukan penandatanganan multi-wilayah, jenis tanda tangan secara otomatis diubah untuk menggunakan Sigv4a. Untuk detailnya, lihat Cara kerja AWS Sigv4a.
Bagaimana AWS SiGv4 bekerja
Langkah-langkah berikut menjelaskan proses umum komputasi tanda tangan dengan SiGv4:
-
String yang akan ditandatangani tergantung pada jenis permintaan. Misalnya, saat Anda menggunakan header HTTP Otorisasi atau parameter kueri untuk otentikasi, Anda menggunakan kombinasi elemen permintaan untuk membuat string yang akan ditandatangani. Untuk HTTP POST permintaan,
POST
kebijakan dalam permintaan adalah string yang Anda tandatangani. -
Kunci penandatanganan adalah serangkaian perhitungan, dengan hasil dari setiap langkah dimasukkan 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. Jika tidak, ia menolak permintaan.
Untuk informasi selengkapnya, lihat Elemen tanda tangan AWS API permintaan.
Cara kerja AWS Sigv4a
Sigv4a menggunakan tanda tangan asimetris berdasarkan kriptografi kunci publik-pribadi. SIGv4amelalui proses derivasi kredensial cakupan serupa sepertiSIGv4, kecuali Sigv4a menggunakan kunci yang sama untuk menandatangani semua permintaan tanpa perlu mendapatkan kunci penandatanganan yang berbeda berdasarkan tanggal, layanan, dan wilayah. Sebuah Elliptic Curve Digital Signature Algorithm
Sistem ini menggunakan kriptografi asimetris untuk memverifikasi tanda tangan multi-wilayah, sehingga AWS hanya perlu menyimpan kunci publik Anda. Kunci publik bukan rahasia dan tidak dapat digunakan untuk menandatangani permintaan. Tanda tangan asimetris diperlukan untuk API permintaan multi-wilayah, seperti dengan Titik Akses Multi-Wilayah Amazon S3.
Langkah-langkah berikut menjelaskan proses umum komputasi tanda tangan dengan SiGv4a:
-
String yang akan ditandatangani tergantung pada jenis permintaan. Misalnya, saat Anda menggunakan header HTTP Otorisasi atau parameter kueri untuk otentikasi, Anda menggunakan kombinasi elemen permintaan untuk membuat string yang akan ditandatangani. Untuk HTTP POST permintaan,
POST
kebijakan dalam permintaan adalah string yang Anda tandatangani. -
Kunci penandatanganan berasal dari kunci akses AWS rahasia melalui serangkaian perhitungan, dengan hasil dari setiap langkah dimasukkan ke langkah berikutnya. Langkah terakhir menghasilkan keypair.
-
Ketika AWS layanan menerima permintaan yang ditandatangani dengan Sigv4a, AWS verifikasi tanda tangan hanya menggunakan separuh publik dari keypair. Jika tanda tangan valid, permintaan diautentikasi dan layanan memproses permintaan. Permintaan dengan tanda tangan yang tidak valid ditolak.
Kapan menandatangani permintaan
Saat Anda menulis kode khusus yang mengirimkan API permintaan AWS, Anda harus menyertakan kode yang menandatangani permintaan. Anda dapat menulis kode khusus karena:
-
Anda bekerja dengan bahasa pemrograman yang tidak ada AWS SDK.
-
Anda memerlukan kontrol penuh atas bagaimana permintaan dikirim AWS.
Sementara API permintaan mengautentikasi akses dengan AWS SigV4, AWS SDKs dan AWS CLI mengautentikasi permintaan Anda dengan menggunakan kunci akses yang Anda berikan. Untuk informasi selengkapnya tentang autentikasi dengan AWS SDKs dan AWS CLI, lihatSumber daya tambahan.
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 rahasia). Jika Anda menggunakan kredenal keamanan sementara, perhitungan tanda tangan juga memerlukan token keamanan. Untuk informasi selengkapnya, lihat kredensial AWS keamanan akses terprogram.
-
Melindungi data saat transit
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. Saat Layanan AWS menerima permintaan, ia menggunakan informasi yang sama untuk menghitung hash dan mencocokkannya dengan nilai hash dalam permintaan Anda. Jika nilai tidak cocok, AWS menyangkal permintaan.
-
Melindungi terhadap potensi serangan replay
Dalam kebanyakan kasus, permintaan harus mencapai AWS dalam waktu lima menit dari stempel waktu dalam permintaan. Jika tidak, AWS menyangkal permintaan.
AWS SigV4 dapat diekspresikan dalam header HTTP Otorisasi atau sebagai string kueri di. URL Untuk informasi selengkapnya, lihat Metode otentikasi.
Sumber daya tambahan
-
Untuk informasi selengkapnya tentang proses penandatanganan SiGv4 untuk berbagai layanan, lihat. Minta contoh tanda tangan
-
Untuk mengonfigurasi kredensional untuk akses terprogram AWS CLI, lihat Otentikasi dan akses kredensional di Panduan Pengguna Antarmuka Baris AWS Perintah.
-
AWS SDKsTermasuk kode sumber GitHub untuk menandatangani AWS API permintaan. Untuk contoh kode, lihatContoh proyek dalam AWS repositori sampel.
-
AWS SDK for .NET — AWS4Signer.cs
-
AWS SDK for C++ — AWSAuthV4Signer.cpp
-
AWS SDK for Go — sigv4.go
-
AWS SDK for Java — BaseAws4Signer.java
-
AWS SDK for JavaScript — tanda tangan-v4
-
AWS SDK for PHP — SignatureV4.php
-
AWS SDK for Python (Boto) - signers.py
-
AWS SDK for Ruby — penandatangan.rb
-