Scripting sincronização postgres - isso é seguro?

1

Eu escrevi um script para sincronizar (recriando do zero) um banco de dados de produção com um banco de dados de desenvolvimento, e eu queria insights sobre possíveis falhas / problemas de segurança, o script é postado abaixo. O servidor tem acesso remoto desativado por motivos de segurança, e a autenticação ssh é gerenciada usando a autenticação de chave pública.

#!/bin/bash
#this is pretty seriously sketchy script...
current_time='date +%s' 
dump_file_name=/tmp/temporary_dump_$current_time.dump
echo SSHing and dumping to $dump_file_name
ssh -t [email protected] << EOT
pg_dump -U postgres -Fc dbName > $dump_file_name
PASSWORD #password in plain text
exit
EOT
echo SCPing the file locally to: 'pwd'$dump_file_name
scp [email protected]:$dump_file_name $dump_file_name

echo Cleaning up the remote file
ssh -t [email protected] << EOT
rm $dump_file_name
exit
EOT

ssh -t development@development-testing << EOT
pg_restore --clean --dbname=dbName -Fc --username=postgres -W $dump_file_name
PASSWORD #password in plain text
exit
EOT

echo Cleaning up the local file
rm $dump_file_name

exit 0
    
por Cory Dolphin 27.04.2012 / 01:15

1 resposta

2

À primeira vista, vejo quatro problemas:

  1. Você está armazenando uma senha em texto simples.
    Pecado horrível, até mesmo imperdoável. Há outras maneiras de lidar com isso, embora cada uma tenha seus próprios problemas de segurança. Se você absolutamente precisar armazenar isso aqui, certifique-se de que o script não seja legível por qualquer pessoa que não tenha a senha ...

  2. Você está armazenando seu despejo de banco de dados na nuvem, sem criptografia.
    Você realmente confia na segurança da Amazon? Você não deveria.

  3. Você pode executar este script mais de uma vez (e ter 2 ao mesmo tempo).
    Isso não é um problema de "segurança", mas pode ser abusivo para o seu banco de dados. O script deve ser bloqueado por isso não pode ser executado mais de uma vez.

  4. pg_dump gets ineficiente em grandes bancos de dados
    Isso também não é um problema de "segurança", mas confira a documentação do Postgres sobre backup e restauração para mais informações.
    Considere também sobre backups no nosso site de DBA .

por 27.04.2012 / 06:10