如何将托管策略附加到lambda函数?
我试过了:
provider:
name: aws
role: arn:aws:iam::aws:policy/AmazonCognitoReadOnly
但这导致以下错误:
设置堆栈时发生错误:GaDashextractLambdaFunction-检测到1个验证错误:'role'处的值'arn:aws:iam :: aws:policy / AmazonCognitoReadOnly'无法满足约束:成员必须满足正则表达式模式:arn:aws: iam :: \ d {12}:role /?[a-zA-Z_0-9 + =,。@ -_ //] +。
请注意错误-它期望role
而不是policy
。
IAM策略是定义权限的文档,不能直接附加到lambda函数。创建一个IAM角色,并将托管策略附加到该角色。将角色视为您的策略的容器;策略不能直接附加到lambda函数,但是角色可以。您可以自由地将托管和内联策略附加和分离到您的角色。
选项1:使用预定义的策略从AWS控制台修复此错误:
AmazonCognitoReadOnly
托管策略。role
新角色的ARN替换定义中的ARN。选项2:在serverless.yml中定义AmazonCognitoReadOnly策略的操作:
这样可以有效地将托管策略转换为内联策略。警告:这未经测试。
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: *
进一步阅读:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句