我们目前正在使用G Suite作为我们的AWS SAML访问的IDP,该ID在少数账户中扮演了角色,以使G Suite用户可以访问某些AWS资源。每个帐户都具有一个类似命名的角色,G Suite用户可以假定这些角色授予他们访问该帐户中某些资源的权限,这些资源都按预期工作。
我正在研究是否可以配置该假定的角色,以便为某些用户提供某些资源的更细粒度的访问,而不必在G Suite本身中为不同的用户分配完全不同的角色。
例如,如果在帐户中承担的角色称为“ assumed_gsuite_ro”,并且不提供对IAM的访问权限,则在IAM控制台中会出现如下错误:
User: arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/[email protected] is not authorized to perform: iam:GetAccountSummary on resource: *
因此,我想在假定的_gsuite_ro角色策略中添加一些内容,以使我的联盟用户可以访问IAM中的内容:
...
{
"Sid": "IAMTest",
"Effect": "Allow",
"Action": [
"iam:GetAccountSummary",
"iam:ListAccountAliases"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/[email protected]"
}
}
}
...
但是,这显然不起作用,因为SourceArn显然不匹配。我可以使用的条件值是否可以使我针对AWS似乎了解的特定联盟用户?我在想类似aws:userid或aws:username之类的方法,但是我不确定在这种情况下它们的值是什么。
深入研究并在AWS文档中找到此页面,该页面描述了如何aws:userid
在SAML /联合上下文中构成的值,我确定了以下工作:
"Condition": {
"StringLike": {
"aws:userid": "AROAROLEID:[email protected]"
}
}
AROAROLEID
您承担的角色名称的“角色ID”的值在哪里(在我的示例中为assumed_gsuite_ro),根据此页面,您只能从对AWS CLI的get-role调用中获取该角色的值(即RoleId)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句