https://www.davehall.com.au/blog/2020/07/10/logging-step-functions-cloudwatch/
AWSTemplateFormatVersion: '2010-09-09' Description: StepFunction with Logging Example. Parameters: Resources: StepFunctionExecRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: !Sub "states.${AWS::Region}.amazonaws.com" Action: - sts:AssumeRole Path: "/" Policies: - PolicyName: StepFunctionExecRole PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - lambda:InvokeFunction - lambda:ListFunctions Resource: !Sub "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:my-lambdas-namespace-*" - Effect: Allow Action: - logs:CreateLogDelivery - logs:CreateLogStream - logs:GetLogDelivery - logs:UpdateLogDelivery - logs:DeleteLogDelivery - logs:ListLogDeliveries - logs:PutLogEvents - logs:PutResourcePolicy - logs:DescribeResourcePolicies - logs:DescribeLogGroups Resource: "*" MyStateMachineLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: /aws/vendedlogs/states/my-step-function-{stage} RetentionInDays: 14 DashboardImportStateMachine: Type: AWS::StepFunctions::StateMachine Properties: StateMachineName: my-step-function StateMachineType: STANDARD LoggingConfiguration: Destinations: - CloudWatchLogsLogGroup: LogGroupArn: !GetAtt MyStateMachineLogGroup.Arn IncludeExecutionData: True Level: ALL DefinitionString: !Sub | { ... JSON Step Function definition goes here } RoleArn: !GetAtt StepFunctionExecRole.Arn
From AWS role permission needed:
https://docs.aws.amazon.com/step-functions/latest/dg/cw-logs.html
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
Enabling logging from certain AWS services (vended logs)
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
Amazon CloudWatch Logs resource policy size restrictions <–why vended logs are needed
https://docs.aws.amazon.com/step-functions/latest/dg/bp-cwl.html