Перезаписать разрешения объектных файлов S3, не принадлежащих владельцу корзины - PullRequest
1 голос
/ 24 сентября 2019

Я владелец ведра.некоторые из файлов в моем ведре не принадлежат мне или не имеют полного контроля над ним.Я хотел бы иметь полный доступ к файлам.К сожалению, нет владельца файла и он не может отследить, как файлы были загружены в корзину.

  • Как я могу перезаписать разрешения файлов, которые не принадлежат мне в моем ведре?
  • В дальнейшем, как я могу убедиться, что файлы, загруженные в мое ведро, что яиметь полный контроль над ним.

Я попытался скопировать и вставить файлы в себя в том же ведре s3, чтобы перезаписать разрешения, но не удалось.

Это политика сегмента

{"Version": "2012-10-17", "Id": "abcd", "Statement": [{"Sid": "abcd"," Effect ":" Allow "," Principal ": {" AWS ": [" arn: aws: iam :: 123456789012: user / xxx "]}," Action ": [" s3: GetObject "," s3: GetBucketLocation "," s3: ListBucket "," s3: PutObject "," s3: PutObjectAcl "]," Resource ": [" arn: aws: s3 ::: xyz / * "," arn: aws: s3 ::: xyz "]}]}

Я хочу иметь доступ / скачивать файлы, не принадлежащие мне, из моего хранилища s3

1 Ответ

2 голосов
/ 24 сентября 2019

Как мне перезаписать разрешения файлов, которые не принадлежат мне в моем ведре?

Из документации 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.

Ссылки:

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