我们可以限制子AWS帐户中的角色策略仅由组织AWS帐户使用吗

时间:2019-08-22 11:27:25

标签: amazon-web-services amazon-iam

我有一个名为cloud的组织根AWS帐户。以下是其附带的政策。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": [
            "arn:aws:iam::XXXXXXXXX:role/Account-accessROle"

        ]

    }
}

我在子帐户中创建了角色Accountaccessrole。该角色与组织帐户具有信任关系,因此只有cloud个用户可以担任此角色。 这是信任关系:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{ROOTACCOUNT}:user/cloud"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

其附带政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "EC2:*",
            "Resource": "*",

            }
        }
    ]
}

已排序。但是子帐户(XXXXX)的用户可以在lambda中使用此角色来做某事....我想限制它....子帐户中的任何人都不应对此角色做任何事...如何限制此角色??

试图在子帐户角色中添加策略条件。.但找不到任何特定的

1 个答案:

答案 0 :(得分:0)

如果您显示正确的信任策略,则用户无法将此角色传递给Lambda函数,因为Lambda服务与您的角色之间没有信任。

第二件事是您的子帐户(或与此帐户有关的任何帐户)中的用户无权默认承担任何角色(默认情况下他们无权执行任何操作),这意味着某人授予了该特权

简便的解决方案是从他们那里除去此特权。如果由于需要大量工作而无法实现,那么您可以简单地创建针对该特定资源(您要限制的IAM角色)拒绝sts:AssumeRole的IAM策略,并将此角色应用于您所在的组可以放置所有用户。但是,这不会阻止子帐户的root用户(或任何具有IAM服务权限的用户)绕过此限制。

另一种选择是拒绝上述SCP中的操作,并将该SCP应用于子帐户。您可以尽可能修改当前的SCP,也可以创建一个新的SCP,然后直接将其应用到子帐户(请注意,您可以将多个SCP应用于一个帐户/ OU,并且明确的拒绝将否决任何现有的allow语句)。