Подтвердить что ты не робот

Разрешения AWS S3 Bucket - доступ запрещен

Я пытаюсь дать себе разрешение на загрузку существующих файлов в ведро S3. Я изменил политику Bucket следующим образом:

        {
        "Sid": "someSID",
        "Action": "s3:*",
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucketname/AWSLogs/123123123123/*",
        "Principal": {
            "AWS": [
                "arn:aws:iam::123123123123:user/myuid"
            ]
        }
    }

Я понимаю, что добавление к политике должно дать мне полные права на "bucketname" для моей учетной записи "myuid", включая все файлы, которые уже находятся в этом ведре. Тем не менее, я все еще получаю ошибки Access Denied, когда пытаюсь загрузить любой из этих файлов по ссылке, которая появляется в консоли.

Любые мысли?

4b9b3361

Ответ 1

David, вы правы, но я обнаружил, что помимо того, что bennie ниже, вы также должны предоставить представление (или любой доступ, который вы хотите) для "Аутентифицированных пользователей". enter image description here

Но лучшим решением может быть изменение политики пользователя для предоставления доступа к ведру:

{
   "Statement": [
    {
      "Sid": "Stmt1350703615347",
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::mybucket/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": ["arn:aws:s3:::mybucket"],
      "Condition": {}
    }
  ]
}

Первый блок предоставляет все разрешения S3 всем элементам в ведре. Второй блок предоставляет разрешение списка на самом ковше.

Ответ 2

Шаг 1

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

enter image description here

Шаг 2

Тогда вы можете применить свою политику ведра enter image description here

надеюсь, это поможет

Ответ 3

Измените ресурс arn:aws:s3:::bucketname/AWSLogs/123123123123/* на arn:aws:s3:::bucketname/*, чтобы иметь полные права на bucketname

Ответ 4

Используйте метод ниже для загрузки любого файла для общедоступной формы с помощью TransferUtility в Android.

transferUtility.upload(String bucketName, String key, File file, CannedAccessControlList cannedAcl)

Пример

transferUtility.upload("MY_BUCKET_NAME", "FileName", your_file, CannedAccessControlList.PublicRead);

Ответ 5

Чтобы уточнить: это действительно не документировано, но вам нужны два оператора доступа.

В дополнение к вашему заявлению, которое позволяет выполнять действия с ресурсом "arn: aws: s3: bucketname/AWSLogs/123123123123/*", вам также понадобится второй оператор, который позволяет ListBucket "arn: aws: s3: bucketname", потому что внутренне клиент Aws попытается перечислить ведро, чтобы определить его существо, прежде чем делать свое действие.

Со вторым утверждением он должен выглядеть так:

"Statement": [
    {
        "Sid": "someSID",
        "Action": "ActionThatYouMeantToAllow",
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucketname/AWSLogs/123123123123/*",
        "Principal": {
            "AWS": [
                "arn:aws:iam::123123123123:user/myuid"
            ]
    },
    {
        "Sid": "someOtherSID",
        "Action": "ListBucket",
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucketname",
        "Principal": {
            "AWS": [
                "arn:aws:iam::123123123123:user/myuid"
            ]
    }
]

Примечание. Если вы используете IAM, пропустите часть "Principal".

Ответ 6

Перейдите по этой ссылке и создайте политику. В поле Principal укажите *

В Actions установите Get Objects

Задайте ARN как arn:aws:s3:<bucket_name>/*

Затем добавьте оператор и затем сгенерируйте политику, вы получите файл JSON, а затем просто скопируйте этот файл и вставьте его в Bucket Policy.

Для получения более подробной информации перейдите сюда.

Ответ 7

для показа статики сайта в s3:

unckeched blocking bucket public

Это политика ведра:

{
  "Version":"2012-10-17",
  "Statement":[{
  "Sid":"PublicReadGetObject",
    "Effect":"Allow",
  "Principal": "*",
  "Action":["s3:GetObject"],
  "Resource":["arn:aws:s3:::example-bucket/*"
  ]
  }
]
}

Ответ 8

Я предлагаю попробовать только с идентификатором учетной записи в основном разделе Json

Попробуйте: "Принципал": {"AWS": "123456789012"},