2016-01-21 2 views
6

Как я могу позволить всем членам группы взять на себя роль в AWS IAM?Как я могу позволить группе взять на себя роль?

Я попытался использовать следующий оператор, но, как указано в AWS IAM Principal Element, Группа не может быть Принципалом.

Я хочу, чтобы достичь чего-то, как показано ниже:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "", 
     "Effect": "Allow", 
     "Principal": { 
     "AWS": "arn:aws:iam::***:group/developer" 
     }, 
     "Action": "sts:AssumeRole" 
    } 
    ] 
} 

Идея заключается в том, что все члены группы group/developer должны быть в состоянии взять на себя роль. Цель состоит в том, что я должен быть спасен от необходимости указывать каждого члена группы отдельно.

Есть ли способ достичь этого?

+0

Какую роль вы хотите принять? Можете ли вы предоставить образец ARN? –

+0

Роль называется разработчиком как-хорошо: поэтому ARN будет чем-то вроде 'arn: aws: iam :: ***: role/developer' – Rentrop

ответ

1

Это может быть сделано по-другому. Но, не уверен, что это то, что вы хотите.

1) Создайте политику, используя create-policy.
2) Прикрепите политику к роли arn:aws:iam::***:role/developer, используя attach-role-policy.
3) Создайте предназначенный Group, используя create-group.
4) Прикрепите указанную управляемую политику к указанной группе, используя attach-group-policy.

То же самое можно достичь с помощью консоли AWS или AWS SDK вместо использования CLI. См. Attaching a Policy to an IAM Group

Таким образом, вам не нужно добавлять роли отдельно для каждого члена группы.

1

Присоединить политику Группы, который предоставляет разрешение на вызов sts:AssumeRole от желаемой роли:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "123", 
      "Effect": "Allow", 
      "Action": [ 
       "sts:AssumeRole" 
      ], 
      "Resource": [ 
       "arn:aws:iam::123456789012:role/desired-role" 
      ] 
     } 
    ] 
} 

Кроме того, приложите Политика доверия о роли. Пример политики (ниже) доверяет любому пользователю в учетной записи, но для принятия роли также необходимы sts:AssumeRole разрешения (выше).

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

, это способ сделать, но доверительная политика доверяет всем пользователям в учетной записи , а не конкретно в группе IAM. Это контролируется только уровнем ресурсов политики, но я думаю, что Floo0 хочет указать «только пользователи в группе» в доверительных отношениях, что невозможно :( – Tom

+2

@John Rotenstein, спасибо за решение (+1) После того, как я углубился, я нашел это решение, а также, поскольку Том указывает, что это решение «отключает» двойную защиту для принятия ролей. Особенно для кросс-аккаунта Роль-предположение, я думаю, что это немного «рискованно» ... – Rentrop

+0

Вам нужно будет изменить принципала, чтобы использовать ARN группы. Думаю, он просто скопировал пример с пользователем ': root'. – kgpdeveloper