Segurança do RDS: criptografia e grupos de parâmetros
Criptografe o RDS em repouso com KMS, controle a criptografia no nível da conexão com grupos de parâmetros e proteja o acesso usando autenticação do IAM.
Segurança do RDS: criptografia e grupos de parâmetros é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.
Criptografia do RDS em repouso
O RDS é compatível com criptografia em repouso usando o AWS Key Management Service (KMS). Quando você habilita a criptografia durante a criação da instância de banco de dados, todos os dados nos volumes EBS subjacentes, nos backups automatizados, nos instantâneos e nas réplicas de leitura são criptografados usando a chave KMS especificada.
A criptografia deve ser habilitada no momento da criação — não é possível criptografar no local uma instância existente que não esteja criptografada. A solução alternativa é fazer um instantâneo não criptografado, copiá-lo com a criptografia habilitada e restaurá-lo a partir do instantâneo criptografado. A chave KMS pode ser uma chave gerenciada pela AWS ou uma chave gerenciada pelo cliente (CMK), para obter mais controle e auditoria.
# Create an encrypted RDS instance
aws rds create-db-instance \
--db-instance-identifier mydb-encrypted \
--engine mysql \
--db-instance-class db.t3.micro \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20 \
--storage-encrypted \
--kms-key-id arn:aws:kms:us-east-1:123456789:key/my-key-idCriptografando uma instância RDS existente sem criptografia
Como não é possível ativar a criptografia em uma instância existente, siga este processo de migração:
- Crie um snapshot manual da instância sem criptografia
- Copie o snapshot e ative a criptografia durante a cópia, especificando uma chave KMS
- Restaure uma nova instância de banco de dados a partir do snapshot criptografado
- Atualize o endpoint da sua aplicação para apontar para a nova instância
- Exclua a instância antiga sem criptografia
Essa abordagem causa algum tempo de inatividade, a menos que você use DMS para manter a nova instância criptografada sincronizada antes da mudança.
# Copy snapshot with encryption enabled
aws rds copy-db-snapshot \
--source-db-snapshot-identifier mydb-unencrypted-snap \
--target-db-snapshot-identifier mydb-encrypted-snap \
--kms-key-id alias/aws/rdsCriptografia em trânsito com SSL/TLS
O RDS criptografa os dados em trânsito usando SSL/TLS. Cada mecanismo fornece um certificado de CA que pode ser baixado e que o driver do cliente usa para verificar a identidade do servidor. Para exigir conexões SSL, configure o mecanismo de banco de dados para rejeitar conexões sem criptografia.
Para MySQL, defina o parâmetro require_secure_transport = ON no grupo de parâmetros. Para PostgreSQL, defina ssl = 1 e, opcionalmente, rds.force_ssl = 1 para rejeitar completamente conexões que não usem SSL. Muitos drivers de banco de dados Java e Python também aceitam o parâmetro sslmode=require na string de conexão.
# Connect to RDS MySQL over SSL
mysql -h mydb.abcd1234.us-east-1.rds.amazonaws.com \
-u admin -p \
--ssl-ca=rds-ca-2019-root.pem \
--ssl-verify-server-certGrupos de parâmetros: o que são?
Grupos de parâmetros são coleções nomeadas de configurações do mecanismo que você associa a uma instância RDS. Eles são o equivalente, no RDS, à edição de my.cnf no MySQL ou de postgresql.conf no PostgreSQL, mas são gerenciados pela AWS e têm versões por família de mecanismos.
A AWS fornece um grupo de parâmetros padrão para cada versão do mecanismo, mas suas configurações não podem ser editadas. Para personalizar parâmetros, crie um grupo de parâmetros personalizado, modifique os parâmetros desejados e associe-o à sua instância de banco de dados. Alterações em parâmetros estáticos exigem uma reinicialização; parâmetros dinâmicos entram em vigor imediatamente.
# Create a custom parameter group
aws rds create-db-parameter-group \
--db-parameter-group-name my-mysql8-params \
--db-parameter-group-family mysql8.0 \
--description 'Custom MySQL 8.0 parameters'Modificando configurações do grupo de parâmetros
Depois de criar um grupo de parâmetros personalizado, você modifica parâmetros individuais usando o comando modify-db-parameter-group da CLI ou o console. Os parâmetros têm um método de aplicação: immediate (entra em vigor sem reinicialização) ou pending-reboot (só entra em vigor após a próxima reinicialização da instância).
Parâmetros importantes para a prova: max_connections (limita as conexões simultâneas), innodb_buffer_pool_size (tamanho do cache em memória do MySQL), log_bin_trust_function_creators (permite funções armazenadas que gravam no log binário) e rds.force_ssl (força o uso de SSL no PostgreSQL).
# Force SSL in a PostgreSQL parameter group
aws rds modify-db-parameter-group \
--db-parameter-group-name my-postgres-params \
--parameters 'ParameterName=rds.force_ssl,ParameterValue=1,ApplyMethod=immediate'Grupos de opções para recursos adicionais
Grupos de opções são semelhantes aos grupos de parâmetros, mas controlam recursos adicionais do mecanismo de banco de dados, em vez de ajustar sua configuração. Eles são usados principalmente com Oracle e SQL Server para ativar recursos como Oracle Application Express (APEX), Transparent Data Encryption (TDE) do SQL Server ou autenticação do SQL Server pelo Active Directory.
Cada opção em um grupo de opções pode ter suas próprias configurações. Os grupos de opções têm versões por família de mecanismos e devem ser associados à instância de banco de dados. A maioria dos mecanismos de código aberto (MySQL, PostgreSQL, MariaDB) raramente precisa de grupos de opções personalizados.
Autenticação de banco de dados pelo IAM
O RDS oferece suporte à autenticação de banco de dados pelo IAM para os mecanismos MySQL e PostgreSQL. Em vez de um nome de usuário e uma senha estáticos, sua aplicação assume uma função do IAM e gera um token de autenticação temporário (válido por 15 minutos) usando o comando generate-db-auth-token da AWS CLI ou uma chamada do SDK.
Os benefícios incluem a ausência de senhas de banco de dados de longa duração, a rotação automática das credenciais por meio de políticas do IAM e o controle de acesso centralizado. O recurso exige a ativação de --enable-iam-database-authentication na instância e a criação de um usuário de banco de dados associado a uma função do IAM.
# Generate an RDS IAM auth token
aws rds generate-db-auth-token \
--hostname mydb.abcd1234.us-east-1.rds.amazonaws.com \
--port 3306 \
--username mydbuser \
--region us-east-1Integração do Secrets Manager com o RDS
O AWS Secrets Manager pode armazenar e alternar automaticamente a senha principal do RDS e as credenciais da aplicação. Quando a rotação está ativada, o Secrets Manager invoca uma função do Lambda que atualiza a senha do banco de dados e armazena o novo valor no segredo; sua aplicação busca o valor mais recente do segredo por meio da API do Secrets Manager, mantendo sempre credenciais válidas.
Ao criar uma instância RDS no console, você pode optar pelo gerenciamento das credenciais principais pelo Secrets Manager. Isso elimina senhas codificadas diretamente no código ou nas variáveis de ambiente.
# Retrieve RDS credentials from Secrets Manager
aws secretsmanager get-secret-value \
--secret-id rds!db-1234abcd-5678-efgh-ijkl-mnopqrstuvwx \
--query SecretString \
--output text | python3 -m json.toolControles de VPC e grupos de segurança
As instâncias RDS são executadas dentro de uma VPC e usam grupos de sub-redes de banco de dados para definir em quais sub-redes (em várias AZs) a instância pode ser colocada. A prática recomendada é colocar o RDS em sub-redes privadas, sem acesso direto à Internet.
Grupos de segurança controlam quais endereços IP e outros grupos de segurança podem acessar a porta do banco de dados (por exemplo, TCP 3306 para MySQL). O grupo de segurança da camada da aplicação deve ser a única origem permitida no grupo de segurança do RDS, aplicando o princípio do menor privilégio no nível da rede. Nunca configure 0.0.0.0/0 (todo o tráfego) como regra de entrada em um grupo de segurança do RDS.
Monitoramento avançado e logs de auditoria
O Enhanced Monitoring publica métricas no nível do sistema operacional (CPU, memória, sistema de arquivos, E/S de disco) no CloudWatch Logs a cada 1–60 segundos, oferecendo uma granularidade maior que a das métricas padrão do CloudWatch, de 60 segundos. Ele usa um agente em execução no host do banco de dados e está disponível para todos os mecanismos, exceto no modo de espelhamento do SQL Server.
Os logs de auditoria do banco de dados (log geral de consultas e log de consultas lentas no MySQL; pgaudit no PostgreSQL) podem ser publicados no CloudWatch Logs para análise de conformidade. Ative-os por meio dos grupos de parâmetros e configure as exportações de logs no console do RDS, em Exportações de logs.
# Enable PostgreSQL logs export to CloudWatch
aws rds modify-db-instance \
--db-instance-identifier mydb \
--cloudwatch-logs-export-configuration 'EnableLogTypes=[postgresql,upgrade]' \
--apply-immediatelyResumo das práticas recomendadas de segurança
Principais práticas recomendadas de segurança do RDS para a prova SAA-C03:
- Ative a criptografia em repouso com uma CMK do KMS ao criar a instância
- Exija SSL/TLS em trânsito por meio das configurações do grupo de parâmetros
- Coloque as instâncias em sub-redes privadas com grupos de segurança restritivos
- Use autenticação de banco de dados pelo IAM ou o Secrets Manager para evitar senhas estáticas
- Ative o CloudTrail para registrar chamadas de API do RDS e o CloudWatch Logs para logs de auditoria do banco de dados
- Use regras do AWS Config (por exemplo,
rds-instance-public-access-check) para detectar configurações incorretas
Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que: a criptografia em repouso do RDS usa KMS e deve ser ativada durante a criação; os grupos de parâmetros controlam a configuração do mecanismo, incluindo a aplicação de SSL/TLS em trânsito; e a autenticação de banco de dados pelo IAM e o Secrets Manager eliminam senhas estáticas de banco de dados. A seguir, exploraremos tabelas, itens e o design de chaves primárias do DynamoDB.
Perguntas Frequentes
A aula “Segurança do RDS: criptografia e grupos de parâmetros” é grátis?
Sim — o texto completo de “Segurança do RDS: criptografia e grupos de parâmetros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.
O que vou aprender em “Segurança do RDS: criptografia e grupos de parâmetros”?
Criptografe o RDS em repouso com KMS, controle a criptografia no nível da conexão com grupos de parâmetros e proteja o acesso usando autenticação do IAM. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AWS Solutions Architect?
Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Segurança do RDS: criptografia e grupos de parâmetros”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AWS Solutions Architect?
Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Mecanismos e classes de instância do RDS
- Multi-AZ e backups automatizados
- Réplicas de leitura para escalabilidade de leitura
- Segurança do RDS: criptografia e grupos de parâmetros