Amazon web services S3创建bucket失败
我正在尝试创建一个无服务器项目,它部署了一个CloudFormation,作为其中的一部分,它尝试创建一个S3 bucket。但由于以下错误,此操作失败:Amazon web services S3创建bucket失败,amazon-web-services,amazon-s3,amazon-iam,serverless-framework,Amazon Web Services,Amazon S3,Amazon Iam,Serverless Framework,我正在尝试创建一个无服务器项目,它部署了一个CloudFormation,作为其中的一部分,它尝试创建一个S3 bucket。但由于以下错误,此操作失败: 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::Buck
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 bucket,该命令成功创建了bucket。我不知道为什么在通过无服务器创建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
这是我通过跑步得到的
$aws sts获取会话令牌--序列号arn:aws:iam:::mfa/--令牌代码123456
您的流程角色将需要iam权限,无论是在角色级别还是在用户级别,具体取决于您的实现
假设您希望流程创建并拥有对bucket的所有权限,则需要如下内容:
{
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
检查Serverless是否使用IAM角色,该角色没有创建S3 bucket以运行CloudFormationServerless配置所需的权限。如果提到这对密钥,则没有明确提到角色。我使用了同一对密钥,并且能够创建存储桶。Lambda函数附带的IAM策略是什么?@strongjz您能指导我如何检查它吗。我使用的帐户只有一个角色可以管理访问所有服务。我是否需要在无服务器配置文件中显式设置权限?创建lambda函数时,必须创建执行角色。但是如果是这样的话,我就不能使用AWS命令行创建S3 bucket了,对吗?另外,这个过程会自己创建新的S3 bucket。这是怎么回事?
{
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}