aws s3 может загружать через cli и консоль, но не nodejs sdk - PullRequest
0 голосов
/ 18 октября 2019

Для корзины настроено отключение общего доступа, но со следующей политикой корзины:

{
    "Version": "2012-10-17",
    "Id": "Policy1571348371588",
    "Statement": [
        {
            "Sid": "Stmt1571348370292",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::932534461852:user/test-user"
                ]
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::test.test.com",
                "arn:aws:s3:::test.test.com/*"
            ]
        }
    ]
}

IAM также связан с этой политикой:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::*/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::test.test.com"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "s3:PutAccountPublicAccessBlock",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
    ]
}

Публичная корзинанастройки доступа:

Block all public access
On

    Block public access to buckets and objects granted through new access control lists (ACLs)
    On
    Block public access to buckets and objects granted through any access control lists (ACLs)
    On
    Block public access to buckets and objects granted through new public bucket policies
    On
    Block public and cross-account access to buckets and objects through any public bucket policies
    On

Я проверил, что cli и sdk используют один и тот же ключ доступа и секретный ключ, и я могу использовать консоль и cli для загрузки файлов без проблем, но когда я пытаюсь сaws-sdk: 2.551.0 файла node.js, я получил ошибку «Отказано в доступе».

Куда пойти не так?

1 Ответ

1 голос
/ 18 октября 2019

Вероятно, проблема в том, что ваш клиент Node.js использует неверные учетные данные, нацеливается на неправильный сегмент или вызывает действие, недопустимое в политике IAM. Вы не предоставили никакого кода, поэтому мы не можем проверить последний.

Кроме того, вам не нужно разрешать пользователю IAM в политике сегмента S3, если политика пользователя IAM допускает необходимые действия S3 /ресурсы, так что вы можете удалить политику корзины.

...