Amazon IAM или Identity and Access Management — сервис для создания в интерфейсе или в консоли пользователей и политик ограничения доступа.
Amazon IAM — управление пользователями и доступом
В интерфейсе пользователи и политики задаются очень наглядно. Рассмотрим как делать это в консоли. Консоль обычно удобнее, поскольку позволяет автоматизировать процессы.
Все идентификаторы в статье изменены на несуществующие.
Чтобы управлять ресурсами Amazon нужно иметь активный аккаунт и добавить на локальном компьютере конфигурационный файл с настройками и реквизитами (начало работы с AWS)
Просмотреть список уже добавленных пользователей
aws iam list-users
{ "Users": [ { "Path": "/", "UserName": "aws", "UserId": "AIDAJBZYUHLBSZ4TNM7QA", "Arn": "arn:aws:iam::483165675673:user/aws", "CreateDate": "2019-01-02T14:12:29Z" } ] }
Вывести в консоль все группы пользователей
aws iam list-groups
{ "Groups": [ { "Path": "/", "GroupName": "aws", "GroupId": "AGP90CIWL782J2ELPFEIA", "Arn": "arn:aws:iam::483162975213:group/aws", "CreateDate": "2019-01-02T14:13:30Z" } ] }
Вывести роли, информация о ролях очень обширна, ниже приведена часть того, что возвращается при запросе
aws iam list-roles
{ "Roles": [ { "Path": "/aws-service-role/support.amazonaws.com/", "RoleName": "AWSServiceRoleForSupport", "RoleId": "AROAIIZYWVWISJOJAEAFS", "Arn": "arn:aws:iam::483162975213:role/aws-service-role/support.amazonaws.com/AWSServiceRoleForSupport", "CreateDate": "2018-12-31T08:02:42Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "support.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "Description": "Enables resource access for AWS to provide billing, administrative and support services", "MaxSessionDuration": 3600 ...
Как добавить AWS пользователя через консоль
Передавать можно только имя пользователя через флаг --user-name
aws iam create-user --user-name Tester
{ "User": { "Path": "/", "UserName": "Tester", "UserId": "AIDAJO78AYZ4WISL4TF5A", "Arn": "arn:aws:iam::4834562975213:user/Tester", "CreateDate": "2019-01-03T11:32:44Z" } }
Сгенерировать секретный ключ. Его в дальнейшем увидеть нельзя, в том числе в интерфейсе. Только создать новый.
aws iam create-access-key --user-name Tester
{ "AccessKey": { "UserName": "Tester", "AccessKeyId": "AKIAISKG3Z47KARSFHHQ", "Status": "Active", "SecretAccessKey": "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", "CreateDate": "2019-01-03T11:41:17Z" } }
Создать группу пользователей
aws iam create-group --group-name Dev
{ "Group": { "Path": "/", "GroupName": "Dev", "GroupId": "AGP78NWH37Ui74R2XSDQ", "Arn": "arn:aws:iam::4831645275213:group/Dev", "CreateDate": "2019-01-03T11:42:52Z" } }
Добавить пользователя AWS в группу
aws iam add-user-to-group --user-name Tester --group-name Dev
При отсутствии ошибок команда в консоль ничего не выводится
Получить информацию о политиках
aws iam list-policies --scope AWS
Политик может быть три: all, AWS и добавленная администратором
Чаще других предоставляется полный доступ (AmazonEC2FullAccess для группы Dev)
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name Dev
Вывести список политик для группы
aws iam list-attached-group-policies --group-name Dev
Как создать роль AWS
Для создания роли удобно информацию сначала сохранить в json
cat ec2-role-trust-policy.json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts.AssumeRole" } ] }
Затем передавать путь к файлу
aws iam create-role --role-name TestRole --assume-role-document file://ec2-role-trust-policy.json
Удалить роль
aws iam delete-role-name TestRole
Удалить группу AWS
aws iam delete-group --user-name Tester
Читайте про управление инстансом в AWS