Можно ли указать шаблон для роли AWS Доверительные отношения - PullRequest
0 голосов
/ 22 ноября 2018

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

Я разработал эту политику для доверительных отношений, которая должна разрешать любую роль, имя которой заканчивается на * 1003.*, но он не работает (доступ запрещен):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_NR_A:root"
      },
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:iam::ACCOUNT_NR_A:role/*_my_suffix"
        }
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

С другой стороны, эта политика работает, но она слишком открыта, поскольку позволяет любому пользователю / роли в учетной записи A выполнять мою роль.:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT_NR_A:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Итак, есть ли способ разрешить только набор ролей без явного указания?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Невозможно использовать подстановочный знак в политике доверия, кроме "Principal" : { "AWS" : "*" }.Причина в том, что при указании идентификатора в качестве принципала необходимо использовать полный ARN, поскольку IAM преобразуется в уникальный идентификатор, например AIDAxxx (для пользователя IAM) или AROAxxx (для роли IAM).Ниже приведен документ от :

Если ваш элемент Principal в политике доверия роли содержит ARN, который указывает на конкретного пользователя IAM, то этот ARN преобразуется в уникальный пользовательскийосновной идентификатор при сохранении политики.Это помогает снизить риск того, что кто-то повысит свои привилегии, удалив и воссоздав пользователя.Обычно этот идентификатор не отображается в консоли, поскольку при отображении политики доверия происходит обратное преобразование обратно в ARN пользователя.

0 голосов
/ 15 мая 2019

Я недавно столкнулся с тем же вариантом использования.Ни один из ответов не решил это для меня.

Чарли, ваше оригинальное решение действительно, но мне нужно было несколько настроек, чтобы заставить его работать, а именно, мне нужно было заменить 'ArnLike' на 'stringLike' и переключить 'aws: SourceArn', чтобы использовать 'aws: PrincipalArn':

    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<ACCOUNT_ID>:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": "arn:aws:iam::<ACCOUNT_ID>:role/test-role-name-*"
        }
      }
    }
0 голосов
/ 22 ноября 2018

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

Ссылка: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

Спасибо

...