Доступ к ковшу AWS S3 от EC2
Мне нужно запустить ведро S3, чтобы мои экземпляры EC2 имели доступ к хранилищу файлов изображений. Экземпляры EC2 нуждаются в разрешениях на чтение/запись. Я не хочу, чтобы ядро S3 было общедоступным, я хочу, чтобы экземпляры EC2 имели к нему доступ.
Другой способ: мои экземпляры EC2 управляются OpsWorks, и я могу иметь возможность запускать разные экземпляры в зависимости от загрузки/использования. Если бы я ограничивал его по IP, я не всегда мог бы знать IP, который имеет экземпляры EC2. Могу ли я ограничить VPC?
Должен ли я сделать свой ведро S3 включенным для статического хостинга?
Нужно ли делать все файлы в ведре общедоступными, чтобы это работало?
Ответы
Ответ 1
Вам не нужно делать ведро общедоступным, а файлы - общедоступными. Ведро и его содержимое можно хранить в тайне.
Не ограничивайте доступ к сегменту на основе IP-адреса, а ограничивайте его на основе роли IAM, которую использует экземпляр EC2.
- Создайте роль экземпляра IAM EC2 для ваших экземпляров EC2.
- Запустите ваши экземпляры EC2, используя эту роль.
- Назначьте этой роли IAM политику доступа к корзине S3.
Например:
{
"Version": "2012-10-17",
"Statement":[{
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"]
}
]
}
- Если вы хотите ограничить доступ к самой корзине, попробуйте политику корзины S3.
Например:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::111122223333:role/my-ec2-role"]
},
"Action": "s3:*",
"Resource": ["arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"]
}
]
}
Дополнительная информация: http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc
Ответ 2
Роль IAM - это решение для вас.
Вам нужно создать роль с правами доступа s3, если экземпляр ec2 был запущен без какой-либо роли, вам придется перестроить его с назначенной ролью.
![введите описание изображения здесь]()
Refer: Разрешить AWS OpsWorks действовать по вашему отношению
Ответ 3
Это можно сделать очень просто.
Выполните следующие действия:
- Откройте AWS EC2 на консоли.
- Выберите экземпляр и перейдите к действиям.
- Выберите настройки экземпляров и выберите "Присоединить/заменить роль IAM"
- Создайте новую роль и присоедините к ней политику S3FullAccess.
После этого подключитесь к экземпляру AWS, а все остальное будет выполнено с помощью следующих команд консоли:
- aws s3 cp расположение файла/имя файла s3://имя_хранилища
Обратите внимание... расположение файла относится к локальному адресу. И имя ведра - это имя вашего ведра.
Также обратите внимание: это возможно, если ваш экземпляр и корзина S3 находятся в одной учетной записи.
Приветствия.