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.1.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.1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gcp_secret_lib-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2379fb15b214c46e737ccda10586afb23e638fdd55bdedb59eae6e515a977f18
MD5 989e45e34e26721fad64a759e6801852
BLAKE2b-256 74f3f736f1e68b08f76ffae3d0db2925b171613f87eca12645be19b772ab5919

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gcp_secret_lib-1.0.1-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.9

File hashes

Hashes for gcp_secret_lib-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96dddeaf92fa1a114ee996ffd8204405c2a721fe826468aab7e0becd6ee2413a
MD5 1640e8dcd4a21c613e801ef49e6d252c
BLAKE2b-256 5d67b5ad168fe80be6a280ca5734f1ffc52d50137e4c98f56b47b6ad9a7cfc30

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