如何将托管策略附加到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 =,.@- _/]。
注意错误——它需要角色
,而不是策略
。
IAM策略是定义权限的文档,不能直接附加到lambda函数。创建IAM角色并将托管策略附加到该角色。将角色视为策略的容器;策略不能直接附加到lambda函数,但角色可以。可以自由地将托管和内联策略附加和分离到角色。
选项1:使用预定义的策略从AWS控制台修复此错误:
选项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: *
进一步阅读:
你可以。只需在角色资源的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必须在实际的服务器路径中,而不是詹金斯?