Назад | Перейти на главную страницу

Можно ли ограничить ключ EC2 только адресом-связью ec2?

У меня есть обычный экземпляр EC2 с эластичным IP. Несколько раз экземпляр был остановлен, я просто вручную повторно связал IP с ним через консоль управления AWS. Сейчас я подумываю о переносе его на спотовый экземпляр, а это значит, что мне нужен способ автоматического повторного связывания его с IP-адресом при запуске, если / когда машина выключается из-за того, что ее цена вне рынка. Как этого добиться, хорошо описано во многих местах (например, Вот).

У меня вопрос:

Как и многие люди, столкнувшиеся с этой проблемой, я опасаюсь помещать свой файл учетных данных AWS в сам экземпляр. Я смутно помню, что видел что-то о возможности создания дополнительных ключей с более ограниченными разрешениями, но мне не удается найти какие-либо конкретные детали. Итак: можно ли создать ключ, который я могу с радостью поместить на машину, зная, что он может использоваться чуть больше, чем экземпляр ec2-associate (но не входить в другие экземпляры или вообще запускать riot с моей учетной записью AWS), и как мне этого добиться?

Это действительно возможно с помощью AWS Identity and Access Management (IAM), который позволяет безопасно контролировать доступ к сервисам и ресурсам AWS для ваших пользователей (В настоящее время настоятельно рекомендуется использовать IAM вместо основных учетных данных для повседневного использования AWS).

Среди прочего, IAM позволяет использовать следующие варианты использования:

Детальный контроль доступа к вашим ресурсам AWS: IAM позволяет контролировать доступ к API сервисов AWS и к определенным ресурсам. IAM также позволяет добавлять определенные условия для управления тем, как пользователь может использовать AWS, например время дня, исходный IP-адрес или использование SSL.

Соответствующая степень детализации варьируется между доступными сервисами AWS (она имеет тенденцию к увеличению со временем), но, к счастью, степень детализации для API EC2 высока, и то, что вы ищете, легко доступно - например, вы можете захотеть проверить рекомендуемые Генератор политик AWS, выберите тип Политика IAM и сервис Amazon EC2, что позволит вам выбрать действие AssociateAddress в очереди.

Следовательно, вы сможете достичь своей цели, создав специального пользователя IAM для поставленной задачи, создав политику IAM, существенно ограниченную AssociateAddress (может быть DisassociateAddress а также) и присвоение этой политики пользователю IAM - например, политика может выглядеть так:

{
  "Statement": [
    {
      "Action": [
        "ec2:AssociateAddress",
        "ec2:DisassociateAddress"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}