CloudFormation - 无法验证目标配置

问题描述 投票:0回答:1

我有一个应用程序的旧模板,我正在尝试使用类似的参数在 AWS 中重建。我已成功将所有文件复制到我的帐户,并且工作正常,直到它必须创建 S3 存储桶并在其中引发错误 - 资源处理程序返回消息:

无法验证以下目标配置(服务:S3,状态代码:400,请求 ID:MV9SQ25WK1ZDNA89,扩展请求 ID tvWAt7vhcOeC1MOr07/wokB/CFwY3WJ+Mh38wgnH5oTHuNJc7Eq+kb/3iiJefRiHKnLQVI7zGpfvq9G0Ys ARmw==)”(请求令牌:52421cf8-e91e-f57a -54c4-6d90d8382023,HandlerErrorCode:InvalidRequest)


我尝试将 lambda 函数的权限添加到我的存储桶策略以及 IAM 用户,但仍然遇到相同的错误。

我的模板卡在这个

  #S3 Bucket
  ParamArchiveBucket:
    Type: AWS::S3::Bucket
    Description: "S3 Bucket to store Param archive videos"
    Properties:
      BucketName: !Sub ${ParamBucketName}-${Environment}
      NotificationConfiguration:
        LambdaConfigurations:
          - Event: "s3:ObjectCreated:*"
            Filter:
              S3Key:
                Rules:
                  - Name: "prefix"
                    Value: !Sub ${paramKey}
            Function: !GetAtt LambdaFunctionArchiveParamSession.Arn

我已尝试按照 AWS 帮助台和网络上的建议添加权限和策略,但仍然无法解决该错误。有人可以帮助我理解错误并解决它吗?

amazon-web-services amazon-s3 aws-lambda aws-cloudformation aws-cloudformation-custom-resource
1个回答
0
投票

您需要确保与 Lambda 函数关联的 IAM 角色具有 S3 存储桶调用所需的权限

将以下策略添加到 Lambda 函数的执行角色:

{
  "Effect": "Allow",
  "Action": "lambda:InvokeFunction",
  "Resource": "arn:aws:lambda:<Region>:<Account-ID>:function:<FunctionName>"
}

添加 AWS::Lambda::Permission 资源以显式允许 S3 存储桶调用 Lambda 函数:

LambdaInvokePermission:
  Type: AWS::Lambda::Permission
  Properties:
    FunctionName: !GetAtt LambdaFunctionArchiveParamSession.Arn
    Action: "lambda:InvokeFunction"
    Principal: "s3.amazonaws.com"
    SourceArn: !Sub "arn:aws:s3:::${ParamBucketName}-${Environment}"
© www.soinside.com 2019 - 2024. All rights reserved.