如何限制 IAM 用户代入具有特定名称的跨账户角色



我可以应用哪个条件来限制 IAM 仅代入具有特定名称的角色?

此用户在多个 AWS 账户上具有信任关系,这些账户都包含角色名称"MyRole"。所以我想要一个这样的条件:

Assumed RoleARN ~= arn:aws:iam::[0-9]*:role/MyRole

谢谢

要让您的 IAM 用户跨多个账户代入特定名称的角色,请将所有必需的角色 ARN 明确列入白名单。这是安全的方法

"Resource": [
    "arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
    "arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
    "arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
]

以下是完整的策略:(AWS-ACCOUNT-ID 是 12 位数字,不带连字符

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
                "arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
                "arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
            ]
        }
    ]
}

但是,看看您尝试使用通配符代替帐户 ID,我想强调以下内容是可能的,但会使您的公司面临安全风险。它违反了最小特权原则。

有权代入任何 AWS 账户中的任何角色 (不安全

"Resource": [
    "arn:aws:iam::*"
]

在任何 AWS 账户中担任"MyRole"的访问权限 (不安全)

"Resource": [
    "arn:aws:iam::*:role/MyRole"
]

通过此通配符访问权限,IAM 用户可以在任何第三方 AWS 账户中代表您的公司代入"MyRole"(或任何角色)。

相关内容

  • 没有找到相关文章

最新更新