Сбой рекурсивного копирования Amazon S3 - PullRequest
0 голосов
/ 12 мая 2018

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

я звоню

aws s3 cp s3://somebucket . --recursive

и получите

фатальная ошибка: произошла ошибка (AccessDenied) при вызове Операция ListObjects: доступ запрещен

Если я пытаюсь смоделировать эти действия с тем же пользователем

aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::123324234234:user/user1 --action-names iam:ListBucket iam:GetObject iam:PutObject --resource-arns arn:aws:s3:::somebucket

падает Allowed везде

 {
     "EvaluationResults": [
         {
             "EvalActionName": "iam:ListBucket",
             "EvalResourceName": "arn:aws:s3:::somebucket",
             "EvalDecision": "allowed",
             "MatchedStatements": [
                 {
                     "SourcePolicyId": "AdministratorAccess",
                     "StartPosition": {
                         "Line": 3,
                         "Column": 17
                     },
                     "EndPosition": {
                         "Line": 8,
                         "Column": 6
                     }
                 }
             ],
             "MissingContextValues": []
         },
         {
             "EvalActionName": "iam:GetObject",
             "EvalResourceName": "arn:aws:s3:::somebucket",
             "EvalDecision": "allowed",
             "MatchedStatements": [
                 {
                     "SourcePolicyId": "AdministratorAccess",
                     "StartPosition": {
                         "Line": 3,
                         "Column": 17
                     },
                     "EndPosition": {
                         "Line": 8,
                         "Column": 6
                     }
                 }
             ],
             "MissingContextValues": []
         },
         {
             "EvalActionName": "iam:PutObject",
             "EvalResourceName": "arn:aws:s3:::somebucket",
             "EvalDecision": "allowed",
             "MatchedStatements": [
                 {
                     "SourcePolicyId": "AdministratorAccess",
                     "StartPosition": {
                         "Line": 3,
                         "Column": 17
                     },
                     "EndPosition": {
                         "Line": 8,
                         "Column": 6
                     }
                 }
             ],
             "MissingContextValues": []
         }
     ]
 }

Чего мне не хватает?

Вот моя политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::somebucket",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::somebucket",
                "arn:aws:s3:::somebucket/*",
            ]
        }
    ]
}

1 Ответ

0 голосов
/ 12 мая 2018

решаемая. Мой aws-cli был настроен с неверным пользователем и пытался составить список с ним. Поскольку имена сегментов S3 являются глобальными, при этом не было выдано никакой ошибки. После того, как я указал правильный профиль, все прошло нормально.

Кстати, в таком случае можно просто добавить другого пользователя в разрешения ACL корзины и все!

enter image description here

Для этого теперь нужно ввести Canonical User ID, который можно узнать следующим образом:

aws s3api list-buckets

Эта нить AWS помогла мне.

...