AWS Lambda 函数可以通过访问权限来实现对 AWS 资源的保护控制。下面是一个示例:
import boto3
def lambda_handler(event, context):
client = boto3.client('s3')
response = client.list_buckets()
for bucket in response['Buckets']:
print(bucket['Name'])
为了限制此 Lambda 函数仅能访问指定的 S3 存储桶,可以在函数执行角色中创建一个策略,指定只能访问这个存储桶。策略如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
其中,"arn:aws:s3:::my-bucket" 指定 S3 存储桶的 ARN(Amazon 资源名称),"arn:aws:s3:::my-bucket/*" 指定 S3 存储桶内所有对象的 ARN。在此策略下,Lambda 函数仅能访问名为 my-bucket 的存储桶及其内部资源,而不能访问其他的存储桶。
上一篇:AWSLambda函数访问参数存储中的字符串时出错。
下一篇:AWSLambda函数返回“errorMessage”:“[Errno30]只读文件系统:'/home/sbx_user1051'”