การเข้าถึง Amazon S3 จากเครือข่ายย่อย VPC ส่วนตัว


12

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


ดูคำตอบของฉันสำหรับstackoverflow.com/questions/25539057/…สำหรับวิธีหนึ่งในการทำเช่นนี้แม้ว่าคำตอบของฉันจะเกี่ยวข้องกับการตั้งค่า S3 bucket มากขึ้นเพื่อให้สามารถเข้าถึงได้เฉพาะจาก VPC ที่เฉพาะเจาะจงเท่านั้น คำถาม.
Eddie

คำตอบ:


29

ด้วยชื่อผู้ใช้เช่น "อินเทอร์เน็ต" ฉันคาดหวังให้คุณรู้ แต่เมื่อคุณถาม ...

:)

VPC นั้นเป็นส่วนตัวอย่างแท้จริง เฉพาะทราฟฟิกที่คุณอนุญาตอย่างชัดเจนเท่านั้นที่จะสามารถทำการขนส่งชายแดนของ VPC ได้

ดังนั้นภายใน VPC อินสแตนซ์ที่ต้องการการเข้าถึงทรัพยากรภายนอกจะต้องได้รับการกำหนด EIP (ซึ่งในกรณีนี้พวกเขาสามารถเข้าถึงทรัพยากรภายนอกโดยใช้โครงสร้างพื้นฐานของ AWS) หรือคุณต้องจัดหาโฮสต์ NAT (ซึ่งในกรณีนี้การจราจรทั้งหมด VPC ผ่าน NAT ของคุณเอง)

หากคุณเลือกที่จะให้บริการโฮสต์ NAT ของคุณเองโปรดจำไว้ว่าคุณจะต้องปิดใช้งานการตรวจสอบแหล่งที่มา / ปลายทางบนอินสแตนซ์นั้นรวมถึงการเพิ่มเส้นทางเริ่มต้นไปยังซับเน็ตส่วนตัวของคุณชี้ไปที่โฮสต์ NAT

อัปเดต (2015-05-10): ณ วันที่ 11 พฤษภาคม 2558 AWS ได้เปิดตัว"VPC Endpoint" สำหรับ S3ซึ่งอนุญาตให้เข้าถึง S3 โดยตรงจาก VPC โดยไม่ต้องผ่านพร็อกซีโฮสต์หรืออินสแตนซ์ NAT ขอบคุณที่เคารพในลักษณะที่เป็นส่วนตัวอย่างแท้จริงของ VPC คุณลักษณะนี้จะปิดใช้งานตามค่าเริ่มต้น แต่สามารถเปิดใช้งานได้อย่างง่ายดายโดยใช้คอนโซล AWS หรือผ่าน API


วิธีการเกี่ยวกับการควบคุมการเข้าถึง? เมื่อการรับส่งข้อมูลผ่าน NAT-instance นโยบายการฝากข้อมูลของ S3 ทำงานอย่างไร (เนื่องจากต้นกำเนิดเป็น NATted S3 จะทราบได้อย่างไรว่าบทบาทหรือผู้ใช้กำลังร้องขอข้อมูล)
Tuukka Mustonen

@TuukkaMustonen ข้อกังวลเพียงอย่างเดียวคือถ้าคุณมีนโยบายตาม IP ต้นทาง ในกรณีนี้คุณจะต้องใช้ IP สาธารณะของอินสแตนซ์ NAT เป็น IP ต้นทาง
filipenf

2

หากอินสแตนซ์ของคุณอยู่ใน Public Subnet ของ VPC ดังนั้น:

  • คุณควรกำหนดที่อยู่ IP สาธารณะให้กับอินสแตนซ์ของคุณ
  • หรือคุณควรกำหนด IP ยืดหยุ่นให้กับอินสแตนซ์ของคุณ

หากอินสแตนซ์ของคุณอยู่ในเครือข่ายย่อยส่วนตัวของ VPC ดังนั้น:

  • คุณต้องให้อุปกรณ์ NAT ทำงานในซับเน็ตสาธารณะ เพื่อให้อินสแตนซ์ใน subnet ส่วนตัวของ VPC สามารถเข้าถึงอินเทอร์เน็ตผ่าน NAT และเข้าถึง S3 คุณสามารถใช้ AWS VPC NAT หรือคุณสามารถกำหนดค่าของคุณเอง (google สำหรับสิ่งนี้ในกรณีที่คุณต้องการตั้งค่า NAT ของคุณเอง)

บรรทัดล่างเพื่อเข้าถึง S3 คุณต้องสามารถเข้าถึงอินเทอร์เน็ตได้


FYI: ตามการอัปเดตของฉันข้างต้นไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตอีกต่อไป
EEAA


-3

คุณไม่ต้องไป "ออก" และย้อนกลับ "ใน" หรือเปลี่ยนแปลงอะไรก็ได้เกี่ยวกับวิธีการถ่ายโอนข้อมูลภายในภูมิภาค AWS ไม่มีค่าใช้จ่ายสำหรับการถ่ายโอนไปยัง / จากบุ้งกี๋ในภูมิภาคเดียวกัน คุณต้องจ่ายค่าจัดเก็บ


นี่ไม่ได้ตอบคำถามของ OP
EEAA

ไม่ชัดเจนว่าเขาอ้างถึงเครือข่ายนอก AWS ขอบคุณสำหรับ dv!
quadruplebucky

คุณไม่มีจุด เขามีอินสแตนซ์ EC2 ในเครือข่ายย่อย VPC ส่วนตัว ตามค่าเริ่มต้นสิ่งเหล่านี้จะไม่สามารถเข้าถึงสิ่งใดนอกเหนือจาก VPC นั้น ดังนั้นตามที่ฉันระบุไว้ในคำตอบของฉันเขาจะต้องใช้หนึ่งในสองตัวเลือกเพื่อให้พวกเขาเข้าถึง S3 มันไม่เกี่ยวกับว่าเครือข่ายอยู่ภายในหรือภายนอก AWS แต่เกี่ยวข้องกับการเข้าถึงนอก VPC ของเขา
EEAA

@quadruplebucky ฉันเห็นได้ชัดว่าฉันกำลังเข้าถึง "อินเทอร์เน็ตสาธารณะ" เพื่อรับไฟล์ผ่าน HTTPS
อินเทอร์เน็ต

ฉันจะโค้งคำนับที่นี่ฉันไม่มีสุนัขในการต่อสู้ครั้งนี้ EEAA ตอบคำถามของคุณ คุณจ่ายถ้าคุณข้ามภูมิภาค
quadruplebucky
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.