当尝试在AWS Lambda函数别名中使用IAM角色时,需要将别名的名称添加到IAM策略中。下面是一个示例IAM策略,其中允许在具有指定别名的Lambda函数中执行S3GetObject任务的权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLambdaToReadS3Objects",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my_bucket/*"
],
"Condition": {
"ForAllValues:StringLike": {
"aws:Referer": [
"arn:aws:lambda:us-west-2:123456789012:function:*:aliases/MyAlias"
]
}
}
}
]
}
在上面的示例中,“aws:Referer”匹配Lambda函数中指定别名的ARN。这种方式仅授予与指定别名关联的Lambda函数中执行S3GetObject的权限。由于Lambda函数别名始终是不同的,因此这种方法允许在安全性方面更加严格地控制需要访问资源的Lambda函数。