当您在AWS Lambda函数中访问S3时遇到“AWS Lambda S3访问被拒绝”错误时,可能是由于以下几个原因造成的:
以下是一个示例IAM策略,将允许Lambda函数访问特定的S3存储桶:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLambdaAccessToS3",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
请将上述策略中的"your-bucket-name"替换为您要访问的S3存储桶的名称。
{
"Version": "2012-10-17",
"Id": "LambdaAccessPolicy",
"Statement": [
{
"Sid": "AllowLambdaAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::your-account-id:role/your-iam-role"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
请将上述策略中的"your-account-id"替换为您的AWS账户ID,"your-iam-role"替换为您的IAM角色名称,"your-bucket-name"替换为您的S3存储桶名称。
通过检查和修复上述问题,您应该能够解决“AWS Lambda S3访问被拒绝”错误。