Parameters: #=============== #AWS Credentials #=============== AwsAccessKeyId: Type: String Description: The AWS access key ID AllowedPattern: ^.{1,}$ ConstraintDescription: Please enter a parameter value for parameter key AwsAccessKeyId AwsSecretAccessKey: Type: String Description: The AWS secret access key AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key AwsSecretAccessKey NoEcho: true #================= #Cluster Configuration #================= VpcCidrBlock: Type: String Description: The CIDR block to be used by the VPC Default: 10.0.0.0/24 PublicSubnetCidrBlock: Type: String Description: The CIDR block to be used by the public subnet Default: 10.0.0.0/28 AvailabilityZone1: Type: String Description: The first availability zone. Leave blank to use default AvailabilityZone2: Type: String Description: The second availability zone. Leave blank to use default NodesSubnet1CidrBlock: Type: String Description: The CIDR block to be used by the first subnet for EKS nodes Default: 10.0.0.128/26 NodesSubnet2CidrBlock: Type: String Description: The CIDR block to be used by the second subnet for EKS nodes Default: 10.0.0.192/26 EksClusterRoleArn: Type: String Description: The ARN of the eksClusterRole. Leave blank to use burp-suite-enterprise-edition-eksClusterRole-arn from SSM. ClusterNodes: Type: Number Description: The number of nodes to create in the EKS cluster MinValue: 2 MaxValue: 100 Default: 2 ClusterNodeSize: Type: String Description: The type of nodes to place in the cluster Default: m5.xlarge AllowedValues: - t2.large - t2.xlarge - t2.2xlarge - t3.large - t3.xlarge - t3.2xlarge - t3a.large - t3a.xlarge - t3a.2xlarge - m4.large - m4.xlarge - m4.2xlarge - m5.large - m5.xlarge - m5.2xlarge - m5a.large - m5a.xlarge - m5a.2xlarge NodeInstanceRoleArn: Type: String Description: The ARN of the NodeInstanceRole. Leave blank to use burp-suite-enterprise-edition-NodeInstanceRole-arn from SSM. EcsTaskExecutionRoleArn: Type: String Description: The ARN of the EcsTaskExecutionRole. Leave blank to use burp-suite-enterprise-edition-EcsTaskExecutionRole-arn from SSM. EcsTaskRoleArn: Type: String Description: The ARN of the EcsTaskRole. Leave blank to use burp-suite-enterprise-edition-EcsTaskRole-arn from SSM. #=========================== #BSEE Database Configuration #=========================== BseeAdminRepositoryUrl: Type: String Description: The JDBC URL used to connect to the external database AllowedPattern: ^jdbc:(postgresql|oracle|mysql|mariadb|sqlserver)://.*$ ConstraintDescription: Please enter a valid JDBC connection URL for a supported database BseeAdminRepositoryUsername: Type: String Description: The database username for enterprise server AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAdminRepositoryUsername BseeAdminRepositoryPassword: Type: String Description: The database password for enterprise server AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAdminRepositoryPassword NoEcho: true BseeAgentRepositoryUsername: Type: String Description: The database username for agents AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAgentRepositoryUsername BseeAgentRepositoryPassword: Type: String Description: The database password for agents AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAgentRepositoryPassword NoEcho: true #================================ #BSEE Admin Interface Credentials #================================ BseeAdminUsername: Type: String Description: The administrator username AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAdminUser BseeAdminPassword: Type: String Description: The administrator password AllowedPattern: ^.+$ ConstraintDescription: Please enter a parameter value for parameter key BseeAdminPassword NoEcho: true BseeAdminEmail: Type: String Description: The administrator email address AllowedPattern: ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$ MaxLength: 255 ConstraintDescription: Please enter a valid email address (see RFC 5322) (255 characters max) Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: "AWS Credentials" Parameters: - AwsAccessKeyId - AwsSecretAccessKey - Label: default: "Network Configuration" Parameters: - VpcCidrBlock - AvailabilityZone1 - AvailabilityZone2 - PublicSubnetCidrBlock - NodesSubnet1CidrBlock - NodesSubnet2CidrBlock - Label: - default: "EKS Cluster Configuration" Parameters: - ClusterNodes - ClusterNodeSize - EksClusterRoleArn - NodeInstanceRoleArn - Label: - default: "IAM Roles for Deployment" Parameters: - EcsTaskExecutionRoleArn - EcsTaskRoleArn - Label: default: "Database Configuration" Parameters: - BseeAdminRepositoryUrl - BseeAdminRepositoryUsername - BseeAdminRepositoryPassword - BseeAgentRepositoryUsername - BseeAgentRepositoryPassword - Label: default: "Admin User" Parameters: - BseeAdminUsername - BseeAdminPassword - BseeAdminEmail ParameterLabels: AwsAccessKeyId: default: "AWS Access Key ID" AwsSecretAccessKey: default: "AWS Secret Access Key" VpcCidrBlock: default: "VPC CIDR Block" PublicSubnetCidrBlock: default: "Public Subnet CIDR Block" AvailabilityZone1: default: "Availability Zone 1" AvailabilityZone2: default: "Availability Zone 2" NodesSubnet1CidrBlock: default: "Nodes Subnet 1 CIDR Block" NodesSubnet2CidrBlock: default: "Nodes Subnet 2 CIDR Block" EksClusterRoleArn: default: "ekClusterRole ARN" ClusterNodes: default: "Number of Nodes" ClusterNodeSize: default: "Node Instance Type" NodeInstanceRoleArn: default: "NodeInstanceRole ARN" EcsTaskExecutionRoleArn: default: "ecsTaskExecutionRole ARN" EcsTaskRoleArn: default: "ecsTaskRole ARN" BseeAdminRepositoryUrl: default: "Database URL" BseeAdminRepositoryUsername: default: "Admin Repository Username" BseeAdminRepositoryPassword: default: "Admin Repository Password" BseeAgentRepositoryUsername: default: "Agent Repository Username" BseeAgentRepositoryPassword: default: "Agent Repository Password" BseeAdminUsername: default: "Admin Username" BseeAdminPassword: default: "Admin Password" BseeAdminEmail: default: "Admin Email Address" Conditions: UseDefaultAvailabilityZone1: !Equals [!Ref AvailabilityZone1, ""] UseDefaultAvailabilityZone2: !Equals [!Ref AvailabilityZone2, ""] UseDefaultEksClusterRoleArn: !Equals [!Ref EksClusterRoleArn, ""] UseDefaultNodeInstanceRoleArn: !Equals [!Ref NodeInstanceRoleArn, ""] UseDefaultEcsTaskExecutionRoleArn: !Equals [!Ref EcsTaskExecutionRoleArn, ""] UseDefaultEcsTaskRoleArn: !Equals [!Ref EcsTaskRoleArn, ""] Resources: Infrastructure: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://bsee-cloud-trial.s3-eu-west-1.amazonaws.com/2020.11-5632/infrastructure.yaml Parameters: VpcCidrBlock: !Ref VpcCidrBlock PublicSubnetCidrBlock: !Ref PublicSubnetCidrBlock AvailabilityZone1: !If - UseDefaultAvailabilityZone1 - !Select - 0 - !GetAZs Ref: 'AWS::Region' - !Ref AvailabilityZone1 AvailabilityZone2: !If - UseDefaultAvailabilityZone2 - !Select - 1 - !GetAZs Ref: 'AWS::Region' - !Ref AvailabilityZone2 NodesSubnet1CidrBlock: !Ref NodesSubnet1CidrBlock NodesSubnet2CidrBlock: !Ref NodesSubnet2CidrBlock EksClusterRoleArn: !If [UseDefaultEksClusterRoleArn, "{{resolve:ssm:burp-suite-enterprise-edition-eksClusterRole-arn:1}}", !Ref EksClusterRoleArn] ClusterNodes: !Ref ClusterNodes ClusterNodeSize: !Ref ClusterNodeSize NodeInstanceRoleArn: !If [UseDefaultNodeInstanceRoleArn, "{{resolve:ssm:burp-suite-enterprise-edition-NodeInstanceRole-arn:1}}", !Ref NodeInstanceRoleArn] Deployment: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://bsee-cloud-trial.s3-eu-west-1.amazonaws.com/2020.11-5632/deployment.yaml Parameters: BseeAdminRepositoryUrl: !Ref BseeAdminRepositoryUrl BseeAdminRepositoryUsername: !Ref BseeAdminRepositoryUsername BseeAdminRepositoryPassword: !Ref BseeAdminRepositoryPassword BseeAgentRepositoryUsername: !Ref BseeAgentRepositoryUsername BseeAgentRepositoryPassword: !Ref BseeAgentRepositoryPassword BseeAdminUsername: !Ref BseeAdminUsername BseeAdminPassword: !Ref BseeAdminPassword BseeAdminEmail: !Ref BseeAdminEmail EksClusterName: !GetAtt Infrastructure.Outputs.EksClusterName EksClusterSecurityGroupId: !GetAtt Infrastructure.Outputs.EksClusterSecurityGroupId EfsFileSystemId: !GetAtt Infrastructure.Outputs.EfsFileSystemId HttpSecurityGroupId: !GetAtt Infrastructure.Outputs.HttpSecurityGroupId AwsAccessKeyId: !Ref AwsAccessKeyId AwsSecretAccessKey: !Ref AwsSecretAccessKey EcsTaskExecutionRoleArn: !If [UseDefaultEcsTaskExecutionRoleArn, "{{resolve:ssm:burp-suite-enterprise-edition-ecsTaskExecutionRole-arn:1}}", !Ref EcsTaskExecutionRoleArn] EcsTaskRoleArn: !If [UseDefaultEcsTaskRoleArn, "{{resolve:ssm:burp-suite-enterprise-edition-ecsTaskRole-arn:1}}", !Ref EcsTaskRoleArn] NodesSubnet1Id: !GetAtt Infrastructure.Outputs.NodesSubnet1Id NodesSubnet2Id: !GetAtt Infrastructure.Outputs.NodesSubnet2Id