Autenticação do banco de dados do IAM para MariaDB, MySQL e PostgreSQL - Amazon Relational Database Service

Autenticação do banco de dados do IAM para MariaDB, MySQL e PostgreSQL

Você pode se autenticar a instância de banco de dados usando a autenticação de banco de dados do AWS Identity and Access Management (IAM). A autenticação do banco de dados do IAM funciona com o MariaDB, MySQL e o PostgreSQL. Com esse método de autenticação, você não precisa usar uma senha ao conectar-se a um cluster de de banco de dados. Em vez disso, você usa um token de autenticação.

Um token de autenticação é uma string exclusiva de caracteres que o Amazon RDS gera mediante solicitação. Os tokens de autenticação são gerados usando o Signature da AWS versão 4. Cada token tem uma vida útil de 15 minutos. Você não precisa armazenar as credenciais de usuário no banco de dados, porque a autenticação é gerenciada externamente usando o IAM. Você também pode usar a autenticação de banco de dados padrão. O token é usado apenas para autenticação e não afetará a sessão depois que ela for estabelecida.

A autenticação do banco de dados do IAM oferece os seguintes benefícios:

  • O tráfego de rede de e para o banco de dados é criptografado usando Secure Socket Layer (SSL) ou Transport Layer Security (TLS). Para obter mais informações sobre como usar SSL/TLS com o Amazon RDS, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados.

  • Você pode usar o IAM para gerenciar centralmente o acesso aos recursos de banco de dados, em vez de gerenciar o acesso individualmente em cada instância de banco de dados.

  • Para aplicações em execução no Amazon EC2, você pode usar as credenciais específicas da instância do EC2 para acessar o banco de dados em vez de uma senha para maior segurança.

Em geral, considere usar a autenticação de banco de dados do IAM quando suas aplicações criam menos de 200 conexões por segundo e você não deseja gerenciar nomes de usuário e senhas diretamente no código da aplicação.

O driver JDBC da Amazon Web Services (AWS) comporta a autenticação do banco de dados do IAM. Para ter mais informações, consulte AWS IAM Authentication Plugin no Amazon Web Services (AWS) JDBC Driver GitHub repository.

O driver Python da Amazon Web Services (AWS) comporta a autenticação do banco de dados do IAM. Para ter mais informações, consulte AWS IAM Authentication Plugin no Amazon Web Services (AWS) Python Driver GitHub repository.

Disponibilidade de região e versão

A disponibilidade e a compatibilidade de recursos varia entre versões específicas de cada mecanismo de banco de dados e entre Regiões da AWS. Para obter mais informações sobre a disponibilidade de versões e regiões do Amazon RDS e da autenticação de banco de dados do IAM, consulte Regiões e mecanismos de banco de dados compatíveis com a autenticação de banco de dados do IAM no Amazon RDS.

Suporte para CLI e SDK

A autenticação de banco de dados do IAM está disponível para a AWS CLI e para os seguintes AWS SDKs específicos à linguagem:

Limitações para a autenticação de banco de dados do IAM

Ao usar a autenticação do banco de dados do IAM, as seguintes limitações se aplicam:

  • A autenticação do banco de dados do IAM realiza o controle de utilização das conexões nos seguintes cenários:

    • Você excede 20 conexões por segundo usando tokens de autenticação, cada um assinado por uma identidade do IAM diferente.

    • Você excede 200 conexões por segundo usando diferentes tokens de autenticação.

    As conexões que usam o mesmo token de autenticação não têm controle de utilização. Recomendamos que você reutilize os tokens de autenticação sempre que possível.

  • Atualmente, a autenticação do banco de dados do IAM não oferece suporte a todas as chaves de contexto de condição global.

    Para obter mais informações sobre chaves de contexto de condição global, consulte Chaves de contexto de condição global AWS no Guia do usuário do IAM.

  • No PostgreSQL, se o perfil do IAM (rds_iam) for adicionado a um usuário (por exemplo, o usuário principal do RDS), a autenticação do IAM terá precedência sobre a autenticação por senha, então o usuário precisará fazer login como um usuário do IAM.

  • Para o PostgreSQL, o Amazon RDS não permite a habilitação dos métodos de autenticação do IAM e do Kerberos ao mesmo tempo.

  • Para o PostgreSQL, você não pode usar a autenticação do IAM para estabelecer uma conexão de replicação.

  • Não é possível usar um registro DNS personalizado do Route 53 ou um endpoint personalizado do Aurora em vez do endpoint do cluster da instância de banco de dados para gerar o token de autenticação.

  • O CloudWatch e o CloudTrail não registram em log a autenticação do IAM. Esses serviços não rastreiam chamadas de API generate-db-auth-token que autorizam o perfil do IAM a habilitar a conexão com o banco de dados. Para ter mais informações, consulte Achieve auditability with Amazon RDS IAM authentication using attribute-based access control.

Recomendações para autenticação de banco de dados do IAM

Recomendamos o seguinte durante o uso da autenticação do banco de dados do IAM:

  • Use a autenticação de banco de dados do IAM quando sua aplicação exigir menos de 200 novas conexões de autenticação de banco de dados do IAM por segundo.

    Os mecanismos de banco de dados que funcionam com o Amazon RDS não impõem quaisquer limites para as tentativas de autenticação por segundo. No entanto, quando você usa a autenticação de banco de dados do IAM, sua aplicação deve gerar um token de autenticação. Sua aplicação então usa esse token para se conectar à instância de banco de dados. Se você exceder o limite de novas conexões máximas por segundo, a sobrecarga extra da autenticação de banco de dados IAM poderá causar a limitação da conexão.

    Considere usar o agrupamento de conexões em suas aplicações para mitigar a criação constante de conexões. Isso pode reduzir a sobrecarga da autenticação de banco de dados do IAM e permitir que as aplicações reutilizem as conexões existentes. Como alternativa, considere usar o RDS Proxy para esses casos. O RDS Proxy tem custos adicionais. Consulte Preços do RDS Proxy.

  • O tamanho de um token de autenticação de banco de dados do IAM depende de muitas coisas, incluindo o número de etiquetas do IAM, políticas de serviço do IAM, comprimentos de ARN, bem como outras propriedades do IAM e do banco de dados. O tamanho mínimo desse token geralmente é de cerca de 1 KB, mas pode ser maior. Como esse token é usado como senha na string de conexão com o banco de dados por meio da autenticação do IAM, você deve garantir que o driver de banco de dados (por exemplo, ODBC) e/ou quaisquer ferramentas não limitem nem trunquem esse token devido ao respectivo tamanho. Um token truncado fará com que a validação da autenticação feita pelo banco de dados e pelo IAM falhe.

  • Se você estiver usando credenciais temporárias ao criar um token de autenticação do banco de dados do IAM, as credenciais temporárias ainda deverão ser válidas ao usar o token de autenticação do banco de dados do IAM para fazer uma solicitação de conexão.

Chaves de contexto de condição globais da AWS incompatíveis

A autenticação do banco de dados do IAM não é compatível com o seguinte subconjunto de chaves de contexto de condição global da AWS.

  • aws:Referer

  • aws:SourceIp

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:UserAgent

  • aws:VpcSourceIp

Para obter mais informações, consulte Chaves de contexto de condição global da AWS no Guia do usuário do IAM.