【问题标题】:AWS StateMachine AccessDeniedException in step: CleanUpOnErrorAWS StateMachine AccessDeniedException 步骤:CleanUpOnError
【发布时间】:2023-01-14 14:44:05
【问题描述】:

尝试在 lambda 上执行步进函数时出现以下错误

"errorType": "AccessDeniedException",
  "errorMessage": "User: arn:aws:sts::14161:assumed-role/serverlessrepo-Functi-cleanerRole/serverlessrepo-=Function-p-cleaner is not authorized to perform: lambda:functionname on resource: arn:aws:lambda:function:functionname because no identity-based policy allows the lambda:functionname action",

Resources:
  FunctionExecutionRole: # Execution role for function
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: [
                "sts:AssumeRole",
                "lambda:InvokeAsync",
                "lambda:InvokeFunction"
            ]
            Resource: "*"
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AWSLambda_FullAccess
        - arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole
        - arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess 
      Tags: 
        - Key: Application
          Value: !Sub '${ApplicationTag}'
  Function1:
    Type: AWS::Serverless::Function # Find or Create alias lambda function
    Properties:
      PackageType: Image
      ImageConfig:
        Command:
        - function1.lambda_handler
      ImageUri: 
      AutoPublishAlias: live # This property enables lambda function versioning. 
      Role: !GetAtt FindOrCreateAliasExecutionRole.Arn
      Tags: 
        Application: !Sub '${ApplicationTag}'  

【问题讨论】:

    标签: python amazon-web-services lambda amazon-iam aws-step-functions


    【解决方案1】:

    此错误消息表明用户 (arn:aws:sts::14161:assumed-role/serverlessrepo-Functi-cleanerRole/serverlessrepo-=Function-p-cleaner) 没有执行 lambda:functionname 操作所需的权限在指定的资源 (arn:aws:lambda:function:functionname) 上,因为没有允许此操作的基于身份的策略。

    此错误通常是由 AWS IAM(身份和访问管理)策略配置不正确或不完整引起的。要解决此问题,您需要检查并更新您的 IAM 策略以确保用户具有必要的权限以对指定资源执行所需的操作。

    验证用户是否已在附加到用户或组的 IAM 策略中被授予必要的权限。

    检查用户在附加到资源的 IAM 策略中是否具有必要的权限(lambda 函数)。

    确保使用正确版本的 IAM 策略。

    如果使用角色,请确认该角色具有对资源执行操作所需的权限。

    确认用户正在使用正确的资源 ARN 并且该资源存在。

    确认您尝试调用的服务在您工作的地区可用。

    通过执行这些步骤,您应该能够识别和更正您的 IAM 策略的任何问题,并解决访问被拒绝的错误。

    【讨论】:

    • 谢谢@Maahi Bhat。确认用户正在使用正确的资源 ARN 并且该资源存在 确认我尝试调用的服务在我工作的区域可用。我无法更改用户的 IAM 策略。有解决方法吗?谢谢
    • 欢迎@Tanu,我很高兴
    猜你喜欢
    • 1970-01-01
    • 2016-10-10
    • 2018-12-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多