【发布时间】:2018-02-26 20:17:11
【问题描述】:
我正在尝试创建一个部署 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
【问题讨论】:
-
检查 Serverless 是否使用了没有必要权限的 IAM 角色来创建 S3 存储桶来运行 CloudFormation
-
无服务器配置提到了这对密钥,没有明确提到角色。我使用了相同的密钥对,并且能够创建存储桶。
-
Lambda 函数附加的 IAM 策略是什么?
-
@strongjz 你能指导我如何检查吗?我正在使用一个帐户,该帐户的一个角色具有对所有服务的管理访问权限。我是否需要在无服务器配置文件中明确设置权限?
-
创建 lambda 函数时,您必须创建一个执行角色。 docs.aws.amazon.com/lambda/latest/dg/…
标签: amazon-web-services amazon-s3 amazon-iam serverless-framework