No mundo atual orientado por dados, o gerenciamento seguro de credenciais de banco de dados é uma preocupação fundamental para organizações de todos os tamanhos. Como nos esforçamos para capacitá-lo com soluções de ponta, temos o prazer de anunciar o lançamento do nosso plug-in HashiCorp Vault para o gerenciamento de credenciais do banco de dados Capella.
A incorporação do HashiCorp Vault ao Capella oferece uma abordagem multifacetada à segurança do banco de dados:
-
- Uma das principais vantagens é o gerenciamento de usuários externo e centralizado, em que as identidades dos usuários e as permissões de acesso são gerenciadas de forma unificada e segura. Isso garante que o acesso aos seus bancos de dados seja controlado, auditado e consistente em toda a organização.
- Os recursos do Vault se estendem à auditoria de uso de credenciais, fornecendo registros detalhados e insights sobre quem acessou os bancos de dados, quando e com que finalidade. Esse nível de transparência é inestimável para as equipes de conformidade e segurança, permitindo que elas rastreiem o acesso aos dados e atendam aos requisitos regulamentares de forma eficaz.
- A automação do Vault se destaca com a rotação e revogação automática de credenciais, reduzindo o risco de acesso não autorizado devido a credenciais obsoletas ou comprometidas.
- Por fim, o Vault permite a emissão de credenciais temporárias dinâmicas, concedendo aos usuários acesso limitado por tempo aos bancos de dados. Isso não apenas aumenta a segurança, mas também simplifica o gerenciamento de usuários, reduzindo a necessidade de credenciais de longo prazo. Juntos, esses recursos transformam a maneira como você gerencia o acesso ao banco de dados, tornando-o mais seguro, eficiente e compatível.
Este artigo serve como um guia para ajudá-lo a aproveitar os recursos do nosso plug-in de forma eficaz. Vamos orientá-lo em todo o processo, desde a configuração de um cofre de contêiner do Docker local até o gerenciamento de credenciais dinâmicas sem esforço. Ao final deste tutorial, você estará bem equipado para aumentar a segurança do seu banco de dados com facilidade.
Vamos mergulhar no mundo do gerenciamento seguro de credenciais de banco de dados e desbloquear o potencial do nosso plug-in HashiCorp Vault para Capella
Etapa 1: Preparativos
Antes de se aprofundar nos detalhes, é essencial estabelecer as bases. Nesta etapa inicial, vamos orientá-lo nos preparativos essenciais necessários para preparar o terreno para uma integração perfeita. Desde a criação de uma chave de API até a configuração de um banco de dados sandbox e a coleta de detalhes organizacionais cruciais, esses preparativos garantem que você tenha tudo o que precisa para concluir a configuração do plug-in.
Criar uma chave de API da Capella
Comece verificando se você tem as chaves de API necessárias. Navegue até as configurações de sua organização e vá para a seção Seção Chave de API. Aqui, gere uma chave da Versão 4 com a função de proprietário da organização. Essa chave será fundamental em nosso processo de gerenciamento de credenciais. O motivo da função de proprietário da organização é que, posteriormente, faremos a rotação da credencial raiz.
Decodificar credenciais de chave de API
Precisaremos fornecer a Capella ACCESS_KEY e o SECRET_KEY quando configurarmos o plug-in do vault. Obteremos isso da chave de API que geramos anteriormente.
-
- Faça o download da chave
- Clique duas vezes no botão de cópia no final do campo API Key Token.
-
- Decodifique-o usando base64
1 |
eco "Cole sua chave aqui" | base64 --decodificar |
A chave decodificada terá dois valores separados por ponto e vírgula:
1 |
HLkOuJult1wb11S2eBBm2C2H0Bm1tHVe:d%1VRg34zdrOeSwgLljG0RGnJPxqeFecK#gfhVCyC%mwZ3gTf1wjJjO4vwPcRpRT |
O primeiro é o seu ACCESS_KEY e o segundo é o seu SECRET_KEY. Você precisará disso mais tarde, quando for configurar o plug-in.
Configurar um banco de dados Sandbox
Para facilitar essa demonstração, configure um banco de dados sandbox. Ele servirá como um ambiente seguro para testar nosso plug-in.
Crie um Bucket e um Escopo
Também criaremos um bucket cesto do cofre-1 e um escopo vault-bucket-1-scope-1 em nosso cluster, que será usado ao criar credenciais dinâmicas posteriormente.
Reunir informações essenciais
Para a configuração do plug-in, você precisará do ID da organização, do ID do projeto e do ID do cluster. A maneira mais fácil de obter esses detalhes é copiá-los do URL e salvá-los em um arquivo de texto para referência.
-
- oid é o ID de sua organização
- projectId é o ID de seu projeto
- dbid é o ID do seu banco de dados
Etapa 2: Configurar o Vault
Agora, vamos começar com o aspecto técnico. Temos duas opções para executar a demonstração.
-
- Para executar a demonstração, clone o repositório e utilize o Dockerfile nele contido. Esse Dockerfile inclui etapas para compilar o plug-in a partir da fonte.
- Como alternativa, baixe a versão binária do plug-in na página de versões e use-a em sua instalação do Vault.
Fornecerei instruções para ambos os métodos. Escolha o caminho que atenda às suas necessidades e siga as etapas correspondentes. Não há necessidade de executar os dois métodos
Opção 1: Use o Dockerfile no repositório de plug-ins
Comece clonando nosso repositório do GitHub:
1 |
git clone https://github.com/nuvem de sofá/cofre-plug-in-banco de dados-couchbasecapella |
Esse repositório contém o código-fonte do plug-in, que precisaremos para criar o plug-in. Para esta demonstração, criaremos uma imagem do Docker usando a imagem do vault do Hashicorp. O plug-in será criado durante o processo de criação da imagem do Docker. Esse método deve ser usado somente para fins de demonstração. Siga as instruções de Hashicorp sobre como instalar o plug-in e usá-lo em seu ambiente.
1 2 |
cd cofre-plug-in-banco de dados-couchbasecapella doca construir -t cofre:com-cb-capela-plug-in . |
Agora que a imagem foi criada, lançaremos um servidor do Vault em um contêiner do Docker, configurado para o modo de desenvolvimento. Isso nos permite ignorar determinados recursos de segurança para facilitar os testes. O servidor do Vault escutará na porta 8200 e será inicializado com um token de raiz definido como senha. Também habilitaremos o registro em nível de depuração para capturar informações detalhadas durante nossos testes.
1 2 3 4 5 6 7 |
doca executar --tampa-adicionar=IPC_LOCK --nome="couchbase_vault" --rm \ -e VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200 \ -e VAULT_ADDR=http://0.0.0.0:8200 \ -p 8200:8200 \ cofre:com-cb-capela-plug-in \ cofre servidor -dev -dev-raiz-token-id="senha" \ -registro-nível=depurar -configuração=/cofre/configuração/configuração.json |
Prossiga diretamente para a Etapa 3, ignorando a Opção 2.
Opção 2: Faça o download do binário do plug-in
Comece fazendo o download do plug-in no site página de lançamentos. No momento em que escrevo este artigo, a versão mais recente é a 1.0.0 e, como estou usando o Linux, continuarei com o download a versão para linux.
Certifique-se de fazer o download da versão apropriada para a arquitetura do seu computador.
1 |
enrolar -L https://github.com/nuvem de sofá/cofre-plug-in-banco de dados-couchbasecapella/liberações/download/v1.0.0/cofre-plug-in-banco de dados-couchbasecapella-1.0.0_linux_amd64.zip -o cofre-plug-in-banco de dados-couchbasecapella-1.0.0_linux_amd64.zip |
Como prática recomendada de segurança, é importante validar a integridade do arquivo. Portanto, faça também o download das somas de verificação dos binários, que podem ser encontradas na página de versões.
1 |
enrolar -L https://github.com/nuvem de sofá/cofre-plug-in-banco de dados-couchbasecapella/liberações/download/v1.0.0/cofre-plug-in-banco de dados-couchbasecapella-1.0.0_checksums.txt -o cofre-plug-in-banco de dados-couchbasecapella-1.0.0_checksums.txt |
Localize a soma de verificação correspondente ao arquivo que você baixou no arquivo de texto.
Gerar a soma de verificação e validar o resultado
1 |
sha256sum cofre-plug-in-banco de dados-couchbasecapella-1.0.0_linux_amd64.zip |
A comparação da soma de verificação indica uma correspondência, confirmando que a validação do arquivo foi bem-sucedida.
Agora é seguro extrair o conteúdo do arquivo zip e recuperar o plug-in do vault.
1 |
descompactar cofre-plug-in-banco de dados-couchbasecapella-1.0.0_linux_amd64.zip |
Nesse ponto, o binário do plug-in do Vault deve estar em nossa pasta. A etapa final é gerar o hash desse binário, que é necessário para registrar o plug-in no Vault posteriormente. É importante observar que esse hash é para o próprio binário, não para o arquivo zip baixado anteriormente.
1 |
shasum -a 256 "couchbasecapella-database-plugin" | cortar -d " " -f1 > couchbasecapella-banco de dados-plug-in.sha256 |
A execução desse comando deve ter resultado na criação de um novo arquivo contendo o hash do plug-in do vault.
Também precisaremos criar uma configuração de cofre que defina onde o plug-in está localizado.
1 |
eco '{"plugin_directory": "/vault/plugins", "storage": {"file": {"path": "/vault/file"}}, "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' > configuração.json |
A etapa final envolve a criação de uma política de senha personalizada que espelhe a política usada no Capella.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
gato >política_de_senha.hcl << EOF comprimento=64 regra "charset" { conjunto de caracteres = "abcdefghijklmnopqrstuvwxyz" min-caracteres = 1 } regra "charset" { conjunto de caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" min-caracteres = 1 } regra "charset" { conjunto de caracteres = "0123456789" min-caracteres = 1 } regra "charset" { conjunto de caracteres = "#@%!" min-caracteres = 1 } EOF |
Depois de fazer o download do plug-in do Vault e gerar seu hash, iniciaremos um servidor do Vault em um contêiner do Docker, configurado no modo de desenvolvimento. Essa configuração nos permite contornar alguns recursos de segurança para fins de teste simplificado.
O servidor do Vault escutará na porta 8200 e será inicializado com um token raiz definido como senha. Também habilitaremos o registro em nível de depuração para capturar informações detalhadas durante nossos testes. Também é importante observar que precisaremos montar nosso plugin e sha como um volume:
1 2 3 4 5 6 7 8 9 10 11 |
doca executar --tampa-adicionar=IPC_LOCK --nome="couchbase_vault" --rm \ -e VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200 \ -e VAULT_ADDR=http://0.0.0.0:8200 \ -p 8200:8200 \ -v $(pwd)/configuração.json:/cofre/configuração/configuração.json \ -v $(pwd)/política_de_senha.hcl:/cofre/política_de_senha.hcl \ -v $(pwd)/couchbasecapella-banco de dados-plug-in:/cofre/plugins/couchbasecapella-banco de dados-plug-in \ -v $(pwd)/couchbasecapella-banco de dados-plug-in.sha256:/cofre/couchbasecapella-banco de dados-plug-in.sha256 \ hashicorp/cofre:1.15 \ cofre servidor -dev -dev-raiz-token-id="senha" \ -registro-nível=depurar -configuração=/cofre/configuração/configuração.json |
Etapa 3: Ativar segredos do banco de dados
O Vault agora está funcionando no modo de desenvolvimento. Em seguida, habilitaremos o mecanismo de segredos de banco de dados do Vault. Esse mecanismo permite que o Vault gere credenciais dinâmicas para bancos de dados e é crucial para que nosso plug-in funcione corretamente. Ao habilitá-lo, estamos preparando o cenário para que o Vault gerencie as credenciais do banco de dados Capella. Abra um novo terminal e execute o seguinte:
1 2 3 |
doca ps doca executar -ele "couchbase_vault" /caixa/cinza -c "senha de login do cofre && segredos do cofre ativam o banco de dados" |
Etapa 4: Registre o plug-in
Registraremos nosso plug-in personalizado no Vault. Isso envolve o cálculo do hash SHA-256 do binário do plug-in para garantir sua integridade. O Vault usa esse hash para verificar se o plug-in não foi adulterado quando é chamado. Depois que o hash for calculado, nós o usaremos para registrar o plug-in.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c "SHA256=\$(cat /vault/couchbasecapella-database-plugin.sha256) && vault login password && vault write sys/plugins/catalog/database/couchbasecapella-database-plugin sha256=\$SHA256 command=couchbasecapella-database-plugin" |
Agora o plug-in foi registrado com sucesso.
Etapa 5: Fazer upload da política de senha
Faremos o upload de uma política de senha para o Vault que se alinhe com os requisitos de senha da Capella. Isso garante que todas as credenciais geradas pelo Vault para a Capella estarão em conformidade com os padrões de segurança da Capella. A política será definida em um arquivo HCL (HashiCorp Configuration Language). Esse arquivo foi adicionado à imagem do Docker durante a compilação.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c "vault login password && vault write sys/policies/password/couchbasecapella policy=@/vault/password_policy.hcl" |
Etapa 6: Criar configuração do banco de dados
Vamos configurar o Vault para se conectar ao nosso cluster da Capella. Isso envolve a especificação de vários parâmetros, como o URL de base da API de nuvem da Capella, o ID da organização, o ID do projeto e o ID do cluster. Também forneceremos a chave de acesso do Capella que geramos anteriormente. Essa configuração permite que o Vault interaja com nosso cluster do Capella e gerencie as credenciais dinamicamente.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c "senha de login do vault && gravação do vault banco de dados/config/couchbasecapella-database-plugin plugin_name='couchbasecapella-database-plugin' cloud_api_base_url='https://cloudapi.cloud.couchbase.com/v4' organization_id="$CAPELLA_ORG_ID" project_id="$CAPELLA_PROJECT_ID" cluster_id="$CAPELLA_CLUSTER_ID" nome de usuário="$CAPELLA_ACCESS_KEY" senha="$CAPELLA_SECRET_KEY" password_policy='couchbasecapella' allowed_roles='*'" |
Agora o plug-in do Capella está configurado e pode se comunicar com o Capella.
Etapa 7: Girar as credenciais da raiz
Realizaremos uma prática recomendada de segurança alternando as credenciais raiz de alto privilégio que o Vault usa para gerenciar o banco de dados do Capella. Isso minimiza o risco associado a qualquer exposição potencial dessas credenciais.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c "senha de login do vault && vault write -force database/rotate-root/couchbasecapella-database-plugin" |
Etapa 8: Criar uma função dinâmica
Em seguida, definiremos uma função dinâmica no Vault. Essa função terá um conjunto de permissões, definidas no formato JSON, que especificam que tipo de operações de banco de dados são permitidas. Por exemplo, concederemos leitor de dados e gravador_de_dados em um bucket e escopo específicos em nosso cluster do Capella. Essa função dinâmica será usada para gerar credenciais com essas permissões.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c 'vault login password && vault write database/roles/dynamicrole1 db_name="couchbasecapella-database-plugin" creation_statements='\''{"access": [ { "privileges": [ "data_reader", "data_writer" ], "resources": { "buckets": [ { "name": "vault-bucket-1", "scopes": [ { "name": "vault-bucket-1-scope-1", "collections": [ "*" ] } ] } ] } } ]}'\'' default_ttl="5m" max_ttl="1h"' |
Etapa 9: Criar novas credenciais
Por fim, geraremos um novo conjunto de credenciais de banco de dados usando a função dinâmica que criamos. Essas credenciais são temporárias e obedecerão às configurações de TTL (Time-To-Live) que configuramos. Este é o ponto culminante da nossa configuração, demonstrando como o Vault pode gerenciar dinamicamente as credenciais do banco de dados Capella.
1 |
doca executar -ele "couchbase_vault" /caixa/cinza -c 'vault login password && vault read database/creds/dynamicrole1' |
Vamos voltar ao Capella para verificar se nossas credenciais também são exibidas na interface do usuário.
Conclusão
Concluindo, nosso plug-in HashiCorp Vault para o gerenciamento de credenciais do banco de dados Capella abre novos horizontes no aprimoramento da segurança de sua infraestrutura de banco de dados. Por meio deste tutorial passo a passo, você obteve informações valiosas sobre a configuração e a utilização eficaz do plug-in.
Ao adotar essa solução, você estará simplificando o processo de gerenciamento de credenciais de banco de dados. Incentivamos você a explorar todo o potencial do nosso plug-in e aguardamos suas experiências e comentários.
O gerenciamento de credenciais de banco de dados seguro, eficiente e fácil de usar está agora ao seu alcance. Dê o primeiro passo em direção a um ambiente de banco de dados mais seguro hoje mesmo!
Se estiver interessado em saber mais sobre como criar seus próprios aplicativos modernos de missão crítica no Couchbase, experimente nosso Avaliação gratuita de 30 dias do Couchbase Capella. E para ver mais sobre o que nossos clientes estão fazendo com o Couchbase, confira nosso página de estudo de caso de cliente!