не может читать и писать как частный пользователь IAM ведро AWS S3 - PullRequest
0 голосов
/ 09 февраля 2019

Я создал корзину на S3 и хочу, чтобы она была частной, так что никто с прямой связью какого-либо объекта не может получить доступ к этому объекту, а ко всем объектам этой корзины можно получить доступ только через мое приложение.

Я разработал свое приложение на Ruby on Rails , развернуло на Heroku и использую PaperClip для хранения файлов.

AsЯ не хочу публичного доступа, я заблокировал публичный доступ в Настройки публичного доступа в Разрешения на вкладке панели инструментов.

изображение скриншота настроек: enter image description here Я создал пользователя IAM, а также создал политику IAM и назначен этому пользователю.Это моя политика.Однако я получаю, Доступ запрещен Ошибка

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

В моем production.rb я использую учетные данные S3 для Paperlcip следующим образом:

config.paperclip_defaults = {
    storage: :s3,
    s3_credentials: {
      bucket: ENV['S3_BUCKET_NAME'],
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
      s3_region: ENV['AWS_REGION'],
    }
  }

И у меня естьопределили эти переменные среды в Heroku.Идентификатор ключа доступа и секретный ключ доступа принадлежат моему пользователю IAM.

В моем paperclip.rb у меня есть:

Paperclip::Attachment.default_options[:s3_host_name] = 's3.amazonaws.com'

ОШИБКА:

Ошибка, которую я получаю в консоли Chrome: Failed to load resource: the server responded with a status of 403 (Forbidden)

...