STS, Policies Flashcards
…- это Сервис для получения …
для доступа к AWS сервисам
на время от … до …
STS
временных Security Credentials
от 15 до 60 минут
Как называется API вызов
получить детали про своего IAM User’а и его Role (”кто я?”)
GetCallerIdentity
Как называется API вызов
декодировать Error сообщение, если запрос на авторизацию отклонён (denied)
DecodeAuthorizationMessage
Какие API вызовы есть для
“получить временные credentials”
- AssumeRole (может быть Cross Account)
- AssumeRoleWithSAML
- AssumeRoleWithIdentity - Facebook, Google, OIDC
Как использовать STS для AssumeRole пошагово
- Объявить IAM Role в своём аккаунте (или cross-account)
- Объявить, какие Principles (пользователи каких IAM User Groups) могут assume’ать эту роль в Trust Relationship
- Выполнять
AssumeRole
API call в сервисSTS
для получения временных Credentials
Какой API вызов выполняется, чтобы получить временные креды при активном MFA?
Используем GetSessionToken API call в сервис STS
Что возвращает операция GetSessionToken?
- Secret Key
- Access ID
- Session Token
- Expiration Date
Что должно быть в объявлении Policy у Роли, которую мы асьюмаем при включенном MFA?
Должен быть Condition
aws:MultiFactorAuthPresent: true
Какие виды Policies бывают?
Кто их создаёт?
Какие use-cases?
Можно ли их повторно использовать?
Есть ли система контроля версий и аудит?
Есть ли ограничения по размеру Policy?
Managed Policies
- Предопределённые роли, которые предоставляет AWS из коробки
- Подходят для Power Users
и Administrators
- AWS обновляет их, когда появляются новые сервисы
Customer Managed Policies
- Мы сами объявляем эти Policies
- Есть система контроля версий (rollback, track author of changes)
Inline Policies
- Строго one-to-one
отношение между Policy и Principal
- no rollback, no audit
- Удаление IAM Principal’а автоматически удалит его Inline Policy
- Есть ограничение по длине Inline Policy 2 KB
, поэтому НЕ получится дать много
Что такое Dynamic Policy?
IAM Policy с использованием ${aws:username} (policy variable)
Кому нужны IAM Roles
EC2 instance
Lambda Function
-
ECS Task
(дополнительно указываемECS_ENABLE_IAM_ROLE = true
) -
CodeBuild
сервис целиком
Какие условия необходимо соблюсти, чтобы пользователь мог назначить роль сервису?
- Пользователь имеет право передавать эту IAM Role сервису (EC2 instance’у)
- IAM Role разрешает асьюмать себя этому Principal’у (всем EC2 instance’ам)
Что такое iam:PassRole?
Когда мы создаём экземпляр AWS сервиса (например, EC2 instance), то мы указываем его IAM Role
- Говорят, мы “передаём ему роль” (назначаем роль) - то есть Pass IAM Role
- Чтобы это сделать у нашего IAM User’а должна быть Policy,
которая разрешает делать Actioniam:PassRole
для определённой ролиS3Access
Что такое Trust Policy?
Какой там API вызов?
У каждой IAM Role помимо Permissions (списка обычных Policies) есть Trust Relationship
Он выглядит как обычная JSON Policy
Содержит информацию о том, какой сервис (Лямбда функция, EC2 instance) может асьюмать эту роль
sts:AssumeRole