|
8 | 8 | "slices" |
9 | 9 | "strings" |
10 | 10 |
|
| 11 | + "github.com/google/uuid" |
11 | 12 | "github.com/hashicorp/hcl/v2/hclwrite" |
12 | 13 | "github.com/pkg/errors" |
13 | 14 |
|
@@ -294,6 +295,9 @@ type GenerateAwsTfConfigurationArgs struct { |
294 | 295 | // Lacework Organization |
295 | 296 | LaceworkOrganizationLevel bool |
296 | 297 |
|
| 298 | + // Use random Cloudtrail name |
| 299 | + UseCloudTrailRandomName bool |
| 300 | + |
297 | 301 | // Default AWS Provider Tags |
298 | 302 | ProviderDefaultTags map[string]interface{} |
299 | 303 |
|
@@ -595,6 +599,13 @@ func WithControlTowerLogArchiveAccount(LogArchiveAccount *AwsSubAccount) AwsTerr |
595 | 599 | } |
596 | 600 | } |
597 | 601 |
|
| 602 | +// WithUseCloudTrailRandomName CloudTrail random name |
| 603 | +func WithUseCloudTrailRandomName(useCloudTrailRandomName bool) AwsTerraformModifier { |
| 604 | + return func(c *GenerateAwsTfConfigurationArgs) { |
| 605 | + c.UseCloudTrailRandomName = useCloudTrailRandomName |
| 606 | + } |
| 607 | +} |
| 608 | + |
598 | 609 | // WithControlTowerKmsKeyArn Set ControlTower custom KMS key ARN |
599 | 610 | func WithControlTowerKmsKeyArn(kmsKeyArn string) AwsTerraformModifier { |
600 | 611 | return func(c *GenerateAwsTfConfigurationArgs) { |
@@ -1049,6 +1060,12 @@ func createCloudtrail(args *GenerateAwsTfConfigurationArgs) (*hclwrite.Block, er |
1049 | 1060 | if args.ConsolidatedCloudtrail { |
1050 | 1061 | attributes["consolidated_trail"] = true |
1051 | 1062 | } |
| 1063 | + |
| 1064 | + if args.UseCloudTrailRandomName { |
| 1065 | + uid := uuid.New().String()[:8] |
| 1066 | + attributes["cloudtrail_name"] = fmt.Sprintf("lacework-cloudtrail-%s", uid) |
| 1067 | + } |
| 1068 | + |
1052 | 1069 | // S3 Bucket attributes |
1053 | 1070 | if args.CloudtrailUseExistingTrail { |
1054 | 1071 | attributes["use_existing_cloudtrail"] = true |
|
0 commit comments