AWS中实现支持多团队用户的ABAC权限配置方案问询
AWS多团队场景下的通用ABAC配置方案需求
我们在AWS中采用ABAC(基于属性的访问控制),通过以下带条件的IAM策略,允许开发者管理标记为其所属团队的资源:
"Condition" : { "StringEquals" : { "aws:ResourceTag/team" : "${aws:PrincipalTag/team}" } }
但部分开发者常跨多个团队工作,上述策略无法满足需求。针对资源归属多团队的场景,我们通过竖线包裹标签的方式规避误匹配(资源标签设为|TeamA|TeamB|,用户标签为TeamB),对应的策略如下:
"Condition" : { "StringLike" : { "aws:ResourceTag/team" : "*|${aws:PrincipalTag/team}|*" } }
不过当用户归属多团队(比如同时属于TeamA和TeamB),需要访问标记为TeamA或TeamB的资源时,目前还没找到可行方案。我们希望策略具备通用性,避免因新增团队频繁更新策略。
我们原本设想,如果aws:PrincipalTag/team是数组类型,可通过ForAnyValue:StringEquals条件解决,但目前无法为账号定义数组属性——该标签值来自AD/AAD的extensionAttribute1,是分隔符分隔的字符串,无法直接转换为数组。以下是我们构想的无效语法示例:
"Condition" : { "ForAnyValue:StringEquals" : { "aws:ResourceTag/team" : [${aws:PrincipalTag/team}] // <-- 已知此语法无效 } }
现寻求该场景下的通用ABAC配置方案。
内容的提问来源于stack exchange,提问作者JohnLBevan
相关产品推荐
相关产品推荐

