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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2379fb15b214c46e737ccda10586afb23e638fdd55bdedb59eae6e515a977f18
|
|
| MD5 |
989e45e34e26721fad64a759e6801852
|
|
| BLAKE2b-256 |
74f3f736f1e68b08f76ffae3d0db2925b171613f87eca12645be19b772ab5919
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96dddeaf92fa1a114ee996ffd8204405c2a721fe826468aab7e0becd6ee2413a
|
|
| MD5 |
1640e8dcd4a21c613e801ef49e6d252c
|
|
| BLAKE2b-256 |
5d67b5ad168fe80be6a280ca5734f1ffc52d50137e4c98f56b47b6ad9a7cfc30
|