Amazon web services Lambda函数无服务器权限

Amazon web services Lambda函数无服务器权限,amazon-web-services,permissions,aws-lambda,Amazon Web Services,Permissions,Aws Lambda,我一直在用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=

我一直在用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/*' 

我还需要其他配置吗?我遗漏了什么明显的东西吗?

对我来说,缩进看起来是错误的。请确保正确使用它

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
合并为一条语句。

lambda附加了一个角色,该角色应该可以访问s3,你能检查一下吗?@GowthamChand我怎么能检查?错误在
s3\u client=boto3.client('s3')
上,因为我没有凭据,您知道如何通过.yml文件传递它吗?