Como posso configurar minha função do Lambda para me conectar a um banco de dados do Amazon RDS usando o Amazon RDS Proxy?

5 minuto de leitura
0

Quero configurar minha função do AWS Lambda para me conectar a um banco de dados do Amazon Relational Database Service (Amazon RDS) usando o Amazon RDS Proxy.

Breve descrição

Você pode criar um banco de dados com o Amazon RDS Proxy para sua função do Lambda. Um proxy de banco de dados gerencia um grupo de conexões de banco de dados e retransmite consultas de uma função. Isso permite que uma função alcance altos níveis de simultaneidade sem esgotar as conexões do banco de dados.

Para obter mais informações, consulte Configurar o acesso ao banco de dados de uma função do Lambda.

Resolução

Siga estas instruções para configurar o Amazon RDS Proxy com uma função do Lambda.

Observação: o Amazon RDS Proxy deve estar na mesma Amazon Virtual Private Cloud (Amazon VPC) do banco de dados do Amazon RDS. Configure a função do Lambda com a Amazon VPC para acessar o Amazon RDS Proxy.

Etapa 1: criar as credenciais de banco de dados no AWS Secrets Manager

1.    Abra o console do Secrets Manager e escolha Store a new secret (Armazenar um novo segredo).

2.    Em Secret type (Tipo de segredo), escolha Credentials for RDS Database (Credenciais para o banco de dados do RDS).

3.    Insira o user name (nome de usuário) e a password (senha) da sua instância de banco de dados do Amazon RDS.

4.    Para Encryption key (Chave de criptografia), escolha a chave do AWS Key Management Service (AWS KMS) que o Secrets Manager usa para criptografar o valor secreto**.**

5.    Em Database (Banco de dados), escolha seu banco de dados e escolha Next (Próximo).

6.    Em Secret name (Nome secreto), insira um nome, escolha Next (Próximo), escolha Next (Próximo) novamente e, em seguida, escolha Store (Armazenar).

7.    Em Secrets (Segredos), escolha o segredo do Secrets Manager que você criou.

8.    Em Secret ARN (ARN secreto), copie o ARN para usar em outra etapa.

Para obter mais informações, consulte Criação de um segredo de banco de dados do AWS Secrets Manager.

Etapa 2: criar uma política e um perfil do AWS Identity and Access Management (IAM) para o Amazon RDS Proxy

Crie um perfil do IAM com permissão para usar o segredo e, em seguida, crie uma política de confiança que permita que o Amazon RDS assuma o perfil.

Exemplo de política do IAM Secrets Manager

Observação: substitua Secret_ARN pelo ARN do Secrets Manager que você copiou anteriormente**.**

{
  "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": "*"
    }
  ]
}

Exemplo de política de confiança do RDS do IAM

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Sid": "",
   "Effect": "Allow",
   "Principal": {
    "Service": "rds.amazonaws.com"
   },
   "Action": "sts:AssumeRole"
  }
 ]
}

Etapa 3: criar e anexar um proxy RDS a uma função do Lambda

1.    Abra a página Functions (Funções) no console do Lambda.

2.    Em Functions (Funções), escolha sua função do Lambda.

3.    Escolha Configuration (Configuração) e, em seguida, escolha Add database proxies (Adicionar proxies do banco de dados).

4.    Insira as seguintes variáveis:
Proxy identifier (Identificador de proxy): o nome do proxy.
RDS DB instance (Instância do banco de dados do RDS): uma instância ou cluster de banco de dados MySQL ou PostgreSQL compatível.
Secret (Segredo): o Secrets Manager que você criou.
IAM role (Perfil do IAM): o perfil do IAM que você criou.
Authentication (Autenticação): escolha Password (Senha) para se conectar às credenciais do banco de dados ou escolha Execution role (Perfil de execução) para usar as credenciais do IAM da função para autenticação.

5.    Escolha Add (Adicionar).

A criação do proxy leva alguns minutos para ser concluída. Quando o proxy estiver disponível, configure sua função para se conectar ao endpoint do proxy em vez do endpoint do banco de dados. Para obter mais informações, consulte Como criar um proxy de banco de dados (console).

Etapa 4: (opcional) confirmar se seu Amazon RDS Proxy está usando a autenticação do IAM

As etapas a seguir serão necessárias somente se você estiver usando o perfil de execução do Lambda para se autenticar no Amazon RDS Proxy.

1.    Abra o console do Amazon RDS.

2.    No painel de navegação, escolha Proxies e, em seguida, escolha seu proxy.

3.    Escolha Actions (Ações) e, em seguida, escolha Modify (Modificar).

4.    No módulo Connectivity (Conectividade), verifique se a IAM Authentication (Autenticação do IAM) está definida como Required (Obrigatória).

Observação: se você tiver problemas de conexão, consulte Why can't I connect to my Amazon RDS DB or Amazon Aurora DB instance using RDS Proxy? (Por que não consigo conectar minha instância de banco de dados do Amazon RDS ou do Amazon Aurora usando o RDS Proxy?) Para obter mais informações, consulte Using Amazon RDS Proxy with AWS Lambda (Como usar o Amazon RDS Proxy com o AWS Lambda).


Informações relacionadas

How do I troubleshoot connection timeout errors from Lambda when trying to access an Amazon RDS DB instance? (Como faço para solucionar problemas de erros de tempo limite de conexão do Lambda ao tentar acessar uma instância de banco de dados do Amazon RDS?)

How do I configure a Lambda function to connect to an RDS instance? (Como configuro uma função do Lambda para conectar a uma instância do RDS?)

How do I resolve the "Lambda could not update the function's execution role" error when attaching Amazon RDS Proxy to a Lambda function? (Como resolvo o erro “O Lambda não consegue atualizar o perfil de execução da função” ao anexar o Amazon RDS Proxy a uma função do Lambda?)

AWS OFICIAL
AWS OFICIALAtualizada há um ano