是否可以在IAM策略的aws:PrincipalTag
中设置多个值?
目前,我有具有project
属性的联合用户在他们的JWT和取决于该值我可以访问特定的";文件夹";在我的s3水桶里。
对于具有以下值的JWT:
"https://aws.amazon.com/tags": {
"principal_tags": {
"project": [
"foo"
]
}
}
以及我的AWS政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TagBasedAccess",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::myawesomebucket",
"Condition": {
"StringLike": {
"s3:prefix": "${aws:PrincipalTag/project}/*"
}
}
}
]
}
它成功地授予用户对arn:aws:s3:::myawesomebucket/foo/
的访问权限。
现在我将使它适用于多个值在project
属性中(给予对多个s3"文件夹"的访问(。但我不知道该怎么做。
编辑:
在AWS文档(AWS文档(中:
您可以使用自定义在单个标记中包含多个值分离器。在本例中,可以附加
team = Engineering:QA
给张贴标签。在本例中,使用团队控制对工程师的访问标记,则必须创建一个策略,该策略允许可能包括Engineering
,包括Engineering:QA
但他们没有说明如何执行。。。
有一份AWS文档与此问题有关:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-关键或价值条件
文件直接报价:
若要将您的条件与具有多个键值的请求上下文进行比较,必须使用ForAllValues或ForAnyValue集合运算符。这些限定符为条件运算符添加了设置操作功能,以便您可以针对多个条件值测试多个请求值。此外,如果在策略中包含带有通配符或变量的多值键,则还必须使用StringLike条件运算符。
有关详细信息,请参阅原始文档。例如,您可能想知道条件运算符和条件块在这种情况下是如何工作的。