S3创建存储桶失败

Gan*_*ute 5 amazon-s3 amazon-web-services 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  
Run Code Online (Sandbox Code Playgroud)

我尝试使用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
Run Code Online (Sandbox Code Playgroud)

$serverless deploy 还会使用的内容来部署服务~/.aws/credentials

[mfa]
aws_access_key_id = <ACESS_KEY>
aws_secret_access_key = <SECRET_KEY>
aws_session_token = <SESSION ID>
Run Code Online (Sandbox Code Playgroud)

我通过跑步得到的

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

Rod*_*o M 3

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

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

{
  "Statement": [
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)