我有一个名为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中的这个角色来做一些事情……我想限制来自子账号的it....no 1应该用这个role...how做任何事情来限制它??
已尝试在子帐户roles..but中为策略添加条件,但找不到任何特定的条件
发布于 2019-08-22 19:59:20
如果您显示了正确的信任策略,则用户无法将此角色传递给Lambda函数,因为Lambda服务和您的角色之间没有信任。
第二件事是,您的孩子帐户(或任何帐户)中的用户在默认情况下没有权限承担任何角色(默认情况下,他们没有权限执行任何操作),这意味着有人授予了他们该权限。
简单的解决方案是从他们那里删除这一特权。如果由于工作量的原因,这是不可行的,那么您可以简单地创建IAM策略,该策略拒绝该特定资源(您想要限制的IAM角色)的sts:AssumeRole,并将此角色应用于您可以放置所有用户的组。但是,这不会阻止子帐户的root用户(或任何具有IAM服务权限的用户)绕过此限制。
另一种选择是在SCP中拒绝上述操作,并将该SCP应用于子帐户。如果可能,您可以修改当前的SCP,也可以创建新的SCP并将其直接应用于子帐户(请注意,您可以将多个SCP应用于一个帐户/OU,并且显式拒绝将否决任何现有的allow语句)。
https://stackoverflow.com/questions/57608327
复制相似问题