Не удается выполнить S3 PutObject из экземпляра EC2, созданного в ELB - PullRequest
0 голосов
/ 11 марта 2019

При попытке выполнить PutObject в моем контейнере S3 из экземпляра EC2, созданного в ELB, появляется следующая ошибка:

AccessDenied: код отказа в доступе: 403, идентификатор запроса: УДАЛЕНО, идентификатор хоста: УДАЛЕНО

Они в одном VPC. Я добавил следующую политику для устранения ошибки, но не повезло:

{
    "Version": "2008-10-17",
    "Id": "Policy1397632521961",
    "Statement": [
        {
            "Sid": "Stmt1552298259912",
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::REDACTED/*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceVpc": "REDACTED"
                }
            },
            "Principal": "*"
        }
    ]
}

Я тоже пробовал это:

{
    "Version": "2008-10-17",
    "Id": "Policy1397632521960",
    "Statement": [
        {
            "Sid": "Stmt1552298259911",
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::REDACTED/*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:elasticbeanstalk:us-east-1:REDACTED:environment/REDACTED/REDACTED"
                }
            },
            "Principal": "*"
        }
    ]
}

Есть идеи?

1 Ответ

1 голос
/ 11 марта 2019

Что ж, экземпляры EC2 не создаются ELB (Elastic Load Balancer), я думаю, что вы вместо этого обращаетесь к Elastic Beanstalk (я знаю, иногда имена сбивают с толку)

Я предполагаю, что опубликованная вами политика IAM правильно прикреплена к вашим экземплярам EC2. Пожалуйста, проверьте это в консоли EC2.

Если это так, я бы предложил удалить условную часть. В этом нет необходимости, когда политики привязаны к экземпляру EC2. См. Пример политики в документе: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html

Политика для подключения к вашему экземпляру EC2:

{
    "Version": "2008-10-17",
    "Id": "Policy1397632521960",
    "Statement": [
        {
            "Sid": "Stmt1552298259911",
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::REDACTED/*"
        }
    ]
}
...