在 IAM 角色策略中定位联合 SAML 用户
Targetting federated SAML users in IAM role policies
我们目前正在使用 G Suite 作为我们的 AWS SAML 访问的 IDP,它在少数账户中承担一个角色,让我们的 G Suite 用户可以访问某些 AWS 资源。每个帐户都有一个名称相似的角色,G Suite 用户可以担任该角色,以授予他们访问该帐户中某些资源的权限,这些资源都按预期工作。
我正在研究是否可以配置该代入角色,以便为某些用户提供对某些资源的更细粒度的访问权限,而不必在 G Suite 本身内为不同用户分配完全不同的角色。
例如,如果在帐户中承担的角色称为 "assumed_gsuite_ro" 并且不授予对 IAM 的访问权限,您会在 IAM 控制台中收到如下错误:
User: arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com is not authorized to perform: iam:GetAccountSummary on resource: *
所以我想在 assumed_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/matt@domain.com"
}
}
}
...
但是,这不起作用,因为显然 SourceArn 不匹配。我可以使用的条件值是否允许我定位 AWS 似乎知道的特定联合用户?我在想 aws:userid 或 aws:username 之类的东西可能会起作用,但我不确定在这种情况下它们的值是什么。
我们目前正在使用 G Suite 作为我们的 AWS SAML 访问的 IDP,它在少数账户中承担一个角色,让我们的 G Suite 用户可以访问某些 AWS 资源。每个帐户都有一个名称相似的角色,G Suite 用户可以担任该角色,以授予他们访问该帐户中某些资源的权限,这些资源都按预期工作。
我正在研究是否可以配置该代入角色,以便为某些用户提供对某些资源的更细粒度的访问权限,而不必在 G Suite 本身内为不同用户分配完全不同的角色。
例如,如果在帐户中承担的角色称为 "assumed_gsuite_ro" 并且不授予对 IAM 的访问权限,您会在 IAM 控制台中收到如下错误:
User: arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com is not authorized to perform: iam:GetAccountSummary on resource: *
所以我想在 assumed_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/matt@domain.com"
}
}
}
...
但是,这不起作用,因为显然 SourceArn 不匹配。我可以使用的条件值是否允许我定位 AWS 似乎知道的特定联合用户?我在想 aws:userid 或 aws:username 之类的东西可能会起作用,但我不确定在这种情况下它们的值是什么。