当前位置: 首页 > 知识库问答 >
问题:

如何将托管策略附加到无服务器框架中的lambda函数

漆雕昊天
2023-03-14

如何将托管策略附加到lambda函数?

我试过:

provider:
  name: aws
  role: arn:aws:iam::aws:policy/AmazonCognitoReadOnly

但这导致了以下错误:

预配堆栈时发生错误:检测到GaDasheretLambdaFunction-1验证错误:值'arn: aws: iam::aws:策略/Amazon CognitoReadOnly'at'角色'未能满足约束:成员必须满足正则表达式模式: arn: aws: iam::\d{12}:角色/?[Z_0-9 =,.@- _/]。

共有2个答案

束帅
2023-03-14

注意错误——它需要角色,而不是策略

IAM策略是定义权限的文档,不能直接附加到lambda函数。创建IAM角色并将托管策略附加到该角色。将角色视为策略的容器;策略不能直接附加到lambda函数,但角色可以。可以自由地将托管和内联策略附加和分离到角色。

选项1:使用预定义的策略从AWS控制台修复此错误:

  • 为lambda函数创建新的IAM角色

选项2:在serverless.yml中定义AmazonCongnitoradonly策略的操作:

这有效地将托管策略转换为内联策略。警告:这是未经测试的。

provider:
  ...
  iamRoleStatements:
    - Effect: Allow
      Action:
        - cognito-identity:Describe*
        - cognito-identity:Get*
        - cognito-identity:List*
        - cognito-idp:Describe*
        - cognito-idp:AdminGetUser
        - cognito-idp:List*
        - cognito-sync:Describe*
        - cognito-sync:Get*
        - cognito-sync:List*
        - iam:ListOpenIdConnectProviders
        - iam:ListRoles
        - sns:ListPlatformApplication
      Resource: *

进一步阅读:

  • AWS文档-AWS Lambda权限模型
梁鸿风
2023-03-14

你可以。只需在角色资源的ManagedPolicyArns中提供ARN。

Resources:
  RoleName:
    ManagedPolicyArns:
      - "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess"

对于适用于所有功能的策略:

provider:
  name: aws
  iamManagedPolicies:
    - "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess"
 类似资料:
  • 我正在尝试部署一个简单的Slack lambda api,它使用库从特定通道中删除成员和固定消息。我遇到的问题是函数没有问题地执行,并且它没有问题地删除通道成员,但是我的Lambda函数不断返回: 作为反应体。当我使用检查日志时,也没有看到任何错误。我看到我的函数的console.log成功执行。 null 为什么会出现此错误,以及如何解决此错误? 在处理程序函数中引用了这一点之后,我使用了。使用

  • 我正在创建一个nodejs应用程序,并将其作为lambda函数部署在AWS上。我正在跟踪链接:http://docs.aws.amazon.com/lambda/latest/dg/with-on-demand-https-example-create-iam-role.html 我现在被困在步骤2.2-2.3。步骤2.2中的json包含需要附加到角色的策略。当我使用以下命令(步骤2.3)创建la

  • 我按照此页面在我的服务器(ngrok 1.7)上自托管ngrok https://www.svenbit.com/2014/09/run-ngrok-on-your-own-server/ ATM,我可以正常使用超文本传输协议。 但是,我也想使用ssh(tcp协议)。 当尝试使用以下命令 ngrok (Ctrl C退出) 隧道在线状态 版本1.7/1.7 转发tcp://tunnel.mydoma

  • 我正在尝试按照本指南将消息从未加密的SNS主题传递到加密的SQS队列。我能够完成“为AWS服务配置KMS权限”步骤,但在“为生产者配置KMS权限”步骤中遇到了问题。我已经创建了IAM角色,但是将这个角色附加到我的SNS主题是我特别困惑的地方。以下是我自己的研究无法回答的一些问题: IAM角色是否可以附加到特定项目(SNS主题、SQS队列等)?如果没有,还有什么其他方法可以授予特定项目的权限 当说明

  • 我最近探索了serverless,我想为我的应用程序创建一个“简单”的后端。它应该像CRUD连接到DynamoDB,就像这里很好地显示的那样。然后转换成使用Cognoto记录用户。链接1和链接2( 在我的实施过程中,我遇到了一些问题,我想请您帮助,因为我不喜欢使用我只复制的东西,也不知道它是如何工作的: > 为什么我不需要设置CORS(标头)时初始化lambdas与无服务器,而不是在亚马逊控制台中

  • 我正在使用JBoss并从Jenkins运行Selenium测试。我想测量Selenium测试的代码覆盖率,所以显然我应该将JaCoCo java代理附加到服务器上。我是这样做的: 但是,不会生成任何输出文件。我在这里指向詹金斯路径中的雅各布.jar,但这是否意味着雅各布.jar和雅各布.exec必须在实际的服务器路径中,而不是詹金斯?