Поиск по сайту:

Что такое разрешение PassRole в AWS и как его использовать


На этой странице

  1. Что мы здесь увидим?
  2. Что такое пароль?
  3. Демонстрация доступа к паролю
  4. Создание роли
  5. Добавление IAM-политики для пользователя IAM
  6. Присоединение роли к экземпляру
  7. Проверка установки

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

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

Что мы здесь увидим?

В этом руководстве вы узнаете, как использовать разрешение «IAM Passrole». Мы также продемонстрируем простой пример того, как подключить экземпляр EC2 к частной корзине S3, используя эту концепцию.

Что такое разрешение Passrole?

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

Пользователь должен иметь права на передачу роли службе. Это серьезный аспект безопасности, поскольку только авторизованным пользователям разрешено передавать роль службе. Более того, администраторы могут контролировать, какую роль пользователь может передать службе.

Демонстрация разрешения Passrole

Давайте перейдем к этой концепции, взяв практический пример. В этой демонстрации у нас есть корзина S3, экземпляр EC2 и приложение, работающее на этом экземпляре, которое само является интерфейсом командной строки AWS. Мы хотим настроить роль, которая позволит нашему приложению, работающему на экземпляре EC2, получить доступ к нашей корзине S3. Нам нужно создать роль таким образом, чтобы только EC2 получал разрешение на доступ к S3, но не какой-либо другой сервис AWS пользователя. Для этого наше приложение должно иметь временные учетные данные для аутентификации и авторизации для доступа к S3. Вы могли заметить, что при запуске экземпляра EC2 нас просят выбрать роль IAM, именно эта роль предоставляет эти временные учетные данные нашему экземпляру EC2. Наше приложение, работающее на экземпляре EC2, получит эти учетные данные для доступа к корзине S3.

Пользователь IAM может передать роль службе EC2 во время запуска экземпляра, используя следующие три сущности:

  1. Сначала нам нужно создать и прикрепить к нашей роли политику, которая будет определять границы разрешений или область действия нашей роли IAM.
  2. Далее — политика доверия, связанная с этой ролью, которая в основном позволит сервису AWS (в нашем случае EC2) взять на себя роль и использовать разрешения, указанные в роли.
  3. Наконец, политика разрешений IAM, связанная с пользователем IAM, которая позволяет ему передавать роли, которые ему разрешено передавать.

Создание роли

В этом разделе мы создадим роль под названием «EC2S3Access» и прикрепим к ней политику «AmazonS3ReadOnlyAccess»:

Шаг 1. Перейдите на панель инструментов IAM из учетной записи администратора или root и выберите «Роли» в разделе «Управление доступом». Нажмите на кнопку «Создать роль».

Шаг 2. В разделе «Выбор доверенного объекта» вы увидите «Тип доверенного объекта» и «Сценарий использования». Для первого выберите вариант «Сервис AWS», а для второго выберите вариант «EC2».

Шаг 3. В следующем разделе «Добавить разрешения» мы добавим политику «S3ReadOnlyAccess» и затем нажмем «Далее»:

Шаг 4. Здесь введите имя роли: «EC2S3Access» и необязательное описание для нее. Обратите внимание, что к этой роли будет автоматически прикреплена политика доверия:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Principal": {
                "Service": [
                    "ec2.amazonaws.com"
                ]
            }
        }
    ]
} 

Шаг 5. Наконец, нажмите кнопку «Создать роль», чтобы создать вышеуказанную роль:



Добавление политики IAM для пользователя IAM

Пока мы создали роль и прикрепили к ней политику, а затем у нас также есть доверенная политика. Теперь создадим политику для самого пользователя IAM. В этой политике мы предоставим пользователю разрешение на полный доступ к EC2, а также на связывание вышеуказанной роли «EC2S3Access» с нашим экземпляром EC2.

Шаг 1. Снова перейдите на панель инструментов IAM из-под администратора или учетной записи root, выберите «Политики» и нажмите кнопку «Создать политику».

Шаг 2. В мастере создания политики щелкните вкладку json и просто вставьте следующий код json для этой политики:

{
   "Version": "2012-10-17",
   "Statement": [{
  	"Effect":"Allow",
  	"Action":["ec2:*"],
  	"Resource":"*"
	},
	{
  	"Effect":"Allow",
  	"Action":"iam:PassRole",
  	"Resource":"arn:aws:iam::account_ID:role/EC2S3Access"
	}]
}

В этом коде замените «account_ID» номером учетной записи или идентификатором пользователя, а «EC2S3Access» — именем роли в вашем случае. Нажмите «Далее: теги».

Шаг 3. Укажите любые дополнительные «Теги», которые вы хотите использовать, и нажмите «Далее: Обзор»:

Шаг 4. Здесь введите имя для этой политики (в нашем случае «iam_user_policy») и, наконец, нажмите кнопку «Создать политику», чтобы создать эту политику:

Шаг 5. Прикрепите созданную выше политику к пользователю IAM:

Прикрепление роли к экземпляру

Поскольку наша роль готова, а пользователь IAM привязан к необходимой политике, пришло время прикрепить эту роль («EC2S3Access») к экземпляру EC2.

Примечание. Роль можно прикрепить к экземпляру при его запуске, а также к запущенному экземпляру.

В нашем случае экземпляр EC2 уже запущен, поэтому перейдите в консоль EC2 и выберите целевой экземпляр. Выберите «Действие > Безопасность > Изменить роль IAM». Выберите опцию «EC2S3Access» в раскрывающемся меню на новой странице и нажмите «Сохранить», чтобы продолжить:

Проверка установки

Если все настроено правильно, наш экземпляр EC2 должен иметь доступ к корзине S3. Сначала создайте корзину S3 из учетной записи администратора. Затем войдите в целевой экземпляр EC2, а затем установите и настройте приложение aws cli для пользователя IAM с помощью «user-iam-policy». С терминала на экземпляре выполните приведенную ниже команду листинга S3:

$aws s3 лс

Чтобы проверить, работает ли разрешение Passrole, запустите ту же команду от того же пользователя IAM, настроенного на другом компьютере. На этот раз вы, надеюсь, обнаружите, что мы получаем ошибку доступа из-за ограниченного разрешения:

Вышеупомянутая ошибка произошла, поскольку мы дали разрешение на доступ S3 только экземпляру EC2, настроенному с помощью «iam_user_policy», но не дали такого разрешения никакому другому сервису AWS пользователя IAM.

Примечание. Сегмент и его объекты не являются общедоступными.

Заключение

В этом руководстве мы узнали, как использовать разрешение PassRole для предоставления наименьших привилегий пользователю AWS IAM. Мы показали вам, как подключить экземпляр EC2 к корзине S3.