Доступ к корзине S3 запрещен из док-контейнера ec2 - PullRequest
1 голос
/ 02 мая 2019

Я запустил экземпляр EC2, который необходим для подключения к корзине s3.Я создал роль IAM и связал ее с экземпляром EC2.и из EC2 awscli я могу перечислить файлы, однако я развернул контейнер в этом EC2, и при попытке отобразить файл я получаю сообщение об ошибке -

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

Роль IAM

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

Может кто-нибудь предложить, пожалуйста.почему я могу получить доступ к s3 из экземпляра ec2, но не из контейнера, работающего на том же экземпляре EC2.

1 Ответ

1 голос
/ 03 мая 2019

Вызов ListBucket применяется на уровне сегмента, поэтому вам необходимо добавить блок в качестве ресурса в политику IAM (как написано, вы просто разрешали доступ к файлам блока):

"Resource": [
    "arn:aws:s3:::my-bucket",
    "arn:aws:s3:::my-bucket/*"
]

См. this для получения дополнительной информации об описании ресурса, необходимого для каждого разрешения.

Тот факт, что вы смогли получить список блоков из оболочки, запущенной на экземпляре EC2, указывает на то, что у вас настроен другой пользователь.Найдите файлы в $HOME/.aws и переменные среды, которые начинаются с AWS.

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