Ir para o conteúdo

Hashicorp - Vault

Nada pode ser mais simples de interagir com as teclas secretas do que o plugin Botcity para o Hashicorp Vault.

Gerencie suas credenciais.

KV Mecanismo de segredos

O kv mecanismo de segredos é um armazenamento genérico de valor-chave usado para armazenar segredos arbitrários no armazenamento físico configurado para o Vault. Este back-end pode ser executado em um dos dois modos; ele pode ser configurado para armazenar um único valor para uma chave ou, o versionamento pode ser ativado e um número configurável de versões para cada chave que será armazenada.

Este plugin é executado em V2, esta versão pode manter um número configurável de versões. O padrão é 10 versões. Os metadados e dados das versões mais antigas podem ser recuperados. Além disso, operações de check-and-set podem ser usadas para evitar a substituição acidental de dados.

Mais informações.

Instalação

pip install botcity-hashicorp-vault-plugin

Importando o plugin

Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar as funções.

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

Autenticação

Info

Se você estiver usando o Hashicorp Cloud: ** voce precisará usar o URL pública ** e ** o token é válido por 6 horas **. Veja os tipos de token.

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(
    url="<sua_url_publica>",
    token="<seu_token>",
    namespace="<um_namespace>",
    Mount_Point="<seu_ponto_montagem>",
    base_path="<seu_caminho_base>"
)

Propriedades

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)

# Propriedades
vault.mount_point = "<toutro_ponto_montagem>"
vault.base_path = "<outro_caminho_base>"
client = vault.vault_client # Retorno: Instância do cliente HVAC

Operações de segredos

Crie ou atualize segredos

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin    

vault = BotHashicorpKVPlugin(...)

segredo = {'chave': 'valor', 'chave01': 'valor'}
print(vault.create_or_update_secret(Path="<nome_segredo>", secret=segredo))

# Ou
vault["<nome_segredo>"] = {'chave': 'valor', 'chave01': 'valor'}

Recupere o valor do segredo

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.get_secret_value(Path="<nome_segredo>"))

# Ou (recupera o valor da última versão do segredo)
print(vault["<nome_segredo>"])

Recupere metadados do segredo

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.get_secret_metadata(Path="<nome_segredo>"))

Liste todos os segredos no caminho

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.list_secrets())

Marque a versão do segredo como deletada

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.mark_secrets_as_delete(Path="<nome_segredo>", versions=[0, 1]))

# Ou (marque a versão secreta mais recente como excluído)
del vault["secret"]

Desmarca a versão do segredo como deletada

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.undelete_secrets(PATH="<nome_segredo>", versions=[0, 1]))

Exclua permanentemente a versão do segredo

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.destroy_secret_versions(Path="<nome_segredo>", versions=[3]))

Exclua permanentemente o segredo

from botcity.plugins.hashicorp.vault.kv import BotHashicorpKVPlugin

vault = BotHashicorpKVPlugin(...)
print(vault.delete_secret_permanently(Path="<nome_segredo>"))