2017-01-10 6 views
1

Какое условие можно применить для ограничения IAM только для ролей с определенным именем?Как ограничить пользователя IAM допустимыми ролями кросс-аккаунта с определенным именем?

У этого пользователя есть доверенные отношения на нескольких учетных записях AWS, в которых все имена ролей «MyRole». Поэтому я хочу, состояние вроде:

Assumed RoleARN ~= arn:aws:iam::[0-9]*:role/MyRole

Благодарности

ответ

3

Для того, чтобы ваш IAM пользователь взять на себя роль конкретного имени по нескольким счетам, белый список всех необходимых ролей ВРНС явно. Это безопасный способ для этого.

"Resource": [ 
    "arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole", 
    "arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole", 
    "arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole" 
] 

Вот полная политика: (AWS-СЧЕТ-ID является 12-значный номер без hypens)

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "sts:AssumeRole" 
      ], 
      "Resource": [ 
       "arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole", 
       "arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole", 
       "arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole" 
      ] 
     } 
    ] 
} 

Однако, глядя на вашей попытке использования группового символа вместо учетной записи идентификатора, я хотел подчеркнуть, что следующее возможно, но ставит вашу компанию под угрозу безопасности. Он нарушает principle of least privilege.

Доступ принять любую роль в любом счете AWS (небезопасных)

"Resource": [ 
    "arn:aws:iam::*" 
] 

Доступ предположить 'MyRole' в любой учетной записи AWS (небезопасных)

"Resource": [ 
    "arn:aws:iam::*:role/MyRole" 
] 

С помощью этого шаблона доступ, пользователь IAM может принимать «MyRole» (или любую роль) от имени вашей компании в любой сторонней учетной записи AWS.

+0

Спасибо за ваш ответ. Фактически этот пользователь будет использоваться для опроса данных на наших клиентских счетах. Эта политика направлена ​​на защиту нашей учетной записи, если утечка некоторых учетных данных и предотвращает их принятие всех ролей в нашем аккаунте. Подстановочный знак только позволяет нам использовать одного пользователя для определения ролей на этих сторонних учетных записях (и защищены внешним идентификатором). –