Gestion sécurisée des identifiants
Mettez en œuvre les bonnes pratiques pour gérer en toute sécurité les identifiants des fournisseurs cloud et les données sensibles dans vos pipelines Terraform automatisés.
Gestion sécurisée des identifiants est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Sécuriser les identifiants dans l’intégration et le déploiement continus
Lorsque vous automatisez l’infrastructure avec Terraform dans un pipeline d’intégration et de déploiement continus, votre pipeline doit accéder aux comptes des fournisseurs cloud. La gestion sécurisée de ces identifiants est primordiale pour empêcher les accès non autorisés et les violations de données.
Imaginez que vous donniez à un robot les clés de votre maison. Vous voulez vous assurer que seul le bon robot possède les bonnes clés et que celles-ci sont protégées.
Éviter l’intégration directe des secrets dans le code
Une erreur courante consiste à intégrer des informations sensibles, telles que des clés d’API ou des mots de passe, directement dans vos fichiers de configuration Terraform ou vos scripts d’intégration et de déploiement continus. On parle alors d’intégration en dur.
- Risque de sécurité : les secrets font partie de l’historique de votre code source (par exemple, Git).
- Exposition : toute personne ayant accès au dépôt peut les voir.
- Maintenance : modifier un secret nécessite de modifier le code et de redéployer.
Variables d’environnement (bases)
Pour le développement local ou les scénarios simples, les variables d’environnement permettent de fournir des identifiants sans les intégrer directement au code. Vous les définissez dans votre interpréteur de commandes avant d’exécuter Terraform.
Bien que cette méthode soit préférable à l’intégration en dur, elle n’est pas idéale pour les pipelines d’intégration et de déploiement continus partagés, car les secrets restent visibles dans les journaux ou les listes de processus s’ils ne sont pas manipulés avec précaution.
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform planGestionnaires de secrets des plateformes d’intégration et de déploiement continus
Les plateformes modernes d’intégration et de déploiement continus proposent des fonctionnalités intégrées de gestion des secrets. Elles vous permettent de stocker les données sensibles en toute sécurité au sein même de la plateforme, séparément de votre dépôt de code.
Lorsque votre pipeline s’exécute, ces secrets sont injectés dans l’environnement de compilation sous forme de variables d’environnement ou de fichiers, mais ils ne sont jamais exposés dans les journaux ni stockés dans votre dépôt.
Exemple de secrets GitHub Actions
GitHub Actions fournit une section dédiée aux secrets du dépôt. Vous pouvez les ajouter via Settings > Secrets and variables > Actions > New repository secret.
Dans votre fichier de flux de travail, vous pouvez ensuite faire référence à ces secrets à l’aide du contexte secrets. Ils sont automatiquement masqués dans les journaux.
name: Deploy Infra
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Terraform Init
run: terraform initRôles IAM cloud pour les pipelines
L’approche la plus sécurisée pour l’authentification de l’intégration et du déploiement continus consiste à utiliser les rôles IAM ou les comptes de service fournis par votre fournisseur cloud.
Plutôt que des clés d’accès à longue durée de vie, votre pipeline d’intégration et de déploiement continus assume un rôle temporaire doté d’autorisations précises, en s’appuyant souvent sur OpenID Connect (OIDC) pour les relations de confiance. Cela élimine entièrement le besoin de stocker des identifiants statiques.
Exemple de rôle IAM AWS + OIDC
Pour AWS, vous pouvez configurer un rôle IAM que votre flux de travail GitHub Actions peut assumer directement à l’aide d’OIDC. Ainsi, aucune clé d’accès AWS n’est stockée nulle part !
Vous définissez une politique de confiance pour le rôle, autorisant le fournisseur OIDC de GitHub à l’assumer selon des conditions précises (par exemple, le dépôt ou la branche).
resource "aws_iam_role" "github_actions_role" {
name = "github-actions-oidc-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Principal = {
Federated = "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
}
Action = "sts:AssumeRoleWithWebIdentity"
Condition = {
StringEquals = {
"token.actions.githubusercontent.com:aud" : "sts.amazonaws.com"
}
StringLike = {
"token.actions.githubusercontent.com:sub" : "repo:your-org/your-repo:*"
}
}
}
]
})
}Sorties sensibles de Terraform
Les sorties de Terraform peuvent parfois contenir des données sensibles, telles que des mots de passe de base de données ou des clés privées. Vous devez marquer ces sorties comme sensitive.
Lorsqu’une sortie est marquée comme sensible, Terraform masque sa valeur dans la sortie de la CLI et dans le fichier d’état lorsqu’elle est affichée, ce qui contribue à empêcher toute exposition accidentelle.
output "database_password" {
value = aws_db_instance.main.password
description = "The database root password."
sensitive = true
}Vérification de la sécurité des identifiants
Quelle méthode est généralement considérée comme la plus sécurisée pour permettre aux pipelines d’intégration et de déploiement continus de s’authentifier auprès des fournisseurs cloud, sans devoir stocker d’identifiants statiques à longue durée de vie ?
Récapitulatif : sécuriser les identifiants
Vous avez découvert des stratégies essentielles pour gérer les données sensibles dans vos pipelines Terraform d’intégration et de déploiement continus :
- Éviter l’intégration en dur : n’intégrez jamais directement les secrets dans votre code.
- Exploiter les secrets d’intégration et de déploiement continus : utilisez les gestionnaires de secrets propres à la plateforme pour les identifiants statiques.
- Adopter les rôles IAM et OIDC : pour une sécurité optimale, utilisez les rôles IAM du fournisseur cloud avec OIDC afin d’assumer des autorisations temporaires sans stocker de clés.
- Marquer les sorties comme sensibles : protégez les données sensibles exposées par les sorties Terraform.
Ces pratiques sont indispensables au maintien d’une infrastructure robuste et sécurisée.
Questions Fréquemment Posées
La leçon « Gestion sécurisée des identifiants » est-elle gratuite ?
Oui — le texte complet de « Gestion sécurisée des identifiants » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Gestion sécurisée des identifiants » ?
Mettez en œuvre les bonnes pratiques pour gérer en toute sécurité les identifiants des fournisseurs cloud et les données sensibles dans vos pipelines Terraform automatisés. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Gestion sécurisée des identifiants » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Terraform dans les pipelines CI/CD
- Automatiser `plan` et `apply`
- Gestion sécurisée des identifiants
- GitOps et automatisation des requêtes de fusion