我想阻止对某些资源的访问,这些资源是我在组织中的新AWS帐户中创建的基础。我想为除Admins之外的所有用户做这件事。这个设计解决了仅用于管理部分的访问问题:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"ArnNotEquals": {
"aws:PrincipalArn": [
"arn:aws:iam::*:role/myadminrole",
"arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/sso-region/AWSReservedSSO_myrolename"
]
}
}
}
]
}
正如你在上面的角色中看到的,除了管理员之外,所有人的一切都被拒绝,这不是我想做的,我想阻止对某些资源的访问。做到这一点最简单的方法就是将我想要阻止访问的资源列在";资源";。但这将在手动工作中解决,以使SCP保持最新,这是我试图避免的。所以我的第二个想法是使用标签,并基于这样的条件拒绝访问:
"Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": ["mytagkey"]}}
但当我遇到这个问题时,一些AWS服务不支持基于标签的授权,请参阅链接:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html#:~:text=是-,AWS%20Lambda,部分%C2%B2,-亚马逊%20Lightsail
有人知道解决我问题的好方法吗?还是我只需要接受我必须手动更新SCP?
经过我和AWS支持部门的调查,目前这是不可能的。因此,答案是您需要手动更新SCP。