Chapitre 4. Gestion des secrets du service IdM : stockage et récupération des secrets
Cette section montre comment un administrateur peut utiliser le module ansible-freeipa
vault
pour stocker en toute sécurité un secret de service dans un emplacement centralisé. Le coffre-fort utilisé dans l'exemple est asymétrique, ce qui signifie que pour l'utiliser, l'administrateur doit effectuer les étapes suivantes :
-
Générez une clé privée en utilisant, par exemple, l'utilitaire
openssl
. - Générer une clé publique à partir de la clé privée.
Le secret de service est crypté avec la clé publique lorsqu'un administrateur l'archive dans le coffre-fort. Ensuite, une instance de service hébergée sur une machine spécifique du domaine récupère le secret à l'aide de la clé privée. Seuls le service et l'administrateur sont autorisés à accéder au secret.
Si le secret est compromis, l'administrateur peut le remplacer dans le coffre-fort du service, puis le redistribuer aux instances de service individuelles qui n'ont pas été compromises.
Conditions préalables
- Le composant du système de certificats de l'autorité de récupération des clés (KRA) a été installé sur un ou plusieurs serveurs de votre domaine IdM. Pour plus de détails, voir Installation de l'autorité de recouvrement des clés dans IdM.
Cette section comprend les procédures suivantes
Terminologie utilisée
Dans les procédures :
- admin est l'administrateur qui gère le mot de passe du service.
- private-key-to-an-externally-signed-certificate.pem est le fichier contenant le secret du service, dans ce cas une clé privée d'un certificat signé en externe. Ne confondez pas cette clé privée avec la clé privée utilisée pour récupérer le secret dans le coffre-fort.
- secret_vault est le coffre-fort créé pour le service.
- HTTP/webserver.idm.example.com est le service dont le secret est archivé.
- service-public.pem est la clé publique du service utilisée pour crypter le mot de passe stocké dans password_vault.
- service-private.pem est la clé privée du service utilisée pour décrypter le mot de passe stocké dans secret_vault.
4.1. Stockage d'un secret de service IdM dans un coffre-fort asymétrique
Cette section explique comment créer un coffre-fort asymétrique et l'utiliser pour archiver un secret de service.
Conditions préalables
- Vous connaissez le mot de passe de l'administrateur IdM.
Procédure
Connectez-vous en tant qu'administrateur :
$ kinit admin
Obtenir la clé publique de l'instance de service. Par exemple, en utilisant l'utilitaire
openssl
:Générer la clé privée
service-private.pem
.$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)
Générer la clé publique
service-public.pem
à partir de la clé privée.$ openssl rsa -in service-private.pem -out service-public.pem -pubout writing RSA key
Créez un coffre-fort asymétrique en tant que coffre-fort de l'instance de service et fournissez la clé publique :
$ ipa vault-add secret_vault --service HTTP/webserver.idm.example.com --type asymmetric --public-key-file service-public.pem ---------------------------- Added vault "secret_vault" ---------------------------- Vault name: secret_vault Type: asymmetric Public key: LS0tLS1C...S0tLS0tCg== Owner users: admin Vault service: HTTP/webserver.idm.example.com@IDM.EXAMPLE.COM
Le mot de passe archivé dans la chambre forte sera protégé par la clé.
Archiver le secret de service dans le coffre-fort de service :
$ ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in private-key-to-an-externally-signed-certificate.pem ----------------------------------- Archived data into vault "secret_vault" -----------------------------------
Cela permet de chiffrer le secret avec la clé publique de l'instance de service.
Répétez ces étapes pour chaque instance de service nécessitant le secret. Créez un nouveau coffre-fort asymétrique pour chaque instance de service.