Политика Amazon S3 Bucket и CORS не работают - PullRequest
0 голосов
/ 07 января 2020

У меня есть эта политика, которая должна разрешать доступ только из моего веб-приложения. Однако, если я введу URL объекта на S3, я все равно смогу получить к нему доступ.

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

{
  "Id": "Policy15721415129441",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt15721415129441",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::BUCKET_NAME/*",
      "Condition": {
        "StringLike": {
          "aws:Referer": "https://localhost:55723/*"
        }
      },
      "Principal": {
        "AWS": [
          "arn:aws:iam::ACC_NO:root"
        ]
      }
    }
  ]
}

Конфигурация CORS

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://localhost:55723</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

1 Ответ

0 голосов
/ 07 января 2020

Вы можете добавить политику AWS S3, которая запрещает все IP-адреса, кроме указанного, например -

{
  "Version": "2012-10-17",
  "Id": "S3PolicyId1",

  "Statement": [

    {
      "Sid": "IPAllow",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::examplebucket/*",
      "Condition": {
         "NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}

      }
    }
  ]
}

Пример конфигурации CORS -

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Ссылки -
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

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