我正在尝试创建一个部署云形式的无服务器项目,并且作为其中的一部分,它试图创建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
您的流程角色需要在角色或用户级别上,取决于您的实现。
假设您希望该过程创建并拥有所有许可,则需要这样的东西:
{
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}