AWS IAM信任策略中的principal元素指定了受信任的用户、角色或其他实体来扮演指定的AWS服务角色。如果您需要在信任策略中使用通配符,您需要使用AWS提供的AWS支持的参数列表。
例如,下面是一个示例信任策略,该策略将来自所有AWS账户中受信用户的访问权限传递给S3存储桶。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::*:user/*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
在这个例子中,""代表匹配任何AWS账户和任何受信的用户。您可以在principal元素中使用,但不能在条件元素中使用通配符。
因此,如果您希望使用IAM策略条件元素中的通配符,可以使用其他参数,例如Condition,指定一个条件表达式,该表达式必须为true才会执行授权。例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {
"StringEquals": {
"aws:PrincipalAccount": [
"111111111111",
"222222222222"
]
}
}
}
]
}
在这个例子中,principal元素设置为*,为了在策略中使用通配符,我们使用Condition元素来指定受信账户ID列表。
注意,Condition元素需要符