Skip to content

Commit b2136e2

Browse files
author
jslopes
committed
add suporte para o proxy target
1 parent afab9c6 commit b2136e2

File tree

3 files changed

+29
-102
lines changed

3 files changed

+29
-102
lines changed

main.tf

Lines changed: 12 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,8 @@
1-
data "aws_partition" "current" {}
2-
data "aws_region" "current" {}
3-
data "aws_caller_identity" "current" {}
1+
#
2+
# RDS Proxy
3+
#
44

5-
data "aws_iam_policy_document" "main" {
6-
count = var.create ? 1 : 0
7-
8-
statement {
9-
effect = "Allow"
10-
actions = [
11-
"secretsmanager:GetRandomPassword",
12-
"secretsmanager:CreateSecret",
13-
"secretsmanager:ListSecrets"
14-
]
15-
resources = [
16-
"*"
17-
]
18-
}
19-
statement {
20-
effect = "Allow"
21-
actions = [
22-
"secretsmanager:*",
23-
]
24-
resources = [
25-
aws_secretsmanager_secret.main.0.arn
26-
]
27-
}
28-
29-
}
30-
data "aws_iam_policy_document" "role_rds" {
31-
count = var.create ? 1 : 0
32-
33-
statement {
34-
effect = "Allow"
35-
principals {
36-
type = "Service"
37-
identifiers = [ "rds.amazonaws.com" ]
38-
}
39-
actions = [ "sts:AssumeRole" ]
40-
}
41-
}
42-
resource "aws_iam_role" "role_rds" {
43-
count = var.create ? 1 : 0
44-
45-
name = "${var.db_proxy_name}-SecretManagerRole"
46-
assume_role_policy = data.aws_iam_policy_document.role_rds.0.json
47-
48-
tags = merge(
49-
{
50-
"Name" = "${format("%s", var.db_proxy_name)}-SecretManager"
51-
},
52-
var.default_tags,
53-
)
54-
}
55-
resource "aws_iam_policy" "main" {
56-
count = var.create ? 1 : 0
57-
58-
name = "${var.db_proxy_name}-SecretManagerPolicy"
59-
path = "/"
60-
policy = data.aws_iam_policy_document.main.0.json
61-
}
62-
resource "aws_iam_role_policy_attachment" "role_rds" {
63-
count = var.create ? 1 : 0
64-
65-
role = aws_iam_role.role_rds.0.name
66-
policy_arn = aws_iam_policy.main.0.arn
67-
}
68-
69-
## Secret Manager
70-
resource "aws_secretsmanager_secret" "main" {
71-
count = var.create ? 1 : 0
72-
73-
name_prefix = "${var.db_proxy_name}-secret"
74-
recovery_window_in_days = var.recovery_window_in_days
75-
tags = var.default_tags
76-
}
77-
resource "aws_secretsmanager_secret_version" "main" {
78-
count = var.create ? 1 : 0
79-
80-
secret_id = aws_secretsmanager_secret.main.0.id
81-
version_stages = var.version_stages
82-
secret_string = jsonencode(var.secret_string)
83-
84-
lifecycle {
85-
ignore_changes = [ secret_string ]
86-
}
87-
}
88-
89-
## RDS Proxy
905
resource "aws_db_proxy" "main" {
91-
depends_on = [ aws_iam_role.role_rds ]
926
count = var.create ? 1 : 0
937

948
name = var.db_proxy_name
@@ -112,7 +26,7 @@ resource "aws_db_proxy" "main" {
11226

11327
tags = var.default_tags
11428
}
115-
resource "aws_db_proxy_default_target_group" "example" {
29+
resource "aws_db_proxy_default_target_group" "main" {
11630
count = var.create ? length(var.connection_pool_config) : 0
11731

11832
db_proxy_name = aws_db_proxy.main.0.name
@@ -127,4 +41,12 @@ resource "aws_db_proxy_default_target_group" "example" {
12741
session_pinning_filters = lookup(var.connection_pool_config.value, "session_pinning_filters", null)
12842
}
12943
}
44+
}
45+
resource "aws_db_proxy_target" "main" {
46+
count = var.create ? 1 : 0
47+
48+
db_instance_identifier = var.db_instance_identifier
49+
db_cluster_identifier = var.db_cluster_identifier
50+
db_proxy_name = aws_db_proxy.main.0.name
51+
target_group_name = aws_db_proxy_default_target_group.main.0.name
13052
}

outputs.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
output "endpoint" {
2+
value = aws_db_proxy_target.main.0.endpoint
3+
}
4+
output "port" {
5+
value = aws_db_proxy_target.main.0.port
6+
}
7+
output "id" {
8+
value = aws_db_proxy_target.main.0.id
9+
}

variables.tf

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,15 @@ variable "default_tags" {
3737
type = map(string)
3838
default = {}
3939
}
40-
variable "recovery_window_in_days" {
41-
type = number
42-
default = "0"
43-
}
44-
variable "version_stages" {
45-
type = list
46-
default = ["AWSCURRENT"]
47-
}
48-
variable "secret_string" {
49-
type = any
50-
default = {}
51-
}
5240
variable "connection_pool_config" {
5341
type = any
5442
default = []
43+
}
44+
variable "db_instance_identifier" {
45+
type = string
46+
default = ""
47+
}
48+
variable "db_cluster_identifier" {
49+
type = string
50+
default = ""
5551
}

0 commit comments

Comments
 (0)