Amazon IAM


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

Сказать спасибо
Categories: