我正在尝试创建一个无服务器项目,该项目部署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
答案 0 :(得分:2)
您的流程角色需要在角色或用户级别获得IAM权限,具体取决于您的实施。
假设您希望流程创建并拥有存储桶的所有权限,则需要以下内容:
{
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}