Доступ до Amazon S3 з приватної підмережі VPC


12

Якщо у мене працює VPC і деякі сервери, розташовані в приватній частині цієї мережі, які обробляють бекенд, завантажуючи файли з amazon s3, чи можу я отримати доступ до S3 внутрішньо, щоб отримати ці файли? Або я маю доступ до загальнодоступного Інтернету через NAT, завантажувати файли s3 через https та обробляти таким чином?


Дивіться мою відповідь на stackoverflow.com/questions/25539057/… про один із способів цього зробити, хоча моя відповідь більше стосується налаштування відра S3, щоб до нього ЛИШЕ можна було отримати доступ з певного VPC, тому він може лише частково відповісти на ваш питання.
Едді

Відповіді:


29

Ім'я користувача на зразок "Інтернет" я б очікував, що ви це дізнаєтесь. Але оскільки ви запитали ...

:)

VPC справді приватні. Тільки трафік, який явно ви дозволяєте, може перетинати межі VPC.

Отже, всередині VPC випадки, яким потрібен доступ до зовнішніх ресурсів, або повинні бути призначені EIP (у такому випадку вони можуть отримати доступ до зовнішніх ресурсів за допомогою інфраструктури AWS), або вам потрібно надати NAT-хост (у такому випадку весь трафік, наприклад, VPC через власний NAT).

Якщо ви вирішили надати власний хост NAT, пам’ятайте, що вам потрібно буде відключити перевірку джерела / цілі в цьому екземплярі, а також додати маршрут до замовчування до вашої приватної підмережі, вказуючи на хост NAT.

ОНОВЛЕННЯ (2015-05-10): З 11 травня 2015 року AWS випустила "VPC Endpoint" для S3 , що дозволяє отримувати доступ до S3 безпосередньо з VPC, не проходячи через хост-проксі або екземпляр NAT. На щастя, з поваги до справді приватного характеру VPC, ця функція за замовчуванням вимкнена, але її можна легко включити за допомогою консолі AWS або через їх API.


Як щодо контролю доступу? Коли трафік надходить через екземпляр NAT, як працюють політики ковшів S3 (як джерело NATET, як S3 може знати, яку роль або користувач запитує дані)?
Tuukka Mustonen

@TuukkaMustonen Єдине занепокоєння, якщо у вас є політика, заснована на джерелі IP. У цьому випадку вам потрібно використовувати загальнодоступний IP-примірник NAT в якості вихідного IP-адреси.
filipenf

2

Якщо ваш примірник знаходиться у загальній підмережі VPC, тоді:

  • У вашому екземплярі має бути призначена публічна IP-адреса
  • АБО у вас повинен бути еластичний IP, призначений вашому екземпляру

Якщо ваш примірник знаходиться в приватній підмережі VPC, тоді:

  • Потрібно мати пристрій NAT, що працює в загальнодоступній підмережі. Так що екземпляр у приватній підмережі VPC може отримати доступ до Інтернету через NAT та доступ до S3. Ви можете використовувати AWS VPC NAT або налаштувати свій власний (google для цього у випадку, якщо ви хочете налаштувати власний NAT)

Підсумок, щоб отримати доступ до S3, Ви повинні мати доступ до Інтернету.


FYI: за моїм вище оновленням доступ до Інтернету більше не потрібен.
ЄЕАА


-3

Вам не потрібно виходити "назовні" та "назад" у "чи змінювати щось про спосіб передачі даних у межах AWS-регіонів. Без плати за трансфер до / з відра в тому ж регіоні . Вам потрібно заплатити за зберігання.


Це не відповідає на питання ОП.
ЄЕАА

Не ясно, що він має на увазі мережу поза AWS. Дякую за телевізор!
чотириразовий

Ви пропускаєте суть. Він має випадки EC2 в приватній підмережі VPC. За замовчуванням вони не мають доступу до нічого поза цим VPC. Отже, як я вже заявив у своїй відповіді, йому потрібно буде скористатися одним із двох варіантів, щоб надати їм доступ до S3. Це не має нічого спільного з тим, чи є мережі всередині AWS чи поза нею, скоріше це стосується доступу поза його VPC.
ЄЕАА

@quadruplebucky, я даю зрозуміти, що я отримую доступ до "громадського Інтернету", щоб отримати файли через HTTPS.
Інтернет

Я збираюся тут поклонитися, у мене в цій боротьбі немає собаки. EEAA відповів на ваше запитання. Ви платите, якщо перетинаєте регіони.
чотиримісний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.