Как мне перезаписать разрешения файлов, которые не принадлежат мне в моем ведре?
Из документации AWS:
По умолчанию объект S3 принадлежит учетной записи AWS, которая его загрузила.Это верно даже тогда, когда ведро принадлежит другой учетной записи.Чтобы получить доступ к объекту, владелец объекта должен явно предоставить вам (владельцу корзины) доступ.
Владелец объекта может предоставить владельцу корзины полный контроль над объектом, обновив список управления доступом (ACL)объект.Владелец объекта может обновить ACL либо во время операции вставки или копирования, либо после добавления объекта в корзину.
В настоящее время ваше единственное решение - изменить список контроля доступа (ACL) длясуществующие файлы, выполнив команду cli, аналогичную приведенной ниже, из учетной записи владельца объекта или из консоли S3 владельца объекта.
aws s3api put-object-acl --bucket destination_awsexamplebucket --key keyname --acl bucket-owner-full-control
В дальнейшем, как я могу сделатьВы уверены, что файлы, загруженные в мое ведро, имеют полный контроль над ним?
Вы можете создать политику хранилища, предписывающую другим пользователям загружать в ваше хранилище, чтобы предоставить вам полный доступ к этим объектам.Это можно сделать, установив для access control list
объекта bucket-owner-full-control
.
Политика корзины, похожая на приведенную ниже, поможет:
{
"Id": "Policy1541018284691",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1541018283275",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::awsexamplebucket/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
},
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:user/ExampleUser"
]
}
}
]
}
Это гарантирует, что тот, кто загрузитв вашем ведре необходимо установить acl
на bucket-owner-full-control
, иначе загрузка не удастся, что приведет к ошибке AccessDenied.
Ссылки: