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
