Quero configurar minha função do AWS Lambda para usar o proxy do Amazon Relational Database Service (Amazon RDS) para me conectar a um banco de dados do Amazon RDS.
Resolução
Pré-requisitos:O Amazon RDS Proxy deve estar na mesma VPC do Amazon Virtual Private Cloud (Amazon VPC) do banco de dados do Amazon RDS.
Para configurar a função Lambda para usar o Amazon RDS Proxy para se conectar a um banco de dados do Amazon RDS, conclua as etapas a seguir.
Crie credenciais de banco de dados no Secrets Manager
Conclua as seguintes etapas:
- Abra o console do AWS Secrets Manager.
- Escolha Armazenar um novo segredo.
- Em Tipo de segredo, selecione Credenciais para banco de dados RDS.
- Insira o nome de usuário e a senha da sua instância de banco de dados do RDS.
- Em Chave de criptografia, escolha a chave do AWS Key Management Service (AWS KMS) que o Secrets Manager usa para criptografar o valor secreto.
- Em Banco de dados, escolha seu banco de dados e escolha Avançar.
- Em Nome secreto, insira um nome e escolha Próximo.
- Escolha Próximo e, em seguida, escolha Encerrar.
- Em Segredos, selecione o segredo do Secrets Manager.
- Em Secret ARN, anote o ARN secreto.
Para mais informações, consulte Rotacionar os segredos do AWS Secrets Manager.
Crie uma política e um perfil do IAM para o Amazon RDS Proxy
Crie um perfil do AWS Identity and Access Management (AWS IAM) com permissões para usar o segredo. Exemplo:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Resource": [
"[Secret_ARN]"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:ListSecrets"
],
"Resource": "*"
}
]
}
Observação: Substitua Secret\ _ARN pelo seu ARN secreto.
Em seguida, crie uma política de confiança que permita que o Amazon RDS assuma a função. Exemplo:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Crie e anexe um proxy a uma função do Lambda
Primeiro, crie um proxy RDS. Em seguida, conclua as etapas a seguir para configurar sua função para se conectar ao endpoint proxy em vez do endpoint do banco de dados:
- Abra o console do Lambda.
- Escolha Funções e, em seguida, selecione sua função do Lambda.
- Escolha Configuração e, em seguida, escolha Bancos de dados RDS.
- Escolha Conectar ao banco de dados RDS.
- Selecione seu banco de dados do RDS. Ou selecione Criar um novo banco de dados e defina as seguintes configurações:
Em Tipo de motor, selecione o tipo de motor.
Para o identificador de instância do banco de dados, insira um nome para sua instância de banco de dados.
Em Nome de usuário principal, insira a ID de login do usuário principal.
Para VPC, use a configuração padrão. Por padrão, o Lambda configura o banco de dados do RDS na mesma VPC da função.
- Escolha a conexão do banco de dados e escolha Adicionar proxy.
- Em Proxies existentes, selecione seu proxy RDS.
- Escolha Adicionar.
A conexão proxy leva alguns minutos para ser concluída. Para obter mais informações sobre como configurar uma instância de banco de dados do RDS para usar com o Lambda, consulte Configurando sua função para trabalhar com recursos do RDS.
(Opcional) Verifique se seu Amazon RDS Proxy usa autenticação IAM
Se você usar a função de execução do Lambda para se autenticar no Amazon RDS Proxy, conclua as seguintes etapas:
- Abra o console do Amazon RDS.
- No painel de navegação, escolha Proxies e selecione seu proxy.
- Escolha Ações e, em seguida, Modificar.
- Em Autenticação, verifique se a Autenticação IAM está definida como Obrigatória.
Se você tiver problemas de conexão, consulte Por que não consigo me conectar à minha instância de banco de dados Amazon RDS ou Amazon Aurora usando o Amazon RDS Proxy?
Para mais informações, consulte Como usar o Amazon RDS Proxy com o AWS Lambda.
Informações relacionadas
Como soluciono erros de tempo limite de conexão do Lambda ao tentar acessar uma instância de banco de dados do Amazon RDS?
Como configurar uma função do Lambda para conectar-se a uma instância do RDS?
Como faço para resolver o erro “O Lambda não conseguiu atualizar a função de execução de funções” ao anexar o Amazon RDS Proxy a uma função do Lambda?