AWS IAM CLI — Довідник команд
AWS IAM CLI — Довідник команд
Цей довідник охоплює всі важливі aws iam та aws sts команди, згруповані за тематикою. Для кожної команди наведено опис параметрів та очікуваний вивід терміналу.
aws configure або через змінні середовища AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION.Обліковий запис і аліаси
get-account-summary
Повертає зведену статистику IAM-ресурсів акаунту: кількість Users, Groups, Roles, Policies тощо.
AccountAccessKeysPresent: 0 — добрий знак: означає, що root-акаунт не має Access Keys.list-account-aliases / create / delete
Аліас відображається замість числового ID в URL консолі: https://my-company-dev.signin.aws.amazon.com/console. Один акаунт — один аліас.
IAM Users
create-user
Створює нового IAM User. Новий User не має паролів, ключів або привілеїв — лише порожній акаунт.
+, =, ,, ., @, -, _./. Наприклад: /developers/, /service-accounts/. За замовчуванням: /.Key=Value. Використовуються для фільтрації, billing та управління доступом через Policy Conditions. До 50 тегів.get-user / list-users
get-user повертає інформацію про поточного авторизованого користувача CLI.list-users за path. Наприклад /developers/ поверне лише Users із цим шляхом.--starting-token.create-login-profile
Встановлює пароль для входу в AWS Management Console. Без Login Profile User може використовувати лише Access Keys (програмний доступ), але не може увійти на консоль.
update-login-profile.delete-user
DeleteConflict.Access Keys
Access Keys — це пара AccessKeyId + SecretAccessKey для програмного доступу до AWS (CLI, SDK, CI/CD). Один User може мати максимум 2 активних ключі одночасно — це дозволяє виконувати ротацію без простою.
create-access-key
SecretAccessKey відображається лише один раз — у момент створення. Збережіть його одразу. Якщо втратили — доведеться створювати новий ключ і видаляти старий.list-access-keys
Повертає список ключів доступу для User. SecretAccessKey тут не відображається — лише метадані.
update-access-key
Активує або деактивує ключ. Деактивація — безпечний спосіб «вимкнути» ключ без його видалення (наприклад, під час ротації або перевірки).
list-access-keys.Active або Inactive.IAM Groups
create-group / list-groups / delete-group
Group — іменована колекція Users з однаковими правами. Policy прикріплюється до Group один раз і автоматично поширюється на всіх її учасників.
/teams/, /departments/. За замовчуванням: /.detach-group-policy) та видалити всіх Users з групи (remove-user-from-group). Інакше — помилка DeleteConflict.add-user-to-group / remove-user-from-group
IAM Policies
create-policy
Створює Customer Managed Policy — власну Policy, яку ви повністю контролюєте. На відміну від AWS Managed Policies, вона точно описує лише те, що вам потрібно.
S3DevBucketsReadWrite, EC2StartStopDev.file://policy.json). Визначає дозволи: Effect, Action, Resource./team-policies/. За замовчуванням: /.list-policies / get-policy / get-policy-version
list-policies: All (всі), AWS (тільки AWS Managed), Local (тільки Customer Managed). За замовчуванням: All.get-policy та get-policy-version. Формат: arn:aws:iam::ACCOUNT_ID:policy/POLICY_NAME або arn:aws:iam::aws:policy/POLICY_NAME для AWS Managed.get-policy-version. Отримується через get-policy → поле DefaultVersionId. Формат: v1, v2 тощо.attach / detach policy
Policy можна прикріпити до User, Group або Role. Для кожного типу — окрема команда.
IAM Roles
create-role
Role — сутність без постійних credentials. Використовується сервісами AWS (EC2, Lambda, ECS) та для cross-account доступу. Credentials видаються тимчасово через STS при кожному AssumeRole.
ec2.amazonaws.com, для Lambda — lambda.amazonaws.com, для cross-account — ARN іншого акаунту.AssumeRole. Від 3600 (1 год) до 43200 (12 год). За замовчуванням: 3600.attach-role-policy / list-attached-role-policies / detach-role-policy
Після створення Role потрібно прикріпити Permission Policy — що саме ця Role може робити.
get-role / list-roles / update-assume-role-policy
get-role та update-assume-role-policy.update-assume-role-policy. Повністю замінює існуючий.list-roles за path-prefix.delete-role
DeleteConflict.MFA — Multi-Factor Authentication
list-mfa-devices / list-virtual-mfa-devices
list-mfa-devices. Якщо не вказано — повертає пристрої поточного авторизованого User.list-virtual-mfa-devices: Assigned (прив'язані до User), Unassigned (вільні), Any (всі). За замовчуванням: Any.create-virtual-mfa-device
Створює TOTP-пристрій (сумісний з Google Authenticator, Authy, 1Password). Зберігає QR-код або seed у файл для подальшого налаштування.
QRCodePNG (зображення) або Base32StringSeed (текстовий seed). За замовчуванням: QRCodePNG.enable-mfa-device
Прив'язує MFA-пристрій до User. Потрібно ввести два послідовних TOTP-коди з застосунку (з різних 30-секундних вікон) для підтвердження синхронізації.
deactivate-mfa-device / delete-virtual-mfa-device
deactivate-mfa-device лише відв'язує пристрій від User. Якщо пристрій virtual — він залишається в акаунті як "Unassigned". Для повного видалення потрібен окремий виклик delete-virtual-mfa-device.Password Policy
update-account-password-policy
Встановлює вимоги до паролів для всіх IAM Users в акаунті. Без кастомної Policy AWS застосовує лише мінімальні вимоги (8 символів).
! @ # $ % ^ & * ( ) _ + - = [ ] { } | '. Вмикається прапором без значення.AWS STS — Security Token Service
get-caller-identity
Повертає інформацію про поточні credentials: хто авторизований у CLI прямо зараз. Корисно для перевірки активного профілю, особливо при роботі з кількома акаунтами.
assume-role
Приймає IAM Role і повертає тимчасові credentials (Access Key + Secret + Session Token). Використовується для cross-account доступу, підвищення привілеїв та програмного отримання прав ролі.
arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME.ci-deploy, alice-admin-session. Максимум 64 символи.MaxSessionDuration Role. За замовчуванням: 3600.AssumeRole.get-session-token
Повертає тимчасові credentials для поточного IAM User з підтвердженням MFA. Використовується, коли потрібно виконати операції, які вимагають MFA, через CLI.
IAM Policy Simulator
simulate-principal-policy
Перевіряє, чи дозволяє набір Policies конкретного User/Role виконати певну дію на певному ресурсі. Виконується без реального звернення до ресурсу — лише симуляція логіки оцінки.
arn:aws:iam::ACCOUNT_ID:user/NAME або arn:aws:iam::ACCOUNT_ID:role/NAME.сервіс:Дія. Наприклад s3:GetObject, ec2:StartInstances. Можна передати кілька через пробіл.*. Для точної симуляції завжди вказуйте конкретний ресурс.ContextKeyName=aws:MultiFactorAuthPresent,ContextKeyValues=true,ContextKeyType=boolean.EvalDecision може бути: allowed, explicitDeny (є явне Deny у Policy), implicitDeny (немає жодного Allow). MatchedStatements показує, яке саме правило Policy спрацювало.simulate-custom-policy
Симулює довільний JSON-документ Policy без прив'язки до конкретного User або Role. Зручно для тестування нової Policy ще до її створення.
file://). Симулюється як набір Policy без конкретного Principal.simulate-principal-policy.simulate-principal-policy.IAM Access Analyzer
create-analyzer / list-analyzers
Access Analyzer відстежує ресурси вашого акаунту, що доступні зовні (з інших акаунтів або публічно), та знаходить невикористані права.
account-analyzer або org-analyzer.ACCOUNT (перевіряє ресурси акаунту, доступні зовні) або ORGANIZATION (перевіряє весь Organizations).list-findings / get-finding / archive-rule
Findings — це знахідки Analyzer: ресурси з потенційно небажаним зовнішнім доступом або невикористані права.
list-findings. Наприклад, фільтр за типом ресурсу: resourceType={value=AWS::S3::Bucket}.get-finding.ACTIVE — потребує уваги, ARCHIVED — навмисний/перевірений доступ, RESOLVED — проблему усунено (Policy змінено).AWS IAM — Identity and Access Management
Хто може робити що з якими ресурсами AWS? Детальний розбір Users, Groups, Roles, Policies, принципу найменших привілеїв, MFA та AWS STS для розробників на .NET.
Docker та контейнеризація в AWS — ECR, ECS та Fargate
Від локального Dockerfile до повноцінного задеплоєного .NET Web API на AWS ECS Fargate. Розбираємо ECR, ECS Task Definitions, Clusters, Services, Auto Scaling та порівнюємо ECS, Fargate і EKS.