View a markdown version of this page

Kunci Kebijakan Khusus Otentikasi Tanda Tangan Amazon S3 Versi 4 - Amazon Simple Storage Service

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

Kunci Kebijakan Khusus Otentikasi Tanda Tangan Amazon S3 Versi 4

Tabel berikut menunjukkan kunci kebijakan terkait otentikasi Amazon S3 Signature Versi 4 yang dapat ada di kebijakan Amazon S3. Dalam kebijakan bucket, Anda dapat menambahkan kondisi ini untuk menerapkan perilaku tertentu saat permintaan diautentikasi menggunakan Signature Versi 4. Untuk kebijakan-kebijakan contoh, lihat Contoh kebijakan bucket menggunakan kunci kondisi terkait Signature Versi 4.

Kunci yang Berlaku Deskripsi

s3:signatureversion

Mengidentifikasi versi Tanda AWS Tangan yang ingin Anda dukung untuk permintaan yang diautentikasi. Untuk permintaan yang diautentikasi, Amazon S3 mendukung Tanda Tangan Versi 4 dan Tanda Tangan Versi 2. Anda dapat menambahkan kondisi ini dalam kebijakan bucket untuk memerlukan versi tanda tangan tertentu.

Nilai valid:

"AWS"mengidentifikasi Tanda Tangan Versi 2

"AWS4-HMAC-SHA256"mengidentifikasi Tanda Tangan Versi 4

s3:authType

Amazon S3 mendukung berbagai metode otentikasi (lihatPermintaan Otentikasi (AWS Versi Tanda Tangan 4). Anda dapat menggunakan kunci kondisi ini secara opsional untuk membatasi permintaan masuk untuk menggunakan metode otentikasi tertentu. Misalnya, Anda hanya dapat mengizinkan Authorization header HTTP untuk digunakan dalam otentikasi permintaan.

Nilai valid:

REST-HEADER

REST-QUERY-STRING

POST

s3:signatureAge

Lamanya waktu, dalam milidetik, tanda tangan valid dalam permintaan autentikasi.

Kondisi ini berfungsi untuk:

  • URL yang ditandatangani sebelumnya — di mana kondisi paling ketat menang. Untuk informasi selengkapnya, lihat Bek erja dengan URL yang ditandatangani sebelumnya.

  • POST yang telah ditandatangani sebelumnya — unggah file langsung ke S3 menggunakan POST yang telah ditandatangani sebelumnya. Untuk informasi selengkapnya, lihat Kebijakan POST Amazon S3.

Di Signature Version 2, nilai ini selalu disetel ke 0.

Di Signature Versi 4, kunci penandatangan berlaku hingga tujuh hari. Karena itu, tanda tangan juga berlaku hingga tujuh hari. Anda dapat menggunakan syarat ini untuk lebih lanjut membatasi umur tanda tangan. Untuk informasi selengkapnya, lihat Pengantar Permintaan Penandatanganan.

Nilai contoh: 100

s3:x-amz-content-sha256

Anda dapat menggunakan kunci syarat ini untuk melarang konten yang tidak ditandatangani di bucket Anda.

Ketika Anda menggunakan Signature Version 4 untuk permintaan yang menggunakan Authorization header Authorization, Anda menambahka x-amz-content-sha256 header x-amz-content-sha256 dalam perhitungan tanda tangan, lalu kemudian menetapkan nilainya ke muatan hash. Perhatikan bahwa kunci kondisi ini tidak mendukung x-amz-content-sha256 header sebagai parameter string kueri.

Anda dapat menggunakan kunci kondisi ini dalam kebijakan bucket Anda untuk menolak unggahan apa pun yang tidak ditandatangani payload. Misalnya, Anda dapat menolak unggahan yang menggunakan Authorization header untuk mengotentikasi permintaan tetapi tidak menandatangani payload. Untuk informasi selengkapnya, lihat Perhitungan Tanda Tangan untuk Header Otorisasi: Mentransfer Payload dalam Satu Potongan (AWS Versi Tanda Tangan 4).

Nilai valid: UNSIGNED-PAYLOAD

Contoh kebijakan bucket menggunakan kunci kondisi terkait Signature Versi 4

Kebijakan bucket berikut menolak permintaan URL Amazon S3 yang telah ditandatangani sebelumnya pada objek examplebucket jika tanda tangan berusia lebih dari sepuluh menit.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 min old", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "NumericGreaterThan": { "s3:signatureAge": 600000 } } } ] }

Kebijakan bucket berikut hanya mengizinkan permintaan yang menggunakan Authorization header untuk otentikasi permintaan. Setiap POST atau permintaan URL yang telah ditandatangani sebelumnya akan ditolak.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow only requests that use Authorization header for request authentication. Deny POST or presigned URL requests.", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "StringNotEquals": { "s3:authType": "REST-HEADER" } } } ] }

Kebijakan bucket berikut menolak permintaan yang menggunakan URL yang telah ditandatangani sebelumnya untuk otentikasi permintaan:

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyUploadsUsingPresignedURL", "Effect":"Deny", "Principal":"*", "Action":"s3:*", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition":{ "StringEquals":{ "s3:authType":"REST-query-string" } } } ] }

Kebijakan bucket berikut menolak upload dengan payload yang tidak ditandatangani:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Deny uploads with unsigned payloads that use the Authorization header.", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket3/*", "Condition": { "StringEquals": { "s3:x-amz-content-sha256": "UNSIGNED-PAYLOAD" } } } ] }