Как защитить некоторые файлы / объекты в публичном ведре? - PullRequest
0 голосов
/ 24 мая 2019

Я хотел бы создать общедоступную корзину чтения aws s3 с некоторыми файлами, доступными для чтения с ограничением роли IAM.

Прежде всего:

  • Iиспользуя ampify cli для развертывания моего «статического» сайта.
  • Сайт представляет собой приложение реакции
  • Это приложение имеет открытые страницы / компоненты реакции и область администратора
  • Я хотел бычтобы ограничить область администратора / страницы администратора / администратор реагировать на компоненты с ролью AAM IMS

Подробнее:

Приложение реакции очень большое, поэтому я разделил компонентыиспользуя функцию asyncComponent, такую ​​как const Dashboard = asyncComponent(() => import('./pages/Dashboard')) Поэтому, когда я собираю приложение вместо одного большого файла, у меня есть несколько маленьких файлов.И все эти файлы находятся в одном ведре.

Теперь я хочу создавать страницы администратора.Всегда используя asyncComponent, мы получаем коллекцию «Admin» файлов, которые размещаются в одной корзине.Но по соображениям безопасности я хочу ограничить доступ для аутентифицированных пользователей с определенной ролью IAM (например, для AdminRole).

Я прошёл много документации из config config или AWS :: S3 :: Bucket из cloudFormation, и явидел разные вещи, которые говорят мне, что это возможно, но я очень потерян в этом документе.

Итак, наконец, я спрашиваю:

Как я могу защитить некоторые файлы / объекты длядоступ для чтения в корзинах s3 с ролью IAM?

А как я могу «пометить» компоненты администратора в приложении реакции?или через усиление?может быть, с помощью регулярных выражений для файлов совпадений?или указанная папка?Чтобы применить это ограничение на чтение.

Заранее благодарим за ответ.

1 Ответ

1 голос
/ 28 мая 2019

Контент в Amazon S3 по умолчанию закрытый .

Таким образом, все, что вы рады видеть всем в мире, можно сделать общедоступным с помощью Bucket Policy (весь блок или часть блока) или через Списки контроля доступа (ACL) на самих объектах.

Чтобы обслуживать контент, который должен быть ограничен определенными пользователями, используйте преимущества Предварительно подписанные URL .Это ограниченные по времени URL-адреса, которые предоставляют временный доступ к частным объектам в Amazon S3.Их легко генерировать (вызовы API не требуются).

Как это будет работать:

  • Пользователи будут аутентифицировать с вашим приложением
  • Когда они хотят получить доступ к ограниченному контенту, приложение определяет, разрешен ли им доступ
  • Если им разрешен доступ, приложение создает предварительно подписанный URL-адрес .Они также могут использоваться в тегах <a> и <img> для ссылки на страницы и изображения.
  • Пользователи будут получать / просматривать контент, как обычные веб-компоненты
  • После время истечения прошло, предварительно подписанные URL-адреса больше не будут работать

См .: Совместное использование объекта с другими - Amazon Simple Storage Service

(Я не являюсь сотрудником Amplify, поэтому не могу сказать, как Amplify будет генерировать / использовать предварительно подписанные URL-адреса.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...