S3创建存储桶失败

时间:2017-09-18 10:16:14

标签: amazon-web-services amazon-s3 amazon-iam serverless-framework

我正在尝试创建一个无服务器项目,该项目部署CloudFormation,并尝试创建一个S3存储桶。但由于以下错误导致此操作失败:

15:23:25 UTC+0550   CREATE_FAILED       AWS::S3::Bucket ServerlessDeploymentBucket  API: s3:CreateBucket Access Denied
15:23:24 UTC+0550   CREATE_IN_PROGRESS  AWS::S3::Bucket ServerlessDeploymentBucket  

我尝试使用成功创建存储桶的命令aws s3api create-bucket --bucket my-bucket --region us-west-2创建一个S3存储桶。我不确定为什么在通过无服务器创建S3存储桶时我拒绝访问。这可能是什么问题?

这是我的serverless.yml文件

service: auth-service-gs

provider:
  name: aws
  runtime: python2.7
  stage: dev2-gs-1
  region: us-west-2
  profile: mfa
  environment:
    DB_HOST: "DB_HOST"
    DB_USER: "root"
    DB_PASS: "<password>"
    LOG_LEVEL: "DEBUG"


functions:
  login:
    handler: handler.login
    events:
       - http:
           path: /api/v1/login
           method: post
           cors: true

我使用$serverless deploy部署服务 此外,内容为~/.aws/credentials

[mfa]
aws_access_key_id = <ACESS_KEY>
aws_secret_access_key = <SECRET_KEY>
aws_session_token = <SESSION ID>

我通过运行获得了

$ aws sts get-session-token --serial-number arn:aws:iam::<number>:mfa/<username> --token-code 123456

1 个答案:

答案 0 :(得分:2)

您的流程角色需要在角色或用户级别获得IAM权限,具体取决于您的实施。

假设您希望流程创建并拥有存储桶的所有权限,则需要以下内容:

{
  "Statement": [
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}