MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Gerenciamento de chave SSL e criptografia de dados MySQL em trânsito


Os bancos de dados geralmente funcionam em um ambiente seguro. Pode ser um datacenter com uma VLAN dedicada para tráfego de banco de dados. Pode ser uma VPC no EC2. Se sua rede se espalhar por vários datacenters em diferentes regiões, você normalmente usaria algum tipo de rede privada virtual ou túnel SSH para conectar esses locais de maneira segura. Com a privacidade e a segurança de dados sendo tópicos importantes hoje em dia, você pode se sentir melhor com uma camada adicional de segurança.

O MySQL suporta SSL como meio de criptografar o tráfego entre servidores MySQL (replicação) e entre servidores MySQL e clientes. Se você usa o cluster Galera, recursos semelhantes estão disponíveis - tanto a comunicação intra-cluster quanto as conexões com clientes podem ser criptografadas usando SSL.

Uma maneira comum de implementar a criptografia SSL é usar certificados autoassinados. Na maioria das vezes, não é necessário adquirir um certificado SSL emitido pela Autoridade Certificadora. Qualquer pessoa que tenha passado pelo processo de geração de um certificado autoassinado provavelmente concordará que não é o processo mais simples - na maioria das vezes, você acaba pesquisando na internet para encontrar howto’s e instruções sobre como fazer isso. Isso é especialmente verdadeiro se você for um DBA e só passar por esse processo a cada poucos meses ou mesmo anos. É por isso que adicionamos um recurso ClusterControl para ajudá-lo a gerenciar chaves SSL em seu cluster de banco de dados. Nesta postagem do blog, usaremos o ClusterControl 1.5.1.

Gerenciamento de chaves no ClusterControl


Você pode entrar no Gerenciamento de Chaves acessando Menu Lateral -> Gerenciamento de Chaves seção.

Será apresentada a seguinte tela:

Você pode ver dois certificados gerados, sendo um CA e o outro um certificado regular. Para gerar mais certificados, alterne para a opção ‘Gerar chave ' aba:

Um certificado pode ser gerado de duas maneiras - você pode primeiro criar uma CA autoassinada e depois usá-la para assinar um certificado. Ou você pode ir diretamente para 'Certificados e chave do cliente/servidor ’ e crie um certificado. A CA necessária será criada para você em segundo plano. Por último, mas não menos importante, você pode importar um certificado existente (por exemplo, um certificado que você comprou de uma das muitas empresas que vendem certificados SSL).

Para fazer isso, você deve fazer upload de seu certificado, chave e CA para o nó ClusterControl e armazená-los no diretório /var/lib/cmon/ca. Em seguida, você preenche os caminhos para esses arquivos e o certificado será importado.

Se você decidiu gerar uma CA ou gerar um novo certificado, há outro formulário a ser preenchido - você precisa passar detalhes sobre sua organização, nome comum, e-mail, escolher o comprimento da chave e a data de validade.

Depois de ter tudo no lugar, você pode começar a usar seus novos certificados. ClusterControl atualmente suporta a implantação de criptografia SSL entre clientes e bancos de dados MySQL e criptografia SSL de tráfego intra-cluster no Galera Cluster. Planejamos estender a variedade de implantações com suporte em versões futuras do ClusterControl.

Criptografia SSL completa para Galera Cluster


Agora vamos supor que temos nossas chaves SSL prontas e temos um Galera Cluster, que precisa de criptografia SSL, implantado por meio de nossa instância ClusterControl. Podemos protegê-lo facilmente em duas etapas.

Primeiro - criptografar o tráfego Galera usando SSL. Na visualização do cluster, uma das ações do cluster é 'Enable SSL Galera Encryption '. Você será presenteado com as seguintes opções:

Se não tiver um certificado, pode gerá-lo aqui. Mas se você já gerou ou importou um certificado SSL, você poderá vê-lo na lista e usá-lo para criptografar o tráfego de replicação do Galera. Lembre-se de que esta operação requer uma reinicialização do cluster - todos os nós terão que parar ao mesmo tempo, aplicar as alterações de configuração e reiniciar. Antes de continuar aqui, certifique-se de estar preparado para algum tempo de inatividade enquanto o cluster é reiniciado.

Depois que o tráfego dentro do cluster for protegido, queremos cobrir as conexões cliente-servidor. Para fazer isso, escolha ‘Ativar criptografia SSL ’ job e você verá a seguinte caixa de diálogo:

É bastante semelhante - você pode escolher um certificado existente ou gerar um novo. A principal diferença é que para aplicar a criptografia cliente-servidor, o tempo de inatividade não é necessário - uma reinicialização contínua será suficiente. Uma vez reiniciado, você encontrará um ícone de cadeado logo abaixo do host criptografado na Visão geral página:

O rótulo 'Galera ' significa que a criptografia Galera está habilitada, enquanto 'SSL ' significa que a criptografia cliente-servidor está habilitada para esse host específico.

Obviamente, habilitar SSL no banco de dados não é suficiente - você precisa copiar certificados para clientes que devem usar SSL para se conectar ao banco de dados. Todos os certificados podem ser encontrados no diretório /var/lib/cmon/ca no nó ClusterControl. Você também deve se lembrar de alterar as concessões para os usuários e certificar-se de ter adicionado REQUIRE SSL a eles se quiser impor apenas conexões seguras.

Esperamos que você ache essas opções fáceis de usar e ajude a proteger seu ambiente MySQL. Se você tiver dúvidas ou sugestões sobre esse recurso, adoraríamos ouvi-lo.