S3-ковш. Произошла неизвестная ошибка: действие не применяется к каким-либо ресурсам в инструкции. Как создать политику s3-bucket?

Я пытаюсь следовать следующему руководству: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html, но возникла неизвестная ошибка Отсутствует обязательное поле основного поля:

введите описание изображения здесь

Json:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:ListObjectsV2",
                "s3:ListObjects"
            ],
            "Resource": "arn:aws:s3:::awesome-proj/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::awesome-proj"
        }
    ]
}

Я создал политику, но результат тот же:

введите описание изображения здесь

Я обновил значения Resource и Principal -:

{
    "Id": "Policy1608869326556",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1608869322454",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::awesome-proj/*",
            "Principal": "*"
        }
    ]
}

В результате у меня появляется ошибка Действие не применяется ни к одному ресурсу (ам) в заявлении.

Как правильно создать политику s3-bucket?

Не существует такой вещи, как ec2-user для политик сегментов. Чего ты хочешь добиться? Доступ к сегменту из экземпляра ec2?   —  person Valentyn Hruzytskyi    schedule 25.12.2020

Что будет, если развернуть ответ API?   —  person Valentyn Hruzytskyi    schedule 25.12.2020

Ответное сообщение API @JohnRotenstein: действие не применяется к каким-либо ресурсам в заявлении   —  person Valentyn Hruzytskyi    schedule 25.12.2020

@Marcin Мне нужно сохранить файлы от пользователя ec2 в ведро   —  person Valentyn Hruzytskyi    schedule 25.12.2020

См. также:  AWS Lambda, подключенная к событию S3 ObjectCreated, возвращает «NoSuchKey: указанный ключ не существует:
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. Valentyn Hruzytskyi

    Как говорится в сообщении об ошибке, в вашей политике отсутствует Principal. То есть в политике не указано, кто получает разрешения.

    Как вы показали, политика будет работать, когда она присоединена к пользователю IAM (поскольку Принципал автоматически является Пользователем IAM, к которому он присоединен), но при предоставлении Политики сегмента должен быть указан Принципал.

    Если вы использовали Генератор политик, есть поле, где вы можете указать Принципала. Если вы хотите, чтобы эти разрешения были у кого-либо, вы можете указать * в качестве участника. Однако я бы не рекомендовал это, поскольку политика предоставляет разрешения на загрузку / скачивание / удаление.

    Спасибо. Но я сформировал политику сейчас и получил тот же результат. См. Обновленный ответ person Valentyn Hruzytskyi; 25.12.2020

  2. Valentyn Hruzytskyi

    Эта политика удовлетворит ваши требования:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": "*",
                "Action": [
                    "s3:DeleteObject",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::awesome-proj",
                    "arn:aws:s3:::awesome-proj/*"
                ]
            }
        ]
    }
    

    Несколько замечаний:

    • Я напрямую сослался на сегмент (awesome-proj) И на его содержимое (awesome-proj/*), потому что некоторые действия применяются к сегменту, а некоторые — к объектам внутри контейнера.
    • Вызовы API не всегда напрямую сопоставляются с действиями для разрешений. Например, нет разрешения с именем s3:ListObjectsV2 — оно фактически использует s3:ListBucket.
    • Эта политика предоставляет всем (*) разрешение на использование действий, что очень плохо для безопасности!. Вы никогда не должны позволять никому помещать / удалять объекты в ведре. Вместо этого предоставляйте разрешения пользователям IAM непосредственно в IAM вместо использования политики сегмента. При предоставлении разрешений определенным людям используйте IAM вместо политики сегмента.
  3. Valentyn Hruzytskyi

    да, потому что проблема в названии ресурса

    это должно быть "Resource": "arn:aws:s3:::jatinbuckek101/*". вам не хватает /*, что означает любой объект внутри ведра.

    а также способ, которым вы упомянули своего принципала, проверьте, как ссылаться на директор.

    так выглядит моя политика (здесь xxxxx означает числа, которые будут отличаться для вашего варианта использования), используя генератор политики, вместо того, чтобы редактировать вручную, используйте генератор политики, чтобы исключить риск ошибок.

    {
        "Version": "2012-10-17",
        "Id": "Policyxxxxxxx",
        "Statement": [
            {
                "Sid": "Stmtxxxxxxxx",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::jatin/*"
            }
        ]
    }
    

    Нет, это не помогает — я обновил ответ person Valentyn Hruzytskyi; 25.12.2020

    именно вы можете просто попробовать сделать это с помощью генератора политик, а не вручную, а также вместо изображения опубликуйте свою политику и проверьте основной формат имени по предоставленной мной ссылке. person Valentyn Hruzytskyi; 25.12.2020

    просто чтобы убедиться, что политика работает, замените своего принципала на это пока "Principal": "*". person Valentyn Hruzytskyi; 25.12.2020

    Да, я сделал все таким образом — я генерировал политику, а не редактировал вручную. Ваш пример тоже не помог person Valentyn Hruzytskyi; 25.12.2020

    Я обновил ответ person Valentyn Hruzytskyi; 25.12.2020

    В вашей обновленной политике есть несоответствие {}, в конце концов}} (// это лишнее, попробуйте удалить это)]} person Valentyn Hruzytskyi; 25.12.2020

    Я обновлен — то же самое person Valentyn Hruzytskyi; 25.12.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: