Unduh dan unggah objek dengan presigned URLs - Amazon Simple Storage Service

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

Unduh dan unggah objek dengan presigned URLs

Anda dapat menggunakan presigned URLs untuk memberikan akses terbatas waktu ke objek di Amazon S3 tanpa memperbarui kebijakan bucket Anda. Presigned URL dapat dimasukkan di browser atau digunakan oleh program untuk mengunduh objek. Kredensi yang digunakan oleh presigned URL adalah milik AWS pengguna yang menghasilkan. URL

Anda juga dapat menggunakan presigned URLs untuk mengizinkan seseorang mengunggah objek tertentu ke bucket Amazon S3 Anda. Ini memungkinkan unggahan tanpa mengharuskan pihak lain untuk memiliki kredensil atau izin AWS keamanan. Jika objek dengan kunci yang sama sudah ada di bucket seperti yang ditentukan dalam presignedURL, Amazon S3 menggantikan objek yang ada dengan objek yang diunggah.

Anda dapat menggunakan presigned URL beberapa kali, hingga tanggal dan waktu kedaluwarsa.

Saat Anda membuat presignedURL, Anda harus memberikan kredensi keamanan Anda, lalu tentukan yang berikut ini:

  • Bucket Amazon S3

  • Kunci objek (jika mengunduh objek ini akan ada di bucket Amazon S3 Anda, jika mengunggah ini adalah nama file yang akan diunggah)

  • HTTPMetode (GETuntuk mengunduh objek atau PUT untuk mengunggah)

  • Interval waktu kedaluwarsa

Saat ini, Amazon S3 presigned URLs tidak mendukung penggunaan algoritma checksum integritas data berikut (CRC32, CRC32C, SHA-1, SHA-256) saat Anda mengunggah objek. Untuk memverifikasi integritas objek Anda setelah mengunggah, Anda dapat memberikan MD5 intisari objek saat Anda mengunggahnya dengan URL presigned. Untuk informasi selengkapnya tentang integritas objek, lihat Memeriksa integritas objek.

Siapa yang bisa membuat presigned URL

Siapa pun yang memiliki kredensil keamanan yang valid dapat membuat presigned. URL Tetapi agar seseorang berhasil mengakses suatu objek, presigned URL harus dibuat oleh seseorang yang memiliki izin untuk melakukan operasi yang URL didasarkan pada presigned.

Berikut ini adalah jenis kredensil yang dapat Anda gunakan untuk membuat presigned: URL

  • IAMprofil contoh - Berlaku hingga 6 jam.

  • AWS Security Token Service–Berlaku hingga maksimum 36 jam saat ditandatangani dengan kredensial keamanan jangka panjang atau durasi kredensial sementara, mana yang berakhir terlebih dulu.

  • IAMpengguna - Berlaku hingga 7 hari saat Anda menggunakan Versi AWS Tanda Tangan 4.

    Untuk membuat presigned URL yang valid hingga 7 hari, pertama-tama delegasikan kredensi IAM pengguna (kunci akses dan kunci rahasia) ke metode yang Anda gunakan untuk membuat presigned. URL

catatan

Jika Anda membuat presigned URL menggunakan kredensi sementara, akan kedaluwarsa saat URL kredensialnya kedaluwarsa. Secara umum, presigned akan URL kedaluwarsa ketika kredensi yang Anda gunakan untuk membuatnya dicabut, dihapus, atau dinonaktifkan. Ini benar bahkan jika URL itu dibuat dengan waktu kedaluwarsa nanti. Untuk masa pakai kredensil keamanan sementara, lihat Membandingkan AWS STS API operasi di Panduan Pengguna. IAM

Waktu kedaluwarsa untuk presigned URLs

Presigned URL tetap berlaku untuk jangka waktu yang ditentukan saat URL dihasilkan. Jika Anda membuat presigned URL dengan konsol Amazon S3, waktu kedaluwarsa dapat diatur antara 1 menit dan 12 jam. Jika Anda menggunakan AWS CLI atau AWS SDKs, waktu kedaluwarsa dapat diatur setinggi 7 hari.

Jika Anda membuat presigned URL dengan menggunakan token sementara, maka token akan URL kedaluwarsa saat token kedaluwarsa. Secara umum, presigned akan URL kedaluwarsa ketika kredensi yang Anda gunakan untuk membuatnya dicabut, dihapus, atau dinonaktifkan. Ini benar bahkan jika URL itu dibuat dengan waktu kedaluwarsa nanti. Untuk informasi selengkapnya tentang bagaimana kredensial yang Anda gunakan memengaruhi waktu kedaluwarsanya, lihat Siapa yang bisa membuat presigned URL.

Amazon S3 memeriksa tanggal kedaluwarsa dan waktu yang ditandatangani URL pada saat permintaan. HTTP Misalnya, jika klien mulai mengunduh file besar segera sebelum waktu kedaluwarsa, pengunduhan berlanjut meskipun waktu kedaluwarsa berlalu selama pengunduhan. Akan tetapi, jika koneksi menurun dan klien mencoba memulai ulang unduhan setelah waktu kedaluwarsa berlalu, pengunduhan gagal.

Membatasi kemampuan yang telah ditentukan sebelumnya URL

Kemampuan presigned URL dibatasi oleh izin pengguna yang membuatnya. Intinya, presigned URLs adalah token pembawa yang memberikan akses kepada mereka yang memilikinya. Oleh karena itu, kami menyarankan agar Anda melindunginya sebagaimana mestinya. Berikut ini adalah beberapa metode yang dapat Anda gunakan untuk membatasi penggunaan URLs presigned Anda.

AWS Tanda Tangan Versi 4 (SiGv4)

Untuk menerapkan perilaku tertentu saat URL permintaan presigned diautentikasi menggunakan AWS Signature Versi 4 (SigV4), Anda dapat menggunakan kunci kondisi dalam kebijakan bucket dan kebijakan jalur akses. Misalnya, kebijakan bucket berikut menggunakan s3:signatureAge kondisi untuk menolak URL permintaan Amazon S3 yang telah ditetapkan sebelumnya pada objek di amzn-s3-demo-bucket ember jika tanda tangan berusia lebih dari 10 menit. Untuk menggunakan contoh ini, ganti placeholder masukan pengguna dengan informasi Anda sendiri.

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

Untuk informasi selengkapnya tentang kunci kebijakan terkait AWS Tanda Tangan Versi 4, lihat Otentikasi AWS Tanda Tangan Versi 4 di APIReferensi Layanan Penyimpanan Sederhana Amazon.

Pembatasan jalur jaringan

Jika Anda ingin membatasi penggunaan presigned URLs dan semua akses Amazon S3 ke jalur jaringan tertentu, Anda dapat AWS Identity and Access Management menulis IAM () kebijakan. Anda dapat menetapkan kebijakan ini pada IAM prinsipal yang melakukan panggilan, bucket Amazon S3, atau keduanya.

Pembatasan jalur jaringan pada IAM prinsipal mengharuskan pengguna kredensil tersebut untuk membuat permintaan dari jaringan yang ditentukan. Pembatasan pada bucket atau titik akses mengharuskan semua permintaan ke sumber daya tersebut berasal dari jaringan tertentu. Pembatasan ini juga berlaku di luar URL skenario yang telah ditentukan sebelumnya.

Kunci kondisi IAM global yang Anda gunakan bergantung pada jenis titik akhir. Jika Anda menggunakan titik akhir publik untuk Amazon S3, gunakan aws:SourceIp. Jika Anda menggunakan titik akhir virtual private cloud (VPC) ke Amazon S3, aws:SourceVpc gunakan atau. aws:SourceVpce

Pernyataan IAM kebijakan berikut mengharuskan prinsipal untuk mengakses AWS hanya dari rentang jaringan yang ditentukan. Dengan pernyataan kebijakan ini, semua akses harus berasal dari rentang itu. Ini termasuk kasus seseorang yang menggunakan presigned URL untuk Amazon S3. Untuk menggunakan contoh ini, ganti placeholder masukan pengguna dengan informasi Anda sendiri.

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }