Whe*_*rdy 2 roles saml amazon-iam google-workspace
我们目前使用 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: *
Run Code Online (Sandbox Code Playgroud)
所以我想添加一些类似的东西到posed_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"
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为 SourceArn 显然不匹配。我可以使用的条件值是否允许我定位 AWS 似乎知道的特定联合用户?我在想像 aws:userid 或 aws:username 这样的东西可能会起作用,但我不确定在这种情况下它们的值是什么。
深入研究并在 AWS 文档中找到了此页面,该页面描述aws:userid了 SAML/联合上下文中的值是如何构成的,我确定以下工作:
"Condition": {
"StringLike": {
"aws:userid": "AROAROLEID:matt@domain.com"
}
}
Run Code Online (Sandbox Code Playgroud)
AROAROLEID您假设的角色名称的“角色 ID”值在哪里(在我的示例中为 assumed_gsuite_ro),根据此页面,您只能从对 AWS CLI 的 get-role 调用中获取(这是角色 ID)。
| 归档时间: |
|
| 查看次数: |
1019 次 |
| 最近记录: |