Skip to main content

Library for managing Google Cloud Secret Manager secrets.

Project description

gcp-secret-lib

Biblioteca Python para facilitar a leitura, criação, atualização e gerenciamento de secrets no Google Cloud Secret Manager.

Esta biblioteca foi criada para simplificar o uso do Secret Manager em serviços, pipelines ou aplicações Python, fornecendo uma interface fácil e padronizada para operações comuns.


📦 Instalação

Você poderá instalar via:

pip install gcp-secret-lib

Ou instalar diretamente pelo repositório local:

pip install .

🔐 Autenticação

Para acessar o Secret Manager, é necessário configurar a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS apontando para um arquivo JSON de uma Service Account com permissões adequadas.

Exemplo:

export GOOGLE_APPLICATION_CREDENTIALS="/caminho/para/sua/service-account.json"

A conta precisa das permissões:

  • secretmanager.secrets.get
  • secretmanager.versions.access
  • secretmanager.secrets.create
  • secretmanager.versions.add
  • secretmanager.secrets.delete (opcional)

🚀 Como usar

1. Importar e inicializar

from gcp_secret_lib import GCPSecretManager

sm = GCPSecretManager()

2. Ler uma secret

secret = sm.get_secret(
    project_id="meu-projeto",
    secret_name="minha-secret"
)

print(secret)

Se a secret contiver JSON, ela será automaticamente convertida para dict.


3. Criar uma nova secret

secret_path = sm.create_secret(
    project_id="meu-projeto",
    secret_name="nova-secret"
)

print("Secret criada em:", secret_path)

4. Atualizar uma secret (criar nova versão)

sm.update_secret(
    project_id="meu-projeto",
    secret_name="nova-secret",
    data={"token": "123", "url": "https://example.com"}
)

5. Carregar secrets como variáveis de ambiente

dados = sm.get_secret("meu-projeto", "minha-secret")
sm.set_env_vars(dados)

import os
print(os.getenv("token"))

6. Deletar uma secret

sm.delete_secret(
    project_id="meu-projeto",
    secret_name="secret-antiga"
)

🔍 Documentação das Funções

get_secret(project_id, secret_name)

Lê a última versão da secret e retorna o conteúdo como dict.


create_secret(project_id, secret_name)

Cria uma nova secret com replicação automática.


update_secret(project_id, secret_name, data)

Adiciona uma nova versão à secret existente.


set_env_vars(secrets_dict)

Carrega os valores da secret como variáveis de ambiente.


delete_secret(project_id, secret_name)

Remove a secret do projeto.


📁 Estrutura do Projeto

gcp-secret-lib/
│
├── gcp_secret_lib/
│   ├── __init__.py
│   └── secret_manager.py
│
├── tests/
│   └── test_secret_manager.py
│
├── README.md
├── setup.py
└── requirements.txt

🧪 Testes Unitários

Rode:

pytest

Ou:

PYTHONPATH=. python tests/test_secret_manager.py

🤝 Contribuições

Pull requests e melhorias são bem-vindos!


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcp_secret_lib-1.0.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gcp_secret_lib-1.0.2-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file gcp_secret_lib-1.0.2.tar.gz.

File metadata

  • Download URL: gcp_secret_lib-1.0.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for gcp_secret_lib-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a4f7eeb6f7a3b15201ba3c29ad432b3cfa9a7eebaac64f5f7a60d69d8b01e2cc
MD5 5636c508f3a1b7c6c0bef8174e5a3d25
BLAKE2b-256 9e32e722daa8a306b805cf062ae6e43becc3c3f20b876b4fe740235d091f9c33

See more details on using hashes here.

File details

Details for the file gcp_secret_lib-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: gcp_secret_lib-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for gcp_secret_lib-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 273ad9e4cee36cc07d7d8ba121fc3e4e5af91ad45e73842c1219adb9ef4d5b39
MD5 91fc6387f3339369a9c38b37bf83e871
BLAKE2b-256 bb9e5f3cd7152bb2d75affffcfc78acb435f18914e010d14256419bcd6e7fc62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page