diff --git a/README.md b/README.md
index 16afa1a..5697c5d 100644
--- a/README.md
+++ b/README.md
@@ -1312,6 +1312,32 @@ Type: `string`
Default: `""`
+### [rds\_s3\_dump\_block\_public\_access](#input\_rds\_s3\_dump\_block\_public\_access)
+
+Description: Object that defines which public access should be blocked
+
+Type:
+
+```hcl
+object({
+ block_public_acls = bool
+ block_public_policy = bool
+ ignore_public_acls = bool
+ restrict_public_buckets = bool
+ })
+```
+
+Default:
+
+```json
+{
+ "block_public_acls": true,
+ "block_public_policy": true,
+ "ignore_public_acls": true,
+ "restrict_public_buckets": true
+}
+```
+
### [rds\_s3\_dump\_lifecycle\_rules](#input\_rds\_s3\_dump\_lifecycle\_rules)
Description: RDS S3 Dump Lifecycle rules
diff --git a/rds-s3-dumps.tf b/rds-s3-dumps.tf
index c1377fe..527ae3f 100644
--- a/rds-s3-dumps.tf
+++ b/rds-s3-dumps.tf
@@ -158,6 +158,17 @@ resource "aws_s3_bucket_acl" "rds_dumps" {
acl = "private"
}
+resource "aws_s3_bucket_public_access_block" "archive" {
+ count = local.rds_dumps_enabled ? 1 : 0
+
+ bucket = aws_s3_bucket.rds_dumps[count.index].id
+
+ block_public_acls = var.rds_s3_dump_block_public_access.block_public_acls
+ block_public_policy = var.rds_s3_dump_block_public_access.block_public_policy
+ ignore_public_acls = var.rds_s3_dump_block_public_access.ignore_public_acls
+ restrict_public_buckets = var.rds_s3_dump_block_public_access.restrict_public_buckets
+}
+
resource "aws_iam_role_policy" "rds_dumps_role" {
count = local.rds_dumps_enabled && var.rds_s3_dump_role_arn == "" ? 1 : 0
diff --git a/route53.tf b/route53.tf
index 338175a..b170c29 100644
--- a/route53.tf
+++ b/route53.tf
@@ -4,7 +4,7 @@
locals {
public_endpoint_enabled = var.aws_route53_zone_endpoints_enabled && var.aws_route53_zone_public_endpoint_enabled
private_endpoint_enabled = var.aws_route53_zone_endpoints_enabled && var.aws_route53_zone_private_endpoint_enabled
- subdomain_name = length(var.aws_route53_rds_subdomain_override) > 0 ? var.aws_route53_rds_subdomain_override : join(".", [module.rds.db_instance_id, local.rds_dns_subdomains[var.rds_engine]])
+ subdomain_name = length(var.aws_route53_rds_subdomain_override) > 0 ? var.aws_route53_rds_subdomain_override : join(".", [module.rds.db_instance_identifier, local.rds_dns_subdomains[var.rds_engine]])
}
data "aws_route53_zone" "public_endpoint" {
diff --git a/variables.tf b/variables.tf
index 167ab98..7ad8fcd 100644
--- a/variables.tf
+++ b/variables.tf
@@ -787,6 +787,22 @@ variable "rds_s3_dump_role_arn" {
default = ""
}
+variable "rds_s3_dump_block_public_access" {
+ description = "Object that defines which public access should be blocked"
+ type = object({
+ block_public_acls = bool
+ block_public_policy = bool
+ ignore_public_acls = bool
+ restrict_public_buckets = bool
+ })
+ default = {
+ block_public_acls = true
+ block_public_policy = true
+ ignore_public_acls = true
+ restrict_public_buckets = true
+ }
+}
+
variable "rds_s3_dump_lifecycle_rules" {
description = "RDS S3 Dump Lifecycle rules"
default = []