Skip to content

Latest commit

 

History

History
117 lines (107 loc) · 23 KB

rules.md

File metadata and controls

117 lines (107 loc) · 23 KB

Rules

Errors

Errors will start with the letter E. Errors will result in a hard failure for the template being validated.

Warnings

Warnings start with the letter W. Warnings alert you when the template doesnt follow best practices but should still function. Example: If you use a parameter for a RDS master password you should have the parameter property NoEcho set to true.

Categories

Rule Numbers Category
(E|W)0XXX Basic Template Errors. Examples: Not parseable, main sections (Outputs, Resources, etc.)
(E|W)1XXX Functions (Ref, GetAtt, etc.)
(E|W)2XXX Parameters
(E|W)3XXX Resources
(E|W)4XXX Metadata
(E|W)6xxx Outputs
(E|W)7xxx Mappings
(E|W)8xxx Conditions
(E|W)9xxx Reserved for users rules

Warning Rule E3012 is used to check the types for value of a resource property. A number is a number, string is a string, etc. There are occasions where this could be just a warning and other times it could be an error. cfn-lint doesn't have an exception process so all instances of this issue are considered errors. You can disable this rule using --ignore-checks if it is not required for your internal best practices.

Rules

The following 81 rules are applied by this linter:

Rule ID Title Description Source Tags
E0000 Parsing error found when parsing the template Checks for Null values and Duplicate values in resources Source base
E0001 Error found when transforming the template Errors found when performing transformation on the template Source base,transform
E0002 Error processing rule on the template Errors found when processing a rule on the template Source base,rule
E1001 Basic CloudFormation Template Configuration Making sure the basic CloudFormation template components are properly configured Source base
E1002 Template size limit Check the size of the template is less than the upper limit Source limits
E1003 Template description limit Check if the size of the template description is less than the upper limit Source limits
E1010 GetAtt validation of parameters Validates that GetAtt parameters are to valid resources and properties of those resources Source functions,getatt
E1011 FindInMap validation of configuration Making sure the function is a list of appropriate config Source functions,findinmap
E1012 Check if Refs exist Making sure the refs exist Source functions,ref
E1015 GetAz validation of parameters Making sure the function not is of list Source functions,getaz
E1016 ImportValue validation of parameters Making sure the function not is of list Source functions,importvalue
E1017 Select validation of parameters Making sure the function not is of list Source functions,select
E1018 Split validation of parameters Making sure the split function is properly configured Source functions,split
E1019 Sub validation of parameters Making sure the split function is properly configured Source functions,sub
E1020 Ref validation of value Making the Ref has a value of String (no other functions are supported) Source functions,ref
E1021 Base64 validation of parameters Making sure the function not is of list Source functions,base64
E1022 Join validation of parameters Making sure the join function is properly configured Source functions,join
E1023 Validation NOT function configuration Making sure that NOT functions are list Source functions,not
E1024 Cidr validation of parameters Making sure the function CIDR is a list with valid values Source functions,cidr
E1025 Check if Conditions exist Making sure the Conditions used in Fn:If functions exist Source functions,if
E1026 Cannot reference resources in the Conditions block of the template Check that any Refs in the Conditions block uses no resources Source functions,ref
E2001 Parameters have appropriate properties Making sure the parameters are properly configured Source parameters
E2002 Parameters have appropriate type Making sure the parameters have a correct type Source parameters
E2003 Parameters have appropriate names Check if Parameters are properly named (A-Za-z0-9) Source parameters
E2004 CIDR Allowed Values should be a Cidr Range Check if a parameter is being used as a CIDR. If it is make sure allowed values are proper CIDRs Source parameters,cidr
E2010 Parameter limit not exceeded Check the number of Parameters in the template is lessthan the upper limit Source parameters,limits
E2011 Parameter name limit not exceeded Check the size of Parameter names in the template is less than the upper limit Source parameters,limits
E2012 Parameter value limit not exceeded Check if the size of Parameter values in the template is less than the upper limit Source parameters,limits
E2015 Default value is within parameter constraints Making sure the parameters have a default value inside AllowedValues, MinValue, MaxValue, AllowedPattern Source parameters
E2502 Check if IamInstanceProfile are using the name and not ARN See if there are any properties IamInstanceProfileare using name and not ARN Source properties
E2503 Resource ELB Properties See if Elb Resource Properties are set correctly HTTPS has certificate HTTP has no certificate Source properties,elb
E2504 Check Ec2 Ebs Properties See if Ec2 Eb2 Properties are valid Source properties,ec2,ebs
E2505 Resource EC2 VPC Properties See if EC2 VPC Properties are set correctly Source properties,vpc
E2506 Resource EC2 Security Group Ingress Properties See if EC2 Security Group Ingress Properties are set correctly. Check that "SourceSecurityGroupId" or "SourceSecurityGroupName" are are exclusive and using the type of Ref or GetAtt Source resources,securitygroup
E2507 Check if IAM Policies are properly configured See if there elements inside an IAM policy are correct Source properties,iam
E2508 Check IAM resource limits See if IAM resources do not breach limits Source resources,iam
E2509 Validate SecurityGroup description Check if SecurityGroup descriptions are correctly configured Source resources,securitygroup
E2510 Resource EC2 PropertiesEc2Subnet Properties See if EC2 Subnet Properties are set correctly Source properties,subnet
E2520 Check Properties that are mutually exclusive Making sure CloudFormation properties that are exclusive are not defined Source resources
E2521 Check Properties that are required together Make sure CloudFormation resource properties are included together when required Source resources
E2522 Check Properties that need at least one of a list of properties Making sure CloudFormation properties that require at least one property from a list. More than one can be included. Source resources
E2523 Check Properties that need only one of a list of properties Making sure CloudFormation properties that require only one property from a list. One has to be specified. Source resources
E2530 Check Lambda Memory Size Properties See if Lambda Memory Size is valid Source resources,lambda
E2531 Check Lambda Runtime Properties See if Lambda Runtime is in valid Source resources,lambda
E2540 CodePipeline Stages See if CodePipeline stages are set correctly Source properties,codepipeline
E2541 CodePipeline Stage Actions See if CodePipeline stage actions are set correctly Source resources,codepipeline
E3001 Basic CloudFormation Resource Check Making sure the basic CloudFormation resources are properly configured Source resources
E3002 Resource properties are valid Making sure that resources properties are properly configured Source resources
E3003 Required Resource Parameters are missing Making sure that Resources properties that are required exist Source resources
E3004 Resource dependencies are not circular Check that Resources are not circularly dependent by Ref, Sub, or GetAtt Source resources,circularly
E3005 Check DependsOn values for Resources Check that the DependsOn values are valid Source resources,dependson
E3006 Resources have appropriate names Check if Resources are properly named (A-Za-z0-9) Source resources
E3010 Resource limit not exceeded Check the number of Resources in the template is lessthan the upper limit Source resources,limits
E3011 Resource name limit not exceeded Check the size of Resource names in the template is less than the upper limit Source resources,limits
E3012 Check resource properties values Checks resource property values with Primitive Types for values that match those types. Source resources
E3013 CloudFront Aliases CloudFront aliases should contain valid domain names Source properties,cloudfront
E3020 Validate Route53 RecordSets Check if all RecordSets are correctly configured Source resources,route53,record_set
E4001 Metadata Interface have appropriate properties Metadata Interface properties are properly configured Source metadata
E6001 Outputs have appropriate properties Making sure the outputs are properly configured Source outputs
E6002 Outputs have required properties Making sure the outputs have required properties Source outputs
E6003 Outputs have values of strings Making sure the outputs have strings as values Source outputs
E6004 Outputs have appropriate names Check if Outputs are properly named (A-Za-z0-9) Source outputs
E6010 Output limit not exceeded Check the number of Outputs in the template is lessthan the upper limit Source outputs,limits
E6011 Output name limit not exceeded Check the size of Output names in the template is less than the upper limit Source outputs,limits
E7001 Mappings are appropriately configured Check if Mappings are properly configured Source mappings
E7002 Mappings have appropriate names Check if Mappings are properly named (A-Za-z0-9) Source mapping
E7010 Mapping limit not exceeded Check the number of Mappings in the template is lessthan the upper limit Source mappings,limits
E7011 Mapping name limit not exceeded Check the size of Mapping names in the template is less than the upper limit Source mappings,limits
E7012 Mapping attribute limit not exceeded Check if the amount of Mapping attributes in the template is less than the upper limit Source mappings,limits
E8001 Conditions have appropriate properties Check if Conditions are properly configured Source conditions
W2001 Check if Parameters are Used Making sure the parameters defined are used Source parameters
W2501 Check if Password Properties are correctly configured Password properties should be strings and if parameter using NoEcho Source parameters,passwords
W2505 Check if VpcID Parameters have the correct type See if there are any refs for VpcId to a parameter of inappropriate type. Appropriate Types are [AWS::EC2::VPC::Id, AWS::SSM::Parameter::ValueAWS::EC2::VPC::Id] Source parameters,vpcid
W2506 Check if ImageId Parameters have the correct type See if there are any refs for ImageId to a parameter of inappropriate type. Appropriate Types are [AWS::EC2::Image::Id, AWS::SSM::Parameter::ValueAWS::EC2::Image::Id] Source parameters,imageid
W2507 Security Group Parameters are of correct type AWS::EC2::SecurityGroup::Id Check if a parameter is being used in a resource for Security Group. If it is make sure it is of type AWS::EC2::SecurityGroup::Id Source parameters,securitygroup
W2508 Availability Zone Parameters are of correct type AWS::EC2::AvailabilityZone::Name Check if a parameter is being used in a resource for Security Group. If it is make sure it is of type AWS::EC2::AvailabilityZone::Name Source parameters,availabilityzone
W2509 CIDR Parameters have allowed values Check if a parameter is being used as a CIDR. If it is make sure it has allowed values regex comparisons Source parameters,availabilityzone
W2510 Parameter Memory Size attributes should have max and min Check if a parameter that is used for Lambda memory size should have a min and max size that matches Lambda constraints Source parameters,lambda
W2512 Parameter Lambda Runtime has allowed values set Check if a parameter that is used for Lambda runtime has allowed values constraint defined Source parameters,lambda
W3005 Check obsolete DependsOn configuration for Resources Check if DependsOn is specified if not needed. A Ref or a Fn::GetAtt already is an implicit dependency. Source resources,dependson
W3010 Availability Zone Parameters should not be hardcoded Check if an Availability Zone property is hardcoded. Source parameters,availabilityzone
W4001 Metadata Interface parameters exist Metadata Interface parameters actually exist Source metadata
W7001 Check if Mappings are Used Making sure the mappings defined are used Source conditions
W8001 Check if Conditions are Used Making sure the conditions defined are used Source conditions