Доступ к корзине AWS S3 запрещен
Вот политика корзины, которую я реализовал в своей корзине.
{
"Id": "Policy1535460101139",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1535460099601",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname",
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "vpc-id"
}
},
"Principal": "*"
}
]
}
Просто после сохранения этой политики я не могу вывести список или что-либо сделать с моим хранилищем из консоли (у меня полный доступ к s3), и все, что отображает доступ запрещен. Следовательно, когда я пытался скопировать файл из одного из экземпляров ec2 в VPC, копирование было успешным, но я не смог перечислить объекты в корзине. Я получаю сообщение об ошибке "Отказано в доступе" (у экземпляра ec2 есть роль с полным разрешением на ведро). Вот роль, прикрепленная к экземпляру EC2.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
То, что я хочу знать, является ли это странное поведение причиной моей политики ведра, или это может быть что-то еще. Если да, какие-либо советы о том, как я могу изменить свою политику ведра сейчас Более того, вот скриншот с моей консоли.
2 ответа
Причина, по которой я не смог получить доступ к корзине даже из экземпляра внутри vpc, заключалась в том, что у меня не было конечной точки VPC-S3, присоединенной к таблице маршрутизации подсети, которой принадлежал экземпляр. Слово "aws:SourceVpc"
используется, чтобы разрешить множественные подключения к конечной точке от одного и того же VPC, как указано в документах, вопреки тому, что я думал, т.е. он будет разрешать все запросы от упомянутого VPC. Таким образом, окончательное решение этого вопроса состоит в том, что вы можете удалить "корзину" из экземпляра, присутствующего внутри упомянутого VPC, при условии, что он принадлежит подсети, к которой присоединена конечная точка VPC - S3.
Да, это на 100% из-за вашей политики.
Политика говорит:
"Effect": "Deny",
-- Запретить доступ"Principal": "*"
-- Для всех"Resource": "arn:aws:s3:::bucketname"
- к этому ведру"StringNotEquals": {"aws:SourceVpc": "vpc-id"
- Если запрос не приходит от этого VPC
Что касается того, как это исправить, это зависит от ваших требований, которые вы не указали в своем вопросе.