Короткий ответ
Принцип наименьших привилегий означает выдачу ровно тех прав, которые необходимы для задачи, не больше; нарушение обычно выглядит как политика с "Action": "*" и "Resource": "*" или правами уровня администратора, выданными для узкой задачи.
Как это работает подробнее
политика доступа описывает, кто (principal), что (action) и над каким ресурсом (resource) может делать; чем точнее ограничены action и resource, тем меньше ущерб при компрометации учётных данных.
Пример кода
policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::reports-bucket/2024/*"
}
]
}Что использовать на практике
- Рекомендация. начинают с минимального набора прав, нужного для конкретной функции, и расширяют только по явному запросу; используют отдельные роли для разных задач вместо одной «универсальной» роли.
- Проверка. сервис с такой политикой сможет читать только объекты из указанного префикса одного bucket и получит
AccessDeniedна запись или на другие bucket.
Подводные камни
- Риск. выдавать административный доступ для CI-пайплайна «чтобы не разбираться с правами»
- Риск. копировать широкую политику из примера в интернете без сужения
- Риск. не пересматривать права после изменения задач сервиса.