Как можно переключиться на роль экземпляра EC2 локально в качестве пользователя?

Я применяю роли экземпляра ec2 к своим серверам, но сначала хочу переключиться на эти роли локально для проверки разрешений

Я пытался переключиться на один, но получаю сообщение об ошибке:

aws sts assume-role --role-arn arn:aws:iam::1234567890:role/myrole --role-session abc

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::1234567890:user/meeee is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::1234567890:role/myrole

Я администратор учетной записи. Нужно ли мне изменить политику доверия или что-то еще, чтобы пользователи могли брать на себя роли экземпляра ec2?

1
задан 13 April 2020 в 18:52
2 ответа

Чтобы позволить вашей учетной записи взять на себя роль службы, вам необходимо отредактировать роль и добавить свою учетную запись в Принципал . Для этого:

В IAM -> Роли -> Ваша служебная роль перейдите на вкладку Доверительные отношения и нажмите Изменить доверительные отношения . Ваши доверительные отношения будут примерно такими:

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

Вам нужно добавить свою учетную запись AWS примерно так:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::<your AWS account number>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Затем вы сможете получить учетные данные через sts .

Другой способ получить желаемый результат - использовать Policy Simulator

На вкладке роли Permissions щелкните стрелку слева от политики, и отобразится кнопка Simulate policy :

enter image description here

ПРИМЕЧАНИЕ

Невозможно использовать группу IAM в качестве участника .

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

Ссылки

Тестирование политик доступа
Изменение роли (консоль)
Руководство пользователя IAM

2
ответ дан 4 January 2021 в 08:30

Вы можете получить учетные данные из экземпляра и использовать их локально с помощью сценария get-instance-credentials .

  1. Запустите свой экземпляр с желаемой ролью EC2
  2. Запустите get-instance-credentials

    (скрыто) aws-utils $ ./get-instance-credentials экспорт AWS_ACCESS_KEY_ID = "ASIA5G ... ERJGI" экспорт AWS_SECRET_ACCESS_KEY = "8rTXu4R1 ... IM2" экспорт AWS_SESSION_TOKEN = "IQoJb3JpZ2luX2VjEE4aD ... 4zw =="
  3. Скопируйте и вставьте 3 строки export AWS _ * в локальную оболочку вашего ноутбука

     me @ my-laptop ~ $ export AWS_ACCESS_KEY_ID = "ASIA5G ... ERJGI"
    me @ my-laptop ~ $ export AWS_SECRET_ACCESS_KEY = "8rTXu4R1 ... IM2"
    me @ my-laptop ~ $ export AWS_SESSION_TOKEN = "IQoJb3JpZ2luX2VjEE4aD ... 4zw =="
     
  4. Подтвердите учетные данные

     me @ my-laptop ~ $ aws sts get-caller-identity
     {
      "UserId": "AROAXYZABC1234: i-0a1b2c3d",
      «Счет»: «123456789012»,
      «Arn»: «arn: aws: sts :: 123456789012: предположительно-роль / test-ec2-role / i-0a1b2c3d»
     }
     

Как вы можете видеть, даже когда me @ my-laptop я могу получить доступ к AWS с учетными данными test-ec2-role .

Таким образом, вы можете легко протестировать конфигурацию роли IAM, протестировать свои приложения и т. Д.

Надеюсь, что это поможет :)

1
ответ дан 4 January 2021 в 08:30

Теги

Похожие вопросы