【问题标题】:Targetting federated SAML users in IAM role policies在 IAM 角色策略中定位联合 SAML 用户
【发布时间】:2018-07-13 13:55:19
【问题描述】:

我们目前将 G Suite 作为 IDP 用于我们的 AWS SAML 访问,它在少数账户中担任一个角色,为我们的 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: *

因此,我想在假定的_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 这样的东西可能会起作用,但我不确定在这种情况下它们的值是什么。

【问题讨论】:

    标签: amazon-iam saml roles google-workspace


    【解决方案1】:

    深入研究并在 AWS 文档中找到了 this page,该文档描述了 aws:userid 的值是如何在 SAML/联合上下文中构成的,我确定了以下工作:

    "Condition": {
        "StringLike": {
            "aws:userid": "AROAROLEID:matt@domain.com"
        }
    }
    

    AROAROLEID 是您所承担的角色名称的“角色 ID”值(在我的示例中为 assumed_gsuite_ro),根据this page,您只能从 get-role 调用中获得AWS CLI(它是 RoleId 的值)。

    【讨论】:

    • 非常感谢,很难弄清楚这一点。
    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 2016-05-15
    • 2021-01-05
    • 1970-01-01
    • 2021-04-19
    • 2017-05-17
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多