我有一个名为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 中使用此角色来执行某些操作。我想限制它....儿童帐户中的任何任何人都不应使用此角色做任何事情......如何限制这一点??
尝试在子帐户角色中添加策略条件。.但找不到任何具体的
如果您显示正确的信任策略,则用户无法将此角色传递给 Lambda 函数,因为 Lambda 服务与您的角色之间没有信任。
第二件事是,您的子帐户(或与此相关的任何帐户(中的用户默认情况下无权承担任何角色(默认情况下他们无权执行任何操作(,这意味着有人授予了他们该权限。
简单的解决方案是从他们那里删除此特权。如果由于需要大量工作量而无法做到这一点,那么您可以简单地创建 IAM 策略,拒绝对该特定资源(您要限制的 IAM 角色(的sts:AssumeRole
,并将此角色应用于可以放置所有用户的组。但是,这不会阻止子账户的根用户(或有权访问 IAM 服务的任何用户(绕过此限制。
另一种选择是在SCP中拒绝上述操作,并将该SCP应用于子帐户。如果可能,您可以修改当前的 SCP,也可以创建一个新的 SCP 并将其直接应用于子账户(请注意,您可以将多个 SCP 应用于一个账户/OU,显式拒绝将否决任何现有的允许语句(。