View a markdown version of this page

Metode autentikasi - 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.

Metode autentikasi

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.

Anda dapat mengungkapkan informasi otentikasi dengan menggunakan salah satu metode berikut.

Header otorisasi HTTP

AuthorizationHeader HTTP adalah metode yang paling umum untuk mengautentikasi permintaan. Semua operasi REST API (kecuali untuk unggahan berbasis browser menggunakan POST permintaan) memerlukan header ini.

Contoh berikut menunjukkan nilai Authorization header untuk SIGv4 dan SigV4a. Istirahat baris ditambahkan ke contoh ini untuk keterbacaan. Dalam kode Anda, header harus berupa string kontinu. Tidak ada koma antara algoritma dan Credential, tetapi elemen lainnya harus dipisahkan dengan koma.

contoh SigV4
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
contoh SigV4A
Authorization: AWS4-ECDSA-P256-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/s3/aws4_request, SignedHeaders=host;range;x-amz-date;x-amz-region-set, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

Tabel berikut menjelaskan berbagai komponen dari nilai header Otorisasi dalam contoh sebelumnya:

Komponen Deskripsi

Otorisasi

Algoritma yang digunakan untuk menghitung tanda tangan.

  • SigV4 - GunakanAWS4-HMAC-SHA256. String ini mengidentifikasi AWS sigv4 (AWS4) dan HMAC-SHA256 algoritma.

  • Sigv4a — Gunakan. AWS4-ECDSA-P256-SHA256 String ini mengidentifikasi AWS sigv4 (AWS4) dan ECDSA-P256-SHA-256 algoritma.

Kredensimen

ID kunci akses Anda dan informasi ruang lingkup.

  • SIGv4 — Sertakan tanggal, Wilayah, dan layanan yang digunakan untuk menghitung tanda tangan. String ini memiliki bentuk berikut:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

  • Sigv4a — Sertakan tanggal dan layanan yang digunakan untuk menghitung tanda tangan. String ini memiliki bentuk berikut:

    <your-access-key-id>/<date>/<aws-service>/aws4_request

<date>Nilai ditentukan menggunakan format YYYYMMDD. <aws-service>nilainya adalah S3 saat mengirim permintaan ke Amazon S3.

SignedHeaders

Daftar header permintaan yang dipisahkan titik koma yang Anda gunakan untuk menghitung Tanda Tangan. Daftar ini hanya mencakup nama header, dan nama header harus dalam huruf kecil. Misalnya: host;range;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.

Tanda tangan

Tanda tangan 256-bit dinyatakan sebagai 64 karakter heksadesimal huruf kecil. Sebagai contoh: fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

Perhatikan bahwa perhitungan tanda tangan bervariasi tergantung pada opsi yang Anda pilih untuk mentransfer payload.

Parameter string kueri

Anda dapat menggunakan string kueri untuk mengekspresikan permintaan sepenuhnya dalam URL. Dalam hal ini, Anda menggunakan parameter kueri untuk memberikan informasi permintaan, termasuk informasi otentikasi. Karena tanda tangan permintaan adalah bagian dari URL, jenis URL ini sering disebut sebagai URL yang ditandatangani sebelumnya. Anda dapat menggunakan URL yang telah ditandatangani sebelumnya untuk menyematkan tautan yang dapat diklik dalam HTML, yang dapat berlaku hingga tujuh hari. Untuk informasi selengkapnya, lihat Mengautentikasi Permintaan: Menggunakan Parameter Kueri AWS (Versi Tangan 4) di Refer ensi API Amazon S3.

Contoh berikut menunjukkan URL yang telah ditandatangani sebelumnya untuk SIGv4 dan Sigv4a. Istirahat baris ditambahkan ke contoh ini untuk keterbacaan:

contoh SigV4
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/<region>/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
contoh SigV4A
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256 & X-Amz-Credential=<your-access-key-id>/20240721/s3/aws4_request & X-amz-Region-Set=<regionset> & X-Amz-Date=20240721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host;x-amz-region-set & X-Amz-Signature=<signature-value>
catatan

X-Amz-CredentialNilai dalam URL menunjukkan karakter “/” hanya untuk keterbacaan. Dalam praktiknya, itu harus dikodekan sebagai %2F. Contoh:

&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request

Tabel berikut menjelaskan parameter kueri di URL yang menyediakan informasi otentikasi.

Nama parameter string kueri Deskripsi

X-Amz-Algorithm

Versi AWS tanda tangan dan algoritma yang Anda gunakan untuk menghitung tanda tangan.

  • SigV4 - GunakanAWS4-HMAC-SHA256. String ini mengidentifikasi AWS sigv4 (AWS4) dan HMAC-SHA256 algoritma.

  • Sigv4a — Gunakan. AWS4-ECDSA-P256-SHA256 String ini mengidentifikasi AWS sigv4 (AWS4) dan ECDSA-P256-SHA-256 algoritma.

X-Amz-Credential

Selain ID kunci akses Anda, parameter ini juga menyediakan ruang lingkup yang valid tanda tangan. Nilai ini harus sesuai dengan cakupan yang Anda gunakan dalam perhitungan tanda tangan, dibahas di bagian berikut.

  • SigV4 — Bentuk umum untuk nilai parameter ini adalah sebagai berikut: <your-access-key-id>/<date>/<AWS Region>/<AWS-service>/aws4_request

    Misalnya: AKIAIOSFODNN7EXAMPLE/20130721/us-east-1/s3/aws4_request

  • Sigv4a — Bentuk umum untuk nilai parameter ini adalah sebagai berikut: <your-access-key-id>/<date>/<AWS-service>/aws4_request

    Misalnya: AKIAIOSFODNN7EXAMPLE/20130721/s3/aws4_request

    Wilayah untuk SigV4a didefinisikan dalam header set wilayah. X-Amz-Region-Set

Untuk daftar string AWS regional, lihat Titik Ak hir Regional di Refer ensi AWS Umum.

X-Amz-Region-Set

Kumpulan wilayah tempat permintaan akan valid. Header x-amz-region-set ditentukan sebagai daftar nilai yang dipisahkan koma.

X-Amz-Date

Format tanggal dan waktu harus mengikuti standar ISO 8601, dan harus diformat dengan yyyyMMddTHHmmssZ format. Misalnya jika tanggal dan waktu adalah "08/01/2016 15:32:41.982-700" maka pertama-tama harus dikonversi ke UTC (Waktu Universal Terkoordinasi) dan kemudian dikirimkan sebagai “20160801T223241Z”.

X-Amz-Expires

Menyediakan periode waktu, dalam detik, di mana URL yang telah ditandatangani sebelumnya valid. Misalnya, 86400 (24 jam). Nilai ini adalah bilangan bulat. Nilai minimum yang dapat Anda tetapkan adalah 1, dan maksimum adalah 604800 (tujuh hari). URL yang telah ditandatangani dapat berlaku maksimal tujuh hari karena kunci penandatanganan yang Anda gunakan dalam perhitungan tanda tangan berlaku hingga tujuh hari.

X-Amz-SignedHeaders

Mencantumkan header yang Anda gunakan untuk menghitung tanda tangan. Header berikut diperlukan dalam perhitungan tanda tangan:

  • Header host HTTP.

  • Setiap header x-amz-* yang Anda rencanakan untuk ditambahkan ke permintaan.

  • Untuk Sigv4a, X-Amz-Region-Set diperlukan untuk menentukan wilayah di mana permintaan dapat dibuat.

Untuk keamanan tambahan, Anda harus menandatangani semua header permintaan yang Anda rencanakan untuk disertakan dalam permintaan Anda.

X-Amz-Signature

Menyediakan tanda tangan untuk mengotentikasi permintaan Anda. Tanda tangan ini harus sesuai dengan tanda tangan yang dihitung layanan; jika tidak, layanan menolak permintaan. Sebagai contoh, 733255ef022bec3f2a8701cd61d4b371f3f28c9f193a1f02279211d48d5193d7.

Perhitungan tanda tangan dijelaskan di bagian berikut.

X-Amz-Security-Token

Parameter kredensi opsional jika menggunakan kredenSIAL yang bersumber dari layanan STS.