Skip to content

Commit

Permalink
Merge pull request #35 from lgallard/feature/force_overwrite_replica_…
Browse files Browse the repository at this point in the history
…secret

Feature/force overwrite replica secret
  • Loading branch information
lgallard authored Apr 28, 2023
2 parents 6b8b232 + a5cd2f4 commit 14545c4
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 16 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 0.8.0 (April 28, 2023)

ENHANCEMENTS:

* Add ´force_overwrite_replica_secret´ (thanks @btougeiro)

This comment has been minimized.

Copy link
@btougeiro

btougeiro Apr 28, 2023

😀

* Add replication example

## 0.7.0 (April 5, 2023)

ENHANCEMENTS:
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ module "secrets-manager-6" {
replica_regions = {
us-west-2 = "arn:aws:kms:us-west-2:1234567890:key/12345678-1234-1234-1234-123456789012"
}
force_overwrite_replica_secret = true
},
secret-key-value = {
description = "This is a key/value secret"
Expand All @@ -238,6 +239,7 @@ module "secrets-manager-6" {
replica_regions = {
us-west-1 = "arn:aws:kms:us-west-1:1234567890:key/12345678-1234-1234-1234-123456789012"
}
force_overwrite_replica_secret = false
tags = {
app = "web"
}
Expand Down
45 changes: 45 additions & 0 deletions examples/replication/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Plain text example
```
module "secrets-manager-1" {
#source = "lgallard/secrets-manager/aws"
source = "../../"
secrets = {
secret-1 = {
description = "My secret 1"
recovery_window_in_days = 7
secret_string = "This is an example"
policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnableAllPermissions",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "secretsmanager:GetSecretValue",
"Resource": "*"
}
]
}
POLICY
},
secret-2 = {
description = "My secret 2"
recovery_window_in_days = 7
secret_string = "This is another example"
policy = null
}
}
tags = {
Owner = "DevOps team"
Environment = "dev"
Terraform = true
}
}
```
39 changes: 39 additions & 0 deletions examples/replication/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
module "secrets-manager-6" {

#source = "lgallard/secrets-manager/aws"
source = "../../"

secrets = {
secret-plain = {
description = "My plain text secret"
recovery_window_in_days = 7
secret_string = "This is an example"
replica_regions = {
us-west-2 = "arn:aws:kms:us-west-2:1234567890:key/12345678-1234-1234-1234-123456789012"
}
force_overwrite_replica_secret = true
},
secret-key-value = {
description = "This is a key/value secret"
secret_key_value = {
username = "user"
password = "topsecret"
}
replica_regions = {
us-west-1 = "arn:aws:kms:us-west-1:1234567890:key/12345678-1234-1234-1234-123456789012"
}
force_overwrite_replica_secret = false
tags = {
app = "web"
}
recovery_window_in_days = 7
},
}

tags = {
Owner = "DevOps team"
Environment = "dev"
Terraform = true
}

}
4 changes: 4 additions & 0 deletions examples/replication/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
provider "aws" {
profile = "default"
region = "us-east-1"
}
34 changes: 18 additions & 16 deletions main.tf
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
resource "aws_secretsmanager_secret" "sm" {
for_each = var.secrets
name = lookup(each.value, "name_prefix", null) == null ? each.key : null
name_prefix = lookup(each.value, "name_prefix", null) != null ? lookup(each.value, "name_prefix") : null
description = lookup(each.value, "description", null)
kms_key_id = lookup(each.value, "kms_key_id", null)
policy = lookup(each.value, "policy", null)
recovery_window_in_days = lookup(each.value, "recovery_window_in_days", var.recovery_window_in_days)
tags = merge(var.tags, lookup(each.value, "tags", null))
for_each = var.secrets
name = lookup(each.value, "name_prefix", null) == null ? each.key : null
name_prefix = lookup(each.value, "name_prefix", null) != null ? lookup(each.value, "name_prefix") : null
description = lookup(each.value, "description", null)
kms_key_id = lookup(each.value, "kms_key_id", null)
policy = lookup(each.value, "policy", null)
force_overwrite_replica_secret = lookup(each.value, "force_overwrite_replica_secret", false)
recovery_window_in_days = lookup(each.value, "recovery_window_in_days", var.recovery_window_in_days)
tags = merge(var.tags, lookup(each.value, "tags", null))
dynamic "replica" {
for_each = lookup(each.value, "replica_regions", {})
content {
Expand Down Expand Up @@ -47,14 +48,15 @@ resource "aws_secretsmanager_secret_version" "sm-svu" {

# Rotate secrets
resource "aws_secretsmanager_secret" "rsm" {
for_each = var.rotate_secrets
name = lookup(each.value, "name_prefix", null) == null ? each.key : null
name_prefix = lookup(each.value, "name_prefix", null) != null ? lookup(each.value, "name_prefix") : null
description = lookup(each.value, "description")
kms_key_id = lookup(each.value, "kms_key_id", null)
policy = lookup(each.value, "policy", null)
recovery_window_in_days = lookup(each.value, "recovery_window_in_days", var.recovery_window_in_days)
tags = merge(var.tags, lookup(each.value, "tags", null))
for_each = var.rotate_secrets
name = lookup(each.value, "name_prefix", null) == null ? each.key : null
name_prefix = lookup(each.value, "name_prefix", null) != null ? lookup(each.value, "name_prefix") : null
description = lookup(each.value, "description")
kms_key_id = lookup(each.value, "kms_key_id", null)
policy = lookup(each.value, "policy", null)
force_overwrite_replica_secret = lookup(each.value, "force_overwrite_replica_secret", false)
recovery_window_in_days = lookup(each.value, "recovery_window_in_days", var.recovery_window_in_days)
tags = merge(var.tags, lookup(each.value, "tags", null))
}

resource "aws_secretsmanager_secret_version" "rsm-sv" {
Expand Down

0 comments on commit 14545c4

Please sign in to comment.