0

我正在尝试使用 CLI 和 Ansible 来部署带有附加 Lambda / Lambda@Edge 函数的 CloudFront 实例。但我遇到了以下错误:

Lambda@Edge 无法为指定的 Lambda 函数启用复制。更新 IAM 策略以添加权限: lambda:EnableReplication* for resource: arn:aws:lambda:us-east-1:ACCOUNTNUMBER:function:FUNCTIONNAME:1 并重试。

文档确实说我需要lambda:EnableReplication*,但是当我尝试通过此命令将权限添加到 lambda 函数时:

aws lambda add-permission --function-name FUNCITONNAME:1 --action "lambda:EnableReplication*" --statement-id something --principal "*" --output text

我收到以下错误:

调用 AddPermission 操作时发生错误 (ValidationException):检测到 1 个验证错误:值 'lambda:EnableReplication*' at 'action' failed to meet constraint: Member must meet regular expression pattern: (lambda:[*]|lambda:[ a-zA-Z]+|[*])

我想如何添加这些权限才能成功,我在这里做错了什么?

4

2 回答 2

0

从 AWS 返回的错误并不完全正确。这是一个工作示例。

aws lambda add-permission \
  --function-name "name-of-your-function" \
  --action "lambda:EnableReplication" \
  --statement-id "lambda_enable_replication" \
  --principal "*" \
  --output text 

您也可以使用 CloudFormation 完成此操作。

EdgeAuthEnableReplicationPermission:
  Type: AWS::Lambda::Permission
  Properties:
    Action: "lambda:EnableReplication"
    FunctionName: !Ref FunctionResource
    Principal: "*"
于 2021-02-09T21:41:01.693 回答
0

嗨,我遇到了同样的问题,花了一些时间才弄清楚。我开始尝试使用 aws lambda add-permission(基于角色的策略)。但是您需要添加的权限(例如 lambda:Enablereplication*)不应添加到资源基础策略中,而应添加到执行角色(如果您像我的情况一样从 lambda 运行)或使用 CLI 的用户(就像我认为是你的情况)希望这有帮助!:)

于 2020-04-21T00:09:34.143 回答