В пределах IAM я могу ограничить группу пользователей доступом/запуском/завершением только определенных ECI-ядер или экземпляров EC2? - программирование
Подтвердить что ты не робот

В пределах IAM я могу ограничить группу пользователей доступом/запуском/завершением только определенных ECI-ядер или экземпляров EC2?

Что говорится в названии.

В учетной записи мастера AWS у меня есть несколько личных учетных записей, то есть пользователей AWS Identity and Access Management (IAM). Я хотел бы назначить определенных пользователей IAM для групп и не допустить их прерывания определенных экземпляров Amazon EC2, де-регистрации некоторых Amazon Machine Изображения (AMI) и т.д.

Я не против, если они играют со своими вещами, но я не хочу, чтобы они трогали мои вещи.

Возможно ли это?

4b9b3361

Ответ 1

Update

AWS только что объявила Разрешения на уровне ресурса для Amazon EC2 и Amazon RDS для решения этого долговременного недостатка поддержки IAM в EC2 и RDS (по сравнению с другими AWS услуги см. в моем первоначальном ответе ниже для деталей/фона):

Сегодня мы делаем IAM еще более мощным с введением разрешений на уровне ресурсов для Amazon EC2 и Amazon RDS. [...]

На стороне EC2 теперь вы можете создавать и использовать политики IAM для управления доступ к экземплярам EC2, томам EBS, изображениям и эластичным IP-адресам адреса. [...]

Вот несколько вещей, которые вы можете сделать:

  • Разрешить пользователям работать с ограниченным набором ресурсов в более крупной многопользовательской среде EC2.
  • Задайте разные разрешения для ресурсов "разработки" и "проверки".
  • Управлять тем, какие пользователи могут завершать какие экземпляры.
  • Требовать дополнительных мер безопасности, таких как аутентификация MFA, при работе с определенными ресурсами.

Это решает множество осложнений безопасности и позволяет также использовать несколько новых вариантов использования.

Кроме того, операторы политики EC2 могут включать ссылку на теги на ресурсах EC2, что позволяет использовать ту же модель и схему тегов для разрешений и отчетов о выставлении счетов. Наконец, существует расширенный набор тегов условий [...], включая ec2: Region, ec2: Owner и ec2: InstanceType, см. Ключи условий для Amazon EC2.

Решение

Здесь вариант Пример 3: разрешить пользователям останавливать и запускать только отдельные экземпляры для используемого случая, что позволяет пользователям запускать и останавливать [и заканчивать ] только экземпляры с тегом "department = dev":

{
   "Version": "2012-10-17",
   "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:StopInstances", 
        "ec2:StartInstances",
        "ec2:TeminateInstances"
      ],
      "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/department": "dev"
        }
      }
    }
   ]
}

Caveat

Поддержка разрешений на уровне ресурсов ограничивается следующим набором действий по указанным ресурсам, что исключает части использования (например, деиндикация ОИМ) - уверенность в фундаменте для этого сложного и далеко идущего функция, по-видимому, достаточно высока, хотя объявить, что они планируют добавить поддержку дополнительных API в течение всего остального 2013 года (AWS обычно не публикует никаких дорожных карт):

  • Экземпляры - перезагрузка, запуск, остановка, завершение.
  • Объемы EBS - Прикрепить, удалить, отсоединить.

Оригинальный ответ

Я боюсь, что это невозможно, как вы хотели бы это сделать (и многие другие, в том числе и я).

Проблема

Вы хотите ограничить доступ к определенным ресурсам службы, а не ее действиям - в то время как AWS Identity and Access Management (IAM) поддерживает как в принципе, не каждый продукт AWS/служба предлагает ограничения на основе ресурсов; к сожалению Amazon EC2 является одним из них и даже показан в качестве примера для этой самой разницы, см. Интеграция с другими продуктами AWS:

В следующей таблице показано, можно ли предоставить разрешения IAM которые контролируют доступ к действиям службы, ресурсам или и тем, и другим. Для Например, вы можете использовать IAM для управления пользователями Amazon EC2 имеют доступ, но вы не можете использовать IAM для контроля доступа пользователей к AMI, тома, экземпляры и т.д. [акцент мой]

(частичное) Обходное решение

В зависимости от потребностей других учетных записей вы все равно сможете ограничить их способность выполнять те действия, которые считаются разрушительными - вы можете изучить доступные действия с помощью AWS Policy Генератор, например:

По умолчанию вы можете завершить все запущенные вами экземпляры. Если ты хочешь предотвратить случайное завершение экземпляра, вы можете включить завершение защиты для экземпляра.

То есть, как только вы включили защиту завершения, любой, кто не имеет права использовать ec2:ModifyInstanceAttribute, не может полностью завершить эти экземпляры.

Очевидно, что ограниченные учетные записи больше не смогут облегчить эти вызовы для своих собственных ресурсов.

Кроме того, это не помешает им запускать причудливый кластер Compute Eight Extra Large Instance или так, в свою очередь, соответствующие затраты;)

Альтернативный подход

В зависимости от вашей настройки/среды вы можете захотеть вместо этого взглянуть на консолидированную биллинг, которая по существу обеспечивает способ сбора одной или нескольких учетных записей AWS под другой, которая оплачивает ресурсы, используемые другими.

В то время как это прежде всего функция учета, ее можно также использовать для разделения проблемных областей, например, довольно часто, чтобы облегчить отдельные счета разработки и производства для обеспечения соответственно независимой работы, а не в меньшей степени в отношении прав IAM и как.

Вступительное сообщение в блоге Новая функция AWS: консолидированный биллинг дает хороший обзор, и вот соответствующая тема из AWS Consolidated Billing Guide относительно вашего очевидного варианта использования:

Платежная учетная запись оплачивается за все расходы связанных аккаунтов. Однако каждая связанная учетная запись полностью независима в каждом другом (подписка на услуги, доступ к ресурсам, использование AWS Premium Поддержка и т.д.). Владелец платной учетной записи не может получить доступ к данным, принадлежащим связанным владельцам учетных записей (например, их файлы в Amazon S3). Каждый владелец учетной записи использует свои собственные учетные данные AWS для доступа к своим ресурсам (например, их собственный секретный ключ доступа AWS). [акцент мой]

Очевидно, что эта функция ориентирована на более крупных клиентов, но в зависимости от вашего сценария вы можете придумать решение для разделения ваших учетных записей AWS и ресурсов по мере необходимости.