Acessando o seu banco de dados com secret manager

Diego Norman
3 min readJan 22, 2025

--

🔐 Acesse seu Banco de Dados com Segurança usando AWS Secrets Manager 🔐

Você sabia que é possível garantir acesso seguro aos seus bancos de dados na nuvem sem expor credenciais sensíveis? Com o AWS Secrets Manager da Amazon Web Services, você pode fazer isso de maneira fácil e segura.

O AWS Secrets Manager permite que você gerencie, recupere e roteie automaticamente as credenciais necessárias para seus bancos de dados, aplicativos e serviços na AWS. Ao invés de armazenar senhas e chaves diretamente no código, você pode integrar o Secrets Manager diretamente ao seu aplicativo para recuperar esses dados de forma segura e em tempo real.

Principais benefícios incluem:

  • Segurança Reforçada: Mantenha suas credenciais protegidas e evite exposições acidentais.
  • Gestão Simplificada: Centralize o gerenciamento de todos os seus segredos em um único local.
  • Auditoria e Conformidade: Registre quem acessou quais credenciais e quando, facilitando auditorias e conformidade com regulamentos.

Imagine poder atualizar uma senha de banco de dados sem precisar alterar seu código ou reiniciar seus serviços. Com o AWS Secrets Manager, você pode fazer isso com facilidade, garantindo a continuidade operacional e a segurança dos seus sistemas.

Se você está buscando uma solução robusta para proteger seus dados sensíveis na nuvem, não deixe de considerar o AWS Secrets Manager. Proteja suas credenciais, simplifique seu gerenciamento e garanta uma conectividade segura para seus aplicativos na AWS.

🚀 Quer saber mais sobre como o AWS Secrets Manager pode beneficiar sua empresa? Deixe seu comentário ou entre em contato para uma conversa sobre segurança na nuvem!

Vai uma breve demostração em vídeo sobre a integração do secret manager na prática.

codigo utilizado em js

const { SecretsManagerClient, GetSecretValueCommand } = require("@aws-sdk/client-secrets-manager");
const { Client } = require('pg');

// Configurações do AWS Secrets Manager
const region = 'us-east-1';
const secretName = 'SECRET';

// Configurações de conexão padrão para evitar erros antes de recuperar as credenciais
const dbConfig = {
user: 'default',
host: 'HOST',
database: 'postgres',
password: 'default',
port: '5432',
ssl: {
require: true,
rejectUnauthorized: false
}
};



// Cria um novo client do AWS Secrets Manager
const secretsManagerClient = new SecretsManagerClient({ region });

async function imprimirSecrets(){
var secrets = await getSecrets();
console.log(secrets);
}

// Função para obter as credenciais do Secrets Manager
async function getSecrets() {
try {
const command = new GetSecretValueCommand({ SecretId: secretName });
const data = await secretsManagerClient.send(command);

if ('SecretString' in data) {
return JSON.parse(data.SecretString);
} else {
return Buffer.from(data.SecretBinary, 'base64');
}
} catch (err) {
console.error('Erro ao recuperar as credenciais do Secrets Manager:', err);
throw err;
}
}

// Função principal para conectar ao banco de dados
async function main() {
try {
// Obtém as credenciais do Secrets Manager
const credentials = await getSecrets();

// Mescla as credenciais recuperadas com as configurações padrão
const mergedConfig = { ...dbConfig, ...credentials };

const client = new Client({
user: mergedConfig.username,
host: dbConfig.host,
database: dbConfig.database,
password: mergedConfig.password,
port: dbConfig.port,
ssl: dbConfig.ssl
});
console.log(mergedConfig);
// Conecta ao banco de dados
await client.connect();
console.log('Conexão bem-sucedida!');

// Exemplo de execução de uma consulta
const queryResult = await client.query('SELECT schema_name FROM information_schema.schemata');
console.log('Resultado da consulta:', queryResult.rows[0]);

// Fecha a conexão com o banco de dados
await client.end();
} catch (err) {
console.error('Erro ao conectar ao banco de dados:', err);
}
}

// Chama a função principal
main();

#AWS #AWSsecretsmanager #SegurançanaNuvem #CloudSecurity #BancoDeDados #AWSservices#AWScloud #AWSsecurity #cloudcomputing #datasecurity #ITsecurity #cybersecurity #digitaltransformation #cloudservices #techinnovation #AWSsolutions #cloudmanagement #devops #AWSarchitecture #AWScommunity #clouddeployment #securecloud

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Diego Norman
Diego Norman

Written by Diego Norman

Como um Arquiteto de Infraestrutura Cloud, trago uma paixão inabalável pela tecnologia.

No responses yet

Write a response