อย่างไรก็ตาม การใช้งานบางอย่างจำเป็นต้องเรียกใช้ข้อมูลใน S3 แบบ public เนื่องจากไม่สามารถสร้าง Presigned URL ได้
วิธีเพิ่มความปลอดภัยของข้อมูลสำหรับกรณีนี้ คือ เพิ่มการตรวจสอบค่า HTTP Referrer ที่เรียกมายัง S3 เพื่อกำหนดสิทธิ์การเข้าถึงไฟล์ใน bucket
หมายเหตุ HTTP Referrer เป็นค่าอ้างอิงของ domain ที่ส่งคำร้องมายัง server
การอนุญาตให้เข้าถึงข้อมูลแบบ public สำหรับ Referrer ที่ระบุ เราสามารถกำหนด bucket policy ของ S3 ดังนี้
{ "Version":"2012-10-17", "Id":"http referer policy example", "Statement":[ { "Sid":"Allow get requests originating from www.example.com and example.com.", "Effect":"Allow", "Principal":"*", "Action":"s3:GetObject", "Resource":"arn:aws:s3:::examplebucket/*", "Condition":{ "StringLike":{ "aws:Referer":[ "http://www.example.com/*", "http://example.com/*" ] } } } ] }หลังจากที่กำหนด bucket policy ข้างบนแล้ว เราจำเป็นต้องอนุญาตให้เข้าถึงแบบ public ได้ โดยการอนุญาตจาก policies ด้วย ซึ่งเราสามารถตั้งค่าได้ตามภาพข้างล่างนี้
No comments:
Post a Comment