Есть ли способ позволить анонимный доступ к определенной корзине S3 только из моих экземпляров EC2 (всех из них) в одной учетной записи AWS?
Я знаю, что могу использовать роли IAM, но я обнаружил, что это слишком много движущихся частей и усложняет любые сценарии, которые должны использовать ключ доступа / секретный ключ (например, переписывание строк / etc / apt / * при его изменении). Не говоря уже о том, что нет возможности прикрепить роли к существующим экземплярам, что еще больше усложняет задачу.
Также невозможно просто ограничить доступ с помощью подсети VPC, поскольку доступ к корзине S3 осуществляется через общедоступный интерфейс EC2.
С тех пор AWS добавила конечные точки VPC для доступа к S3, вы можете прочитать о новой функции в блоге AWS: https://aws.amazon.com/blogs/aws/new-vpc-endpoint-for-amazon-s3/
Экземпляры EC2, работающие в частных подсетях VPC, теперь могут иметь контролируемый доступ к сегментам S3, объектам и функциям API, которые находятся в том же регионе, что и VPC. Вы можете использовать политику корзины S3, чтобы указать, какие VPC и какие конечные точки VPC имеют доступ к вашим корзинам S3.
Надеюсь, это поможет,
Аарон
Да, вы прикрепили политику корзины к корзине следующим образом:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AddCannedAcl",
"Effect":"Allow",
"Principal": {
"AWS": ["arn:aws:iam::111122223333:root"]
},
"Action":[
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource":["arn:aws:s3:::bucket/*"]
]
}]
}
где 111122223333
это идентификатор вашей учетной записи