Score:1

การแปลงโฟลเดอร์เฉพาะของ S3 เป็นรายการไดเร็กทอรีที่สามารถเรียกดูได้โดยไม่กำหนดให้เป็นสาธารณะ

ธง ua

ฉันมีบัคเก็ตที่ฉันต้องการเข้าถึงโดยใช้เบราว์เซอร์ที่คล้ายกัน http://data.openspending.org/ และฉันต้องการให้มองเห็นเฉพาะโฟลเดอร์ย่อยเท่านั้น ดังนั้นหาก Bucket1 มีหลายโฟลเดอร์ ฉันแค่ต้องการแสดงและให้ผู้ใช้ดาวน์โหลดเนื้อหาของโฟลเดอร์ zipFiles (Bucket1/zipFiles/*)

รับคำแนะนำจาก https://github.com/rufuspollock/s3-bucket-listing ฉันสามารถทำได้ด้วยการเปลี่ยนแปลง 5 รายการต่อไปนี้

  1. ปิดการใช้งาน การปิดกั้นการเข้าถึงสาธารณะ ในสิทธิ์ถัง

  2. เพิ่มนโยบายที่ฝากข้อมูล

{
    "เวอร์ชัน": "2012-10-17",
    "คำแถลง": [
        {
            "ซิด": "AllowPublicRead",
            "เอฟเฟกต์": "อนุญาต",
            "อาจารย์ใหญ่": {
                "AWS": "*"
            },
            "การกระทำ": "s3:GetObject",
            "ทรัพยากร": [
                "arn:aws:s3:::Bucket1/index.html",
                "arn:aws:s3:::Bucket1/zipFiles/*"
            ]
        },
        {
            "ซิด": "AllowPublicList",
            "เอฟเฟกต์": "อนุญาต",
            "อาจารย์ใหญ่": "*",
            "การกระทำ": "s3:ListBucket",
            "ทรัพยากร": "arn:aws:s3:::Bucket1",
            "เงื่อนไข": {
                "StringLike": {
                    "s3:คำนำหน้า": "zipFiles/*"
                }
            }
        }
    ]
}
  1. เพิ่ม CORS ในสิทธิ์ฝากข้อมูล

  2. เพิ่ม index.html ที่รูทของบัคเก็ต

<!DOCTYPE html>
<html>
<head>
  <title>S3 Bucket Listing Generator</title>
</head>
<body>
  <div id="navigation"></div>
  <div id="listing"></div>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
  var S3BL_IGNORE_PATH = false;
  // var BUCKET_NAME = 'Bucket1';
  var BUCKET_URL = 'https://Bucket1.s3-eu-west-1.amazonaws.com';
  // var S3B_ROOT_DIR = 'SUBDIR_L1/SUBDIR_L2/';
  // var S3B_SORT = 'DEFAULT';
  // var EXCLUDE_FILE = 'index.html';  // change to array to exclude multiple files, regexp also supported e.g. /^(.*\/)?index.html$/ to exclude all index.html
  // var AUTO_TITLE = true;
  // var S3_REGION = 's3-eu-west-1';
</script>
<script type="text/javascript" src="https://rufuspollock.github.io/s3-bucket-listing/list.js"></script>

</body>
</html>
  1. เปิดใช้งานการโฮสต์เว็บไซต์แบบคงที่

ทำงานจนถึงจุดที่จำกัดการเข้าถึงโฟลเดอร์ zipFiles ปัญหาของฉันคือฉันไม่ต้องการเผยแพร่เว็บไซต์นี้สู่สาธารณะ ฉันต้องการให้ผู้ใช้ในองค์กรมองเห็นได้เท่านั้น ฉันลองสองสิ่ง อย่างแรกคือจำกัดด้วยที่อยู่ IP อีกอันถูก จำกัด โดย vpc ทั้งสองไม่ทำงานเนื่องจากที่อยู่ IP ไม่ได้เปรียบเทียบกับ IP ส่วนตัว แต่เป็น IP ภายนอก และการจำกัด vpc มีการอ้างอิงที่ฉันไม่เข้าใจอย่างสมบูรณ์

มีวิธีเปิดเผยเนื้อหาโฟลเดอร์ S3 เป็นโครงสร้างไดเร็กทอรีที่เรียกดูได้ (ไม่ใช่รูปแบบ xml) โดยไม่เผยแพร่ต่อสาธารณะหรือไม่ ช่วง IP ขององค์กรถูกเพียร์กับบัญชี aws เพื่อให้พนักงานสามารถเข้าถึง ec2 ด้วย IP ส่วนตัวสิ่งเดียวกันนี้เป็นไปได้สำหรับ S3 หรือไม่ หรือถ้าทำให้เป็นสาธารณะเป็นวิธีเดียว ฉันจะจำกัดการเข้าถึงเฉพาะผู้ใช้องค์กรได้อย่างไร

John Rotenstein avatar
in flag
มันไม่ง่าย. คุณ _might_ สามารถใช้ **VPC Endpoint สำหรับ S3** เพื่อเข้าถึง S3 จาก VPC ด้วยนโยบายบัคเก็ตที่จำกัดการเข้าถึงคำขอที่มาจาก VPC หรือเพิ่มนโยบายบัคเก็ตที่อนุญาตการเข้าถึงเฉพาะจากที่อยู่ IP สาธารณะที่ทราฟฟิกทั้งหมดของบริษัทของคุณดูเหมือนจะมาจากเมื่อเข้าสู่อินเทอร์เน็ต ฉันคิดว่าจุดเข้าใช้งาน S3 อาจใช้งานได้ แต่ฉันสงสัยว่าจะใช้งานได้กับการท่องเว็บแบบไม่ระบุตัวตน (เนื่องจากบัคเก็ตจำเป็นต้องเข้าถึงผ่าน ARN แทน URL)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา