
Генерирует политики AWS IAM с минимальными привилегиями на основе ARN ресурсов и уровней доступа, автоматизируя создание безопасных политик для облачной инфраструктуры.
IAM Генератор политик с минимальными привилегиями.

Пошаговые руководства и полную документацию можно найти на проекте ReadTheDocs.
Смотрите статью в блоге Salesforce Engineering о Policy Sentry.
Написание безопасных IAM-политик вручную может быть очень утомительным и неэффективным. Многие разработчики Infrastructure as Code сталкивались с чем-то подобным:
Такой процесс не идеален ни для безопасности, ни для разработчиков Infrastructure as Code. Нам нужно упростить написание IAM-политик безопасным образом и скрыть сложность написания политик с минимальными привилегиями. Именно поэтому я создал этот инструмент.
Policy Sentry позволяет пользователям создавать IAM-политики с минимальными привилегиями за считанные секунды, вместо того чтобы часами выписывать их вручную. Эти политики ограничены по уровням доступа и ресурсам. В случае взлома это помогает ограничить радиус поражения скомпрометированных учётных данных, предоставляя IAM-принципалам только необходимый доступ.
До этого инструмента создание IAM-политики с ограничениями по ARN ресурсов могло занять часы — теперь это занимает секунды. Таким образом, разработчикам нужно только определить ресурсы, к которым им требуется доступ, а Policy Sentry абстрагирует сложность IAM-политик от процессов разработки.
Ключевая особенность Policy Sentry — это возможность создавать IAM-политики на основе ARN ресурсов и уровней доступа. Наша функциональность CRUD придерживается мнения, что разработчики IAC не должны понимать все тонкости AWS IAM — мы должны абстрагировать эту сложность за них. По сути, разработчики должны просто сказать...
arn:aws:s3:::example-org-sbx-vmimport"arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret"arn:aws:ssm:us-east-1:123456789012:parameter/test"...и наша автоматизация должна создавать политики, соответствующие этим уровням доступа.
Как мы этого добиваемся? Policy Sentry использует документацию AWS по [действиям, ресурсам и ключам условий][1] для поиска действий, уровней доступа и типов ресурсов, и генерирует политики в соответствии с ARN и уровнями доступа. Рассмотрим фрагмент таблицы ниже:
| Действия | Уровень доступа | Типы ресурсов |
|---|---|---|
| ssm:GetParameter | Read | parameter |
| ssm:DescribeParameters | List | parameter |
| ssm:PutParameter | Write | parameter |
| secretsmanager:PutResourcePolicy | Permissions management | secret |
| secretsmanager:TagResource | Tagging | secret |
Policy Sentry агрегирует всю эту документацию в единую базу данных и использует её для генерации политик в соответствии с действиями, ресурсами и уровнями доступа.
brew tap salesforce/policy_sentry https://github.com/salesforce/policy_sentry
brew install policy_sentry
pip3 install --user policy_sentry
Чтобы включить автодополнение Bash, добавьте это в ваш .bashrc:
eval "$(_POLICY_SENTRY_COMPLETE=bash_source policy_sentry)"
Чтобы включить автодополнение ZSH, добавьте это в ваш .zshrc:
eval "$(_POLICY_SENTRY_COMPLETE=zsh_source policy_sentry)"
policy_sentry create-template --output-file crud.yml --template-type crud