【问题标题】:S3 create bucket failsS3 创建存储桶失败
【发布时间】: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::&lt;number&gt;:mfa/&lt;username&gt; --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


【解决方案1】:

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

假设您希望进程创建并拥有存储桶的所有权限,您需要这样的东西:

{
  "Statement": [
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}

【讨论】:

  • 但如果是这样的话,我就无法使用 AWS 命令​​行创建 S3 存储桶了,对吧?
  • 此外,该过程会自行创建新的 S3 存储桶。
  • 这个去哪儿了?
猜你喜欢
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多