是否可以指定AWS角色信任关系的模式



我想允许来自不同帐户的一些角色在我的帐户中扮演角色。我不想一个接一个地指定角色,因为它们经常变化。

我为信任关系想出了这个策略,它应该允许任何名称以_my_suffix结尾的角色,但它不起作用(访问被拒绝(:

{
"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"
}
]
}

那么,有没有办法只允许一组角色而不被明确指定?

我最近遇到了同样的用例。没有一个回复为我解决了这个问题。

Charli,你的原始解决方案是有效的,但我需要一些调整才能使其发挥作用,即,我需要将"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-*"
}
}
}

除了"Principal" : { "AWS" : "*" }之外,不可能在信任策略中使用通配符。原因是,当您指定一个身份为委托人时,您必须使用完整的ARN,因为IAM转换为唯一的ID,例如AIDAxxx(用于IAM用户(或AROAxxx(用于IAM角色(。以下是来自文件:

如果角色信任策略中的Principal元素包含ARN指向特定IAM用户,则ARN被转换为保存策略时用户的唯一主体ID。这有助于通过删除以及重新创建用户。您通常不会在控制台,因为还有一个反向转换回显示信任策略时用户的ARN。

这似乎是将访问权限委派给信任帐户(您的帐户(而不是受信任帐户(_my_suffix-AWS帐户(的问题。您可以在以下URL中查看以下内容。

链接:https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

感谢

相关内容

  • 没有找到相关文章

最新更新