diff --git a/terraform/wifi-289708231103/core-dumps-s3/.sops.yaml b/terraform/wifi-289708231103/core-dumps-s3/.sops.yaml new file mode 100644 index 0000000..fcaa26c --- /dev/null +++ b/terraform/wifi-289708231103/core-dumps-s3/.sops.yaml @@ -0,0 +1,2 @@ +creation_rules: +- kms: 'arn:aws:kms:us-east-2:289708231103:alias/helm-secrets' diff --git a/terraform/wifi-289708231103/core-dumps-s3/main.tf b/terraform/wifi-289708231103/core-dumps-s3/main.tf index 09a60f4..9e26cc7 100644 --- a/terraform/wifi-289708231103/core-dumps-s3/main.tf +++ b/terraform/wifi-289708231103/core-dumps-s3/main.tf @@ -12,6 +12,13 @@ terraform { dynamodb_table = "terraform-state-lock" encrypt = true } + + required_providers { + sops = { + source = "carlpett/sops" + version = "~> 0.5" + } + } } locals { @@ -20,11 +27,81 @@ locals { } } +data "sops_file" "secrets" { + source_file = "secrets.enc.json" +} + resource "aws_s3_bucket" "openwifi-core-dumps" { bucket = "openwifi-core-dumps" tags = local.common_tags } +resource "aws_s3_bucket_lifecycle_configuration" "openwifi-core-dumps" { + bucket = aws_s3_bucket.openwifi-core-dumps.id + + rule { + id = "core-dumps-retention" + filter {} + status = "Enabled" + + expiration { + days = 14 + } + } +} + +resource "aws_s3_bucket_notification" "s3_eventnotification_slack" { + bucket = aws_s3_bucket.openwifi-core-dumps.id + + lambda_function { + lambda_function_arn = aws_lambda_function.s3_eventnotification_slack.arn + events = ["s3:ObjectCreated:Put"] + } + + depends_on = [aws_lambda_permission.s3_eventnotification_slack] +} + +resource "aws_iam_role" "s3_eventnotification_slack" { + name = "s3_eventnotification_slack" + + assume_role_policy = <