Рейтинг:1

Преобразование определенной папки S3 в список каталогов для просмотра, не делая его общедоступным

флаг ua

У меня есть сегмент, к которому я хочу получить доступ с помощью браузера, похожего на http://data.openspending.org/ и я бы хотел, чтобы была видна только подпапка. Итак, если у Bucket1 есть несколько папок, я хочу показать и разрешить пользователям загружать содержимое папки zipFiles (Bucket1/zipFiles/*)

Принимая инструкции от https://github.com/rufuspollock/s3-bucket-listing Я смог сделать это со следующими 5 изменениями

  1. Запрещать блокировка общего доступа в правах корзины

  2. Добавить политику корзины

{
    «Версия»: «2012-10-17»,
    "Заявление": [
        {
            «Сид»: «Разрешить общедоступное чтение»,
            «Эффект»: «Разрешить»,
            "Главный": {
                "АВС": "*"
            },
            «Действие»: «s3: GetObject»,
            "Ресурс": [
                "arn:aws:s3:::Bucket1/index.html",
                "arn:aws:s3:::Bucket1/zipFiles/*"
            ]
        },
        {
            «Сид»: «Аллоупубликлист»,
            «Эффект»: «Разрешить»,
            "Главный": "*",
            "Действие": "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
Это не просто. Вы _можете_ использовать **Конечную точку VPC для S3** для доступа к S3 из VPC с политикой сегментов, которая ограничивает доступ к запросам, поступающим из VPC. Или добавьте политику сегментов, которая разрешает доступ только с общедоступного IP-адреса, с которого, по-видимому, исходит весь ваш корпоративный трафик, когда он попадает в Интернет. Я думал, что точка доступа S3 может работать, но я сомневаюсь, что она работает с анонимным просмотром веб-страниц (поскольку доступ к корзинам должен осуществляться через ARN вместо URL).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.