我一直在用python和serverless开发一个aws lambda函数。它从一个s3存储桶中读取文件,并将其中的数据作为csv存储在另一个存储桶中。代码可以很好地使用invoke local,但在部署之后,我会得到:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied这是函数:
s3_client.put_object(Body=data, Bucket=bucket_name, Key=key_name)和无服务器yml的一部分
iamRoleStatements:
- Effect: Allow
Action:
- KMS:Decrypt
Resource: '*'
- Effect: Allow
Action:
- 's3:*'
Resource:
- 'arn:aws:s3:::output_bucket'
- 'arn:aws:s3:::output_bucket/*'
- Effect: Allow
Action:
- 's3:ListBucket'
Resource:
- 'arn:aws:s3:::input_bucket'
- 'arn:aws:s3:::input_bucket/*'
- Effect: Allow
Action:
- 's3:GetObject'
Resource:
- 'arn:aws:s3:::input_bucket'
- 'arn:aws:s3:::input_bucket/*' 还有其他我需要的配置吗?我是不是漏掉了什么明显的东西?
发布于 2018-06-14 16:11:48
对我来说,缩进看起来是错误的。请务必正确使用。
iamRoleStatements:
- Effect: Allow
Action:
- 'kms:Decrypt'
Resource: '*'
- Effect: Allow
Action:
- 's3:*'
Resource:
- 'arn:aws:s3:::output_bucket'
- 'arn:aws:s3:::output_bucket/*'
- Effect: Allow
Action:
- 's3:ListBucket'
- 's3:GetObject'
Resource:
- 'arn:aws:s3:::input_bucket'
- 'arn:aws:s3:::input_bucket/*'仅供参考:我将s3:ListBucket和s3:GetObject合并到一条语句中。
https://stackoverflow.com/questions/50851568
复制相似问题