Ren*_*rop 8 amazon-web-services amazon-iam amazon-cognito aws-lambda serverless-framework
如何将托管策略附加到 lambda 函数?
我试过:
provider:
  name: aws
  role: arn:aws:iam::aws:policy/AmazonCognitoReadOnly
但这导致了以下错误:
配置堆栈时发生错误:GaDashextractLambdaFunction - 检测到 1 个验证错误:“角色”处的值“arn:aws:iam::aws:policy/AmazonCognitoReadOnly”无法满足约束:成员必须满足正则表达式模式:arn:aws: iam::\d{12}:角色/?[a-zA-Z_0-9+=,.@-_/]+.
你可以。只需在角色资源的 ManagedPolicyArns 中提供 ARN。
Resources:
  RoleName:
    ManagedPolicyArns:
      - "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess"
对于应用于所有功能的策略:
provider:
  name: aws
  iamManagedPolicies:
    - "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess"
请注意错误 - 它需要role而不是policy.
IAM 策略是定义权限的文档,不能直接附加到 lambda 函数。创建IAM 角色并将托管策略附加到该角色。将角色视为策略的容器;策略不能直接附加到 lambda 函数,但角色可以。您可以自由地将托管策略和内联策略附加到您的角色或将其分离。
选项 1:使用预定义策略从 AWS 控制台修复此错误:
AmazonCognitoReadOnly托管策略。role为新角色的 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: *
进一步阅读:
| 归档时间: | 
 | 
| 查看次数: | 8881 次 | 
| 最近记录: |