Creates a CodeBuild project to audit an AWS account with Prowler and stores the html report in a S3 bucket.
This will run onece at the beginning and on a schedule afterwards. Partial contribution from https://github.com/stevecjones
import { ProwlerAudit } from 'cdk-prowler'
new ProwlerAudit(parent: Stack, id: string, props?: ProwlerAuditProps)
Name | Type | Description |
---|---|---|
parent |
aws-cdk-lib.Stack |
No description. |
id |
string |
No description. |
props |
ProwlerAuditProps |
No description. |
- Type: aws-cdk-lib.Stack
- Type: string
- Type: ProwlerAuditProps
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
public toString(): string
Returns a string representation of this construct.
Name | Type | Description |
---|---|---|
codebuildProject |
aws-cdk-lib.aws_codebuild.Project |
No description. |
enableScheduler |
boolean |
No description. |
logsRetentionInDays |
aws-cdk-lib.aws_logs.RetentionDays |
No description. |
prowlerOptions |
string |
No description. |
prowlerScheduler |
string |
No description. |
prowlerVersion |
string |
No description. |
serviceName |
string |
No description. |
public readonly codebuildProject: Project;
- Type: aws-cdk-lib.aws_codebuild.Project
public readonly enableScheduler: boolean;
- Type: boolean
public readonly logsRetentionInDays: RetentionDays;
- Type: aws-cdk-lib.aws_logs.RetentionDays
public readonly prowlerOptions: string;
- Type: string
public readonly prowlerScheduler: string;
- Type: string
public readonly prowlerVersion: string;
- Type: string
public readonly serviceName: string;
- Type: string
import { ProwlerAuditProps } from 'cdk-prowler'
const prowlerAuditProps: ProwlerAuditProps = { ... }
Name | Type | Description |
---|---|---|
additionalS3CopyArgs |
string |
An optional parameter to add to the S3 bucket copy command. |
allowlist |
aws-cdk-lib.aws_s3_assets.Asset |
An Prowler-specific Allowlist file. |
enableScheduler |
boolean |
enables the scheduler for running prowler periodically. |
logsRetentionInDays |
aws-cdk-lib.aws_logs.RetentionDays |
Specifies the number of days you want to retain CodeBuild run log events in the specified log group. |
prowlerOptions |
string |
Options to pass to Prowler command, make sure at least -M junit-xml is used for CodeBuild reports. |
prowlerScheduler |
string |
The time when Prowler will run in cron format. |
prowlerVersion |
string |
Specifies the concrete Prowler version. |
reportBucket |
aws-cdk-lib.aws_s3.IBucket |
An optional S3 bucket to store the Prowler reports. |
reportBucketPrefix |
string |
An optional prefix for the report bucket objects. |
serviceName |
string |
Specifies the service name used within component naming. |
public readonly additionalS3CopyArgs: string;
- Type: string
An optional parameter to add to the S3 bucket copy command.
Example
--acl bucket-owner-full-control
public readonly allowlist: Asset;
- Type: aws-cdk-lib.aws_s3_assets.Asset
- Default: undefined
An Prowler-specific Allowlist file.
If a value is provided then this is passed to Prowler on runs using the '-w' flag. If no value is provided, the -w parameter is not used. If you provide an asset that is zipped, it must contain an 'allowlist.txt' file which will be passed to Prowler.
Example
new Asset(this, 'AllowList', { path: path.join(__dirname, 'allowlist.txt') })
public readonly enableScheduler: boolean;
- Type: boolean
- Default: false
enables the scheduler for running prowler periodically.
Together with prowlerScheduler.
public readonly logsRetentionInDays: RetentionDays;
- Type: aws-cdk-lib.aws_logs.RetentionDays
- Default: : 3
Specifies the number of days you want to retain CodeBuild run log events in the specified log group.
Junit reports are kept for 30 days, HTML reports in S3 are not deleted
public readonly prowlerOptions: string;
- Type: string
- Default: '-M text,junit-xml,html,csv,json'
Options to pass to Prowler command, make sure at least -M junit-xml is used for CodeBuild reports.
Use -r for the region to send API queries, -f to filter only one region, -M output formats, -c for comma separated checks, for all checks do not use -c or -g, for more options see -h. For a complete assessment use "-M text,junit-xml,html,csv,json", for SecurityHub integration use "-r region -f region -M text,junit-xml,html,csv,json,json-asff -S -q"
public readonly prowlerScheduler: string;
- Type: string
- Default: 'cron(0 22 * * ? *)'
The time when Prowler will run in cron format.
Default is daily at 22:00h or 10PM 'cron(0 22 * * ? *)', for every 5 hours also works 'rate(5 hours)'. More info here https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html.
public readonly prowlerVersion: string;
- Type: string
- Default: 2.10.0
Specifies the concrete Prowler version.
public readonly reportBucket: IBucket;
- Type: aws-cdk-lib.aws_s3.IBucket
An optional S3 bucket to store the Prowler reports.
public readonly reportBucketPrefix: string;
- Type: string
An optional prefix for the report bucket objects.
public readonly serviceName: string;
- Type: string
- Default: : prowler
Specifies the service name used within component naming.