Означает ли разрешение доступа к корзине автоматически доступ ко всему внутри?

#amazon-web-services #amazon-s3 #amazon-iam #amazon-policy

#amazon-web-services #amazon-s3 #amazon-iam #amazon-политика

Вопрос:

Чтобы политика разрешала доступ к корзине и всему внутри нее, нужно ли устанавливать флажок «Любой» рядом с object (или просто разрешение доступа к корзине подразумевает доступ к ее содержимому)?

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

Я спрашиваю по двум причинам: i) чтобы политика имела доступ к объектам внутри корзины, но также и ii) чтобы подтвердить, что установка флажка «Любой» не дает доступа к объектам за пределами указанных корзин (ов) (это может быть плохо, если это так, и это не было реализовано) — Я предполагаю, что это, вероятно, не так, но лучше быть уверенным.

Ответ №1:

Нет, доступ к корзине (как указано в таком ресурсе политики, как arn:aws:s3:::mybucket ) не предоставляет никакого доступа API к объектам в этой корзине. Чтобы получить доступ к объектам, вам нужно будет разрешить действия API с таким ресурсом объекта, как arn:aws:s3:::mybucket/* .

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

В диалоговом окне есть 4 типа ресурсов: точка доступа, корзина, задание, объект. Они независимы друг от друга. Выбор определенного сегмента S3 в разделе «корзина» не оказывает никакого влияния на раздел «объект».

Итак, если вы укажете mybucket в разделе «Корзина» и Any в разделе «объект», ваша политика будет содержать что-то вроде этого:

 {
    "Sid": "VisualEditor1",
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::*/*",
        "arn:aws:s3:::mybucket"
    ]
}
  

Обратите особое внимание, что это разрешает все действия S3 ( s3:* ) как против корзины ( arn:aws:s3:::mybucket ), так и для всех объектов во всех корзинах ( arn:aws:s3:::*/* ).

Если вы хотите разрешить действия против mybucket корзины и всех объектов в mybucket ней, затем укажите mybucket в разделе корзина, снимите флажок «Любой» в разделе объект и укажите arn:aws:s3:::mybucket/* в разделе объект. Теперь ваша политика JSON будет выглядеть следующим образом:

 {
    "Sid": "VisualEditor1",
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::mybucket/*",
        "arn:aws:s3:::mybucket"
    ]
}