Terraform module irá provisionar os seguintes recursos:
- DB Proxy
- DB Proxy Target
- DB Proxy Default Target
- Secret Manager Secret
- Secret Manager Secret Version
- IAM Policy Document
- IAM Role
Caso de uso: RDS Proxy MySQL com Secret Manager
module "rds_proxy_pucrs" {
source = "git::https://github.com/jslopes8/terraform-aws-db-proxy.git?ref=v3.0"
db_proxy_name = "db-proxy-mysql"
engine_family = "MYSQL"
db_instance_identifier = module.db_instance.id
vpc_subnet_ids = [
tolist(data.aws_subnet_ids.priv.ids)[0],
tolist(data.aws_subnet_ids.priv.ids)[1],
tolist(data.aws_subnet_ids.priv.ids)[2]
]
vpc_security_group_ids = [ module.db_instance_sg.id ]
connection_pool_config = [{
init_query = "SET x=1, y=2"
connection_borrow_timeout = "120"
max_connections_percent = "100"
max_idle_connections_percent = "50"
session_pinning_filters = ["EXCLUDE_VARIABLE_SETS"]
}]
auth = [{
iam_auth = "DISABLED"
auth_scheme = "SECRETS"
}]
secretsmanager = [{
recovery_window_in_days = "0"
version_stages = ["AWSCURRENT"]
secret_string = {
username = local.username
password = local.password
}
}]
default_tags = local.default_tags
}| Name | Version |
|---|---|
| aws | 3.* |
| terraform | 0.15.* |
| Name | Description | Required | Type | Default |
|---|---|---|---|---|
| db_proxy_name | O nome do RDS Proxy. | yes |
string |
|
| engine_family | O tipo do database que o proxy irá conectar. Valores validos MYSQL e POSTGRESQL. |
yes |
string |
MYSQL |
| db_instance_identifier | Identificador da instância do banco de dados. Não deve ser especificado em conjunto com o db_cluster_identifier. |
yes |
string |
|
| db_cluster_identifier | Identificador de cluster de banco de dados. Não deve ser especificado em conjunto com o db_instance_identifier. |
yes |
string |
|
| debug_logging | Se o proxy inclui informações detalhadas sobre instruções SQL em seus logs. | no |
bool |
false |
| vpc_subnet_ids | Uma lista com um ou mais IDs de sub-rede para associar ao novo proxy. | yes |
list |
[ ] |
| vpc_security_group_ids | Uma lista com um ou mais IDs de security group para associar ao novo proxy. | yes |
list |
[ ] |
| connection_pool_config | As configurações que determinam o tamanho e o comportamento do pool de conexão para o grupo de destino. Abaixo segue detalhes. | yes |
list |
[ ] |
| auth | Configuração com mecanismos de autorização para se conectar às instâncias ou clusters associados. Abaixo segue detalhes. | yes |
list |
[ ] |
| idle_client_timeout | O número de segundos que uma conexão com o proxy pode ficar inativa antes que o proxy a desconecte. | no |
number |
1800 |
| require_tls | Especifica se a criptografia TLS (Transport Layer Security) é necessária para conexões com o proxy. | no |
bool |
true |
| default_tags | Um mapa de chave-valor para tagueamento do recursos. | no |
map |
{ } |
| secretsmanager | Configuração com mecanismos para gerenciar o secret. Abaixo segue detalhes. | no |
list |
[ ] |
| enabled_depends_on | Use quando tiver dependências de módulo. | no |
list |
[ ] |
O argumento connection_pool_config possui os seguintes atributos;
init_query: (Opcional) Uma ou mais instruções SQL para o proxy executar ao abrir cada nova conexão de banco de dados.connection_borrow_timeout: (Opcional) O número de segundos para um proxy aguardar até que uma conexão se torne disponível no pool de conexão.max_connections_percent: (Opcional) O tamanho máximo do pool de conexão para cada destino em um grupo de destinomax_idle_connections_percent: (Opcional) Controla o quão ativamente o proxy fecha conexões de banco de dados inativas no pool de conexão.session_pinning_filters: (Opcional) Cada item na lista representa uma classe de operações SQL. Valor permitido éEXCLUDE_VARIABLE_SETS.
O argumento auth possui os seguintes atributos;
iam_auth: (Opcional) Exigir ou proibir a autenticação. Valores validosDISABLEDeREQUIRED. Valor padrãoDISABLED.auth_scheme: (Opcional) O tipo de autenticação que o proxy usa para conexões do proxy ao banco de dados subjacente. Valor padrãoSECRETS.description: (Opcional) Uma descrição especificada pelo usuário sobre a autenticação usada por um proxy.
O argumento secretsmanager possui os seguintes atributos;
recovery_window_in_days: (Opcional) Especifica o número de dias que o AWS Secrets Manager espera antes de excluir o segredotags: (Opcional) Um mapa de chave-valor para tagueamento do recursosversion_stages: (Opcional) Especifica os dados de texto que você deseja criptografar e armazenar nesta versão do segredo.secret_string: (Opcional) Especifica uma lista de rótulos de teste anexados a esta versão do segredo.
| Name | Description |
|---|---|
| endpoint | Nome do host para a instância de banco de dados RDS de destino. |
| port | Porta para a instância de banco de dados RDS de destino ou cluster de banco de dados Aurora. |
| id | Identificador de recursos. |