【问题标题】:What are the required policies for a IAM user that does a Serverless deployment to AWS Lambda?对 AWS Lambda 进行无服务器部署的 IAM 用户需要哪些策略?
【发布时间】:2021-03-11 23:37:07
【问题描述】:

我试图从一个角色受限的用户进行简单的部署——根本没有外部资源——我花了三个小时来研究 IAM,最终授予“受限”用户以下策略:

  • AWSCloudFormationFullAccess
  • AWSCodeDeployRoleForLambda
  • AWSLambdaFullAccess
  • AmazonAPIGatewayInvokeFullAccess
  • IAMFullAccess

而我还是得到了

error occurred: ApiGatewayRestApi - User: arn:aws:iam::265913673281:user/test-deploy-user is not authorized to perform: apigateway:POST on resource: arn:aws:apigateway:us-west-2::/restapis (Service: AmazonApiGateway; Status Code: 403; Error Code: AccessDeniedException; Request ID: 09dd8d6f-3160-46ee-8220-c6053dca9f02; Proxy: null).

那时,我放弃并使用了root访问权限。

但这不可扩展。必须有一种方法可以真正做到这一点(更重要的是,除了试错之外的其他方法)。

(如果有帮助,我正在尝试部署 this example。它根本不起作用——我知道这令人震惊——直到我将其修改为详细的 here。说真的,亚马逊,它必须这么困难吗?)

更新:

一位评论者写道:

你是从终端部署还是代码构建?

终端。

您的服务器 less.yml 文件是什么样的?

serverless.yaml 是:

# serverless.yml
useDotenv: true
service: apollo-lambda
provider:
  name: aws
  runtime: nodejs12.x
  region: us-west-2
  deploymentBucket:
    name: mysys-deployment-bucket
    serverSideEncryption: AES256
  apiGateway:
    shouldStartNameWithService: true

functions:
  graphql:
    handler: build/graphql/lambda.graphqlHandler
    events:
      - http:
          path: graphql
          method: post
          cors: true
      - http:
          path: graphql
          method: get
          cors: true
plugins:
  - serverless-deployment-bucket

您是否在本地设置了访问密钥?

我愿意。

一旦正确连接起来,这根本不会太难。 ——

你的意思是,一旦你完成了不可能的事情,它一点也不难。

显然,除了困难的部分,一切都很容易。珠穆朗玛峰?去机场很方便!脑部手术?给病人剃光头很容易,给保险计费也很简单……

【问题讨论】:

  • 这比 AWS 更像是一个serverless-framework 问题。 serverless 执行 AWS API 调用,因此它应该知道它需要的所有 IAM 权限。这些 API 调用取决于您的 serverless 配置,因此没有一个真正的列表 IAM 最低权限,因为它可以非常适合各个项目。我希望有一个serverless CLI 命令可以根据您的无服务器配置列出所有必需的 IAM 权限。
  • 你是从终端部署还是代码构建?您的服务器 less.yml 文件是什么样的?您是否在本地设置了访问密钥?一旦正确连接起来,这根本不会太难。
  • @lopezdp 在更新中回答。
  • 附上AmazonAPIGatewayAdministrator政策
  • @AtulSharma — 你为什么不回答你的评论,这样我才能接受它并给予你信任?此外,您可能知道“atul sharma”的意思是“完美的舒适”。现在看来很合适...

标签: aws-lambda amazon-iam serverless-framework


【解决方案1】:

阿图尔·夏尔马写道:

只需附加 AmazonAPIGateway 管理员策略

这完全奏效了。

【讨论】:

    猜你喜欢
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2020-12-26
    • 2020-06-07
    • 2019-11-16
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多