Белый список политики AWS S3 - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть политика сегментов, в которой мои диапазоны IP-адресов включены в AWS.У меня есть сервер EC2, на котором выполняется задание сборки Packer, которое пытается извлечь объект из моего хранилища, и я получаю ошибку 403 Forbidden, даже если IP-адрес моего сервера EC2, на котором выполняется указанное задание, явно находится в диапазоне белого списка.Даже когда я запускаю wget с машины в этом диапазоне CIDR, я получаю ту же ошибку.Я запутался, почему это происходит.Политика кажется в порядке.Ниже приведена моя политика корзины, IP-адрес моего сервера и ошибка:

Bucket Policy:

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::xxxxxxx",
                "arn:aws:s3:::xxxxxxx/*"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "10.x.x.x/12"
                    ]
                }
            }
        }
    ]
}

Server IP:

10.x.x.x/32

Error:

ui,message,    amazon-ebs:     "msg": "Error downloading 
https://s3.amazonaws.com/xxxxx/yyyy.zip to C:\\temp\\xxx.zip Exception 
calling \"DownloadFile\" with \"2\" argument(s): \"The remote server 
returned an error: (403) Forbidden.\""

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

aws:sourceIp ожидает общедоступный IP-адрес.Частные адреса по определению неоднозначны, и 10.x.x.x/12 является частным (RFC-1918) адресом, поэтому он никогда не будет совпадать.

Если вы не используете конечную точку S3 VPC, вы можете внести в белый список публичные.IP-адрес вашего шлюза NAT (при условии, что все экземпляры, имеющие доступ к шлюзу thr, должны иметь возможность доступа к корзине).

Если вы используете конечную точку S3 VPC, вы не можете создать белый список по IP:

вы не можете использовать условие aws: SourceIp в своих политиках IAM для запросов к Amazon S3 через конечную точку VPC.Это относится к политикам IAM для пользователей и ролей, а также к любым политикам сегмента.Если инструкция включает условие aws: SourceIp, значение не соответствует ни одному из предоставленных IP-адресов или диапазонов.

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html

Также есть следующее:

Примечание. Рекомендуется не использовать клавишу условия aws:SourceIp.

https://aws.amazon.com/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/

0 голосов
/ 22 ноября 2018

Amazon S3 живет в Интернете.

Поэтому при связи с S3 ваша система будет использовать Публичный IP-адрес .

Однако ваша политика включает только частных IP-адресов .Вот почему он не работает.

Ваши варианты:

  • Измените политику, чтобы использовать Публичный IP-адрес экземпляра (ов), илиобщедоступный IP-адрес шлюза NAT, если ваши экземпляры находятся в частной подсети, ИЛИ
  • Создайте конечную точку VPC шлюза , которая подключает VPC напрямую к Amazon S3.Затем вы можете настроить Bucket Policy, которая принимает трафик только через конечную точку VPC.
...