Que fait secrets-management ?
Implémentez une gestion sécurisée des secrets pour les pipelines CI/CD en utilisant Vault, AWS Secrets Manager ou des solutions natives de la plateforme. À utiliser lors de la manipulation d'identifiants sensibles, de la rotation des secrets ou de la sécurisation des environnements CI/CD.
Fonctionnalités
- Stockage centralisé des secrets (mots de passe, clés API, tokens, certificats)
- Rotation automatique et programmée des secrets
- Contrôle d'accès basé sur des politiques (RBAC/ABAC)
- Audit des accès et des modifications
- Injection sécurisée des secrets dans les pipelines CI/CD
- Support de multiples fournisseurs : HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager
- Mécanismes natifs des plateformes CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI)
Prérequis
- Accès à un fournisseur de gestion de secrets pris en charge
- Variables d'environnement configurées (ex.
VAULT_ADDR,AWS_ACCESS_KEY_ID,SECRET_NAME) - Permissions appropriées (lecture/écriture sur les chemins de secrets)
Utilisation
Exemple avec GitHub Actions
name: Deploy with secrets
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Fetch secrets from Vault
uses: hashicorp/vault-action@v2
with:
url: ${{ secrets.VAULT_URL }}
token: ${{ secrets.VAULT_TOKEN }}
secrets: |
secret/data/myapp db_password | DB_PASSWORD ;
Exemple avec AWS Secrets Manager et Python
import boto3
from botocore.exceptions import ClientError
def get_secret(secret_name, region_name="us-east-1"):
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
response = client.get_secret_value(SecretId=secret_name)
return response['SecretString']
except ClientError as e:
print(f"Erreur lors de la récupération du secret: {e}")
return None
Bonnes pratiques
- Ne jamais coder en dur les secrets dans les fichiers sources ou les journaux
- Utiliser les variables d'environnement ou des références indirectes
- Limiter les permissions au strict nécessaire (principe du moindre privilège)
- Activer la rotation automatique pour tous les secrets critiques
- Surveiller et auditer régulièrement les accès aux secrets
- Préférer les solutions de gestion de secrets dédiées (Vault, AWS Secrets Manager) aux variables d'environnement statiques