Terraform module for configuring an integration with Google Cloud Platform Organizations and Projects for Audit Logs analysis.
Alternatively, it is possible to remove the offending roles from the state file before destroy, preventing the role(s) from being removed.
e.g. terraform state rm 'google_project_iam_binding.for_lacework_service_account'
roles/storage.objectViewer
iam.googleapis.com
pubsub.googleapis.com
serviceusage.googleapis.com
cloudresourcemanager.googleapis.com
Name | Version |
---|---|
terraform | >= 0.15.1 |
>= 4.4.0 | |
lacework | ~> 2.0 |
time | ~> 0.6 |
Name | Version |
---|---|
>= 4.4.0 | |
lacework | ~> 2.0 |
random | n/a |
time | ~> 0.6 |
Name | Source | Version |
---|---|---|
lacework_at_svc_account | lacework/service-account/gcp | ~> 2.0 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
bucket_force_destroy | Force destroy bucket (if disabled, terraform will not be able do destroy non-empty bucket) | bool |
true |
no |
bucket_labels | Set of labels which will be added to the audit log bucket | map(string) |
{} |
no |
bucket_region | The region where the new bucket will be created, valid values for Multi-regions are (EU, US or ASIA) alternatively you can set a single region or Dual-regions follow the naming convention as outlined in the GCP bucket locations documentation https://cloud.google.com/storage/docs/locations#available-locations|string|US|false| | string |
"US" |
no |
custom_bucket_name | Override prefix based storage bucket name generation with custom name | string |
null |
no |
custom_filter | Customer defined Audit Log filter which will supersede all other filter options when defined | string |
"" |
no |
enable_ubla | Boolean for enabling Uniform Bucket Level Access on the audit log bucket. Default is true | bool |
true |
no |
existing_bucket_name | The name of an existing bucket you want to send the logs to | string |
"" |
no |
existing_sink_name | The name of an existing sink to be re-used for this integration | string |
"" |
no |
folders_to_exclude | List of root folders to exclude in an organization-level integration. Format is 'folders/1234567890' | list(string) |
[] |
no |
folders_to_include | List of root folders to include in an organization-level integration. Format is 'folders/1234567890' | set(string) |
[] |
no |
google_workspace_filter | Filter out Google Workspace login logs from GCP Audit Log sinks. Default is true | bool |
true |
no |
include_root_projects | Enables logic to include root-level projects if excluding folders. Default is true | bool |
true |
no |
k8s_filter | Filter out GKE logs from GCP Audit Log sinks. Default is true | bool |
true |
no |
labels | Set of labels which will be added to the resources managed by the module | map(string) |
{} |
no |
lacework_integration_name | n/a | string |
"TF audit_log" |
no |
lifecycle_rule_age | Number of days to keep audit logs in Lacework GCS bucket before deleting. Leave default to keep indefinitely | number |
-1 |
no |
org_integration | If set to true, configure an organization level integration | bool |
false |
no |
organization_id | The organization ID, required if org_integration is set to true | string |
"" |
no |
prefix | The prefix that will be use at the beginning of every generated resource | string |
"lw-at" |
no |
project_id | A project ID different from the default defined inside the provider | string |
"" |
no |
pubsub_subscription_labels | Set of labels which will be added to the subscription | map(string) |
{} |
no |
pubsub_topic_labels | Set of labels which will be added to the topic | map(string) |
{} |
no |
required_apis | n/a | map(any) |
{ |
no |
service_account_name | The Service Account name (required when use_existing_service_account is set to true) | string |
"" |
no |
service_account_private_key | The private key in JSON format, base64 encoded (required when use_existing_service_account is set to true) | string |
"" |
no |
use_existing_service_account | Set this to true to use an existing Service Account | bool |
false |
no |
wait_time | Amount of time to wait before the next resource is provisioned. | string |
"10s" |
no |
Name | Description |
---|---|
bucket_name | The storage bucket name |
pubsub_topic_name | The PubSub topic name |
service_account_name | The Service Account name |
service_account_private_key | The private key in JSON format, base64 encoded |
sink_name | The sink name |