AWS Identity and Access Management (IAM) позволяет управлять доступом к AWS аккаунту и ресурсам, используемым в нем.
С помощью IAM можно управлять доступом пользователей вашего аккаунта к отдельным реурсам, предоставлять доступ другим системам к этому аккаунту с помощью AWS Security Token Service и предоставлять доступ к ресурсам аккаунта для другого аккаунта AWS.
Не все сервисы имеют интеграцию с AIM, полный список доступен тут>>>.
Группы и пользователи
По рекомендации в IAM Best Practices — создадим группу sudo (aka «admin«), и пользователя setevoy в ней.
Переходим в консоль AWS > AIM > Groups, и добавляем группу:
Далее требуется подключить политику доступа к этой группе.
Политики доступа определяют список ресурсов и действия, которые допустимы к выполнению. Политики можно подключить к группе, пользователю или роли.
Политики бывают двух типов:
- Managed policies: политики, которые можно подключить к пользователям, группам или ролям аккаунта. В свою очередь Managed policies делятся на еще два типа:
- AWS managed policies: создаются и управляются самим AWS.
- Customer managed policies: создаются и управляются пользователем.
- Inline policies: политики, подключенные непосредственно к пользователю, группе или роли. Так же имеются resource-based политики, однако тут о них говорить не будем.
Больше о политиках доступа можно прочитать тут>>> и тут>>>.
Выбираем политику:
Подтверждаем, и сохраняем:
Аналогичные действия — с помощью AWS CLI:
$ aws iam create-group --group-name sudo
{
"Group": {
"CreateDate": "2016-03-18T14:41:37.819Z",
"GroupId": "AGPAJMJZ6NMS5MI4IGVMA",
"Path": "/",
"Arn": "arn:aws:iam::264418146286:group/sudo",
"GroupName": "sudo"
}
}
Проверяем:
$ aws iam list-groups
{
"Groups": [
{
"GroupId": "AGPAJMJZ6NMS5MI4IGVMA",
"GroupName": "sudo",
"CreateDate": "2016-03-18T14:41:37Z",
"Path": "/",
"Arn": "arn:aws:iam::264418146286:group/sudo"
}
]
}
Что бы подключить политику — находим ее с помощью list-policies с опцией --scope AWS, что бы ограничить список только AWS-managed политиками:
Примечание: для list-policies требуется AWS CLI версии 1.10 и выше. В Ubuntu из репоизтория устанавливается 1.2, тогда как pip install awscli устанавливает последнюю версию.
Выполняем:
$ aws iam list-policies --scope AWS | grep AdministratorAccess
"PolicyName": "AdministratorAccess",
"Arn": "arn:aws:iam::aws:policy/AdministratorAccess",
Получить описание политики можно с помощью get-policy:
$ aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
{
"Policy": {
"PolicyName": "AdministratorAccess",
"Description": "Provides full access to AWS services and resources.",
"CreateDate": "2015-02-06T18:39:46Z",
"AttachmentCount": 1,
"IsAttachable": true,
"PolicyId": "ANPAIWMBCKSKIEE64ZLYK",
"DefaultVersionId": "v1",
"Path": "/",
"Arn": "arn:aws:iam::aws:policy/AdministratorAccess",
"UpdateDate": "2015-02-06T18:39:46Z"
}
}
Полный список команд для aws::iam можно найти тут>>>.
Подключаем ее к группе sudo:
$ aws iam attach-group-policy --group-name sudo --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
Проверяем:
$ aws iam list-attached-group-policies --group-name sudo
{
"AttachedPolicies": [
{
"PolicyName": "AdministratorAccess",
"PolicyArn": "arn:aws:iam::aws:policy/AdministratorAccess"
}
]
}
Создаем пользователя:
$ aws iam create-user --user-name setevoy
{
"User": {
"UserName": "setevoy",
"Path": "/",
"CreateDate": "2016-03-18T15:08:18.547Z",
"UserId": "AIDAJH6M4FHV4YCS7DPI4",
"Arn": "arn:aws:iam::264418146286:user/setevoy"
}
}
Добавляем его в группу sudo:
$ aws iam add-user-to-group --user-name setevoy --group-name sudo
Проверяем группу:
$ aws iam get-group --group-name sudo
{
"Group": {
"Path": "/",
"CreateDate": "2016-03-18T14:41:37Z",
"GroupId": "AGPAJMJZ6NMS5MI4IGVMA",
"Arn": "arn:aws:iam::264418146286:group/sudo",
"GroupName": "sudo"
},
"Users": [
{
"UserName": "setevoy",
"Path": "/",
"CreateDate": "2016-03-18T15:08:18Z",
"UserId": "AIDAJH6M4FHV4YCS7DPI4",
"Arn": "arn:aws:iam::264418146286:user/setevoy"
}
]
}
Устанавливаем пароль для этого пользователя:
$ aws iam create-login-profile --user-name setevoy --password p@ssw0rd
{
"LoginProfile": {
"UserName": "setevoy",
"CreateDate": "2016-03-18T15:48:23.615Z",
"PasswordResetRequired": false
}
}
Для изменения — используйте update-login-profile:
$ aws iam update-login-profile --user-name setevoy --password NEWp@ssw0rd
И добавим ключи доступа:
$ aws iam create-access-key --user-name setevoy
{
"AccessKey": {
"UserName": "setevoy",
"Status": "Active",
"CreateDate": "2016-03-18T15:52:55.815Z",
"SecretAccessKey": "cbd***M6W",
"AccessKeyId": "AKI***6GA"
}
}
Для входа в панель управления теперь можно использовать специальный URL входа:
Что бы изменить его и вместо ID использовать какое-то имя — кликаем справа на Customize и задаем алиас:
Теперь зайти в панель управления можно по адресу https://setevoy.signin.aws.amazon.com/console.
Ссылки по теме
Multi-Factor Authentication — двухфакторная авторизация
AWS CloudTrail — логгирование событий
AWS IAM Policy Reference — создание и управление политиками










