Capítulo 55. Gerenciamento de segredos de serviço IdM: armazenamento e recuperação de segredos
Esta seção mostra como um administrador pode usar o módulo ansible-freeipa
vault
para armazenar com segurança um segredo de serviço em um local centralizado. O cofre utilizado no exemplo é assimétrico, o que significa que, para utilizá-lo, o administrador precisa realizar os seguintes passos:
-
Gerar uma chave privada usando, por exemplo, o utilitário
openssl
. - Gerar uma chave pública com base na chave privada.
O segredo do serviço é criptografado com a chave pública quando um administrador o arquiva no cofre. Em seguida, uma instância de serviço hospedada em uma máquina específica no domínio recupera o segredo usando a chave privada. Somente o serviço e o administrador têm permissão para acessar o segredo.
Se o segredo for comprometido, o administrador pode substituí-lo no cofre de serviço e depois redistribuí-lo para aquelas instâncias de serviço individuais que não foram comprometidas.
Pré-requisitos
- O componente do Sistema de Certificado da Key Recovery Authority (KRA) foi instalado em um ou mais servidores em seu domínio IdM. Para detalhes, consulte Instalando a Autoridade de Recuperação de Chaves no IdM.
Esta seção inclui estes procedimentos
Terminologia utilizada
Nos procedimentos:
- admin é o administrador que administra a senha de serviço.
- private-key-to-an-externally-signed-certificate.pem é o arquivo que contém o segredo do serviço, neste caso uma chave privada para um certificado assinado externamente. Não confunda esta chave privada com a chave privada utilizada para recuperar o segredo do cofre.
- secret_vault é o cofre criado para o serviço.
- HTTP/webserver.idm.example.com é o serviço cujo segredo está sendo arquivado.
- service-public.pem é a chave pública de serviço utilizada para criptografar a senha armazenada em password_vault.
- service-private.pem é a chave privada de serviço utilizada para decifrar a senha armazenada em secret_vault.
55.1. Armazenando um segredo de serviço IdM em um cofre assimétrico
Esta seção descreve como criar um cofre assimétrico e usá-lo para arquivar um segredo de serviço.
Pré-requisitos
- Você sabe a senha do administrador da IdM.
Procedimento
Faça o login como administrador:
$ kinit admin
Obter a chave pública da instância de serviço. Por exemplo, utilizando a utilidade
openssl
:Gerar a chave privada
service-private.pem
.$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)
Gerar a chave pública
service-public.pem
com base na chave privada.$ openssl rsa -in service-private.pem -out service-public.pem -pubout writing RSA key
Criar um cofre assimétrico como instância de serviço, e fornecer a chave pública:
$ 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
A senha arquivada no cofre será protegida com a chave.
Arquivar o segredo do serviço no cofre de serviço:
$ 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" -----------------------------------
Isto codifica o segredo com a chave pública da instância de serviço.
Repita estes passos para cada instância de serviço que requer o segredo. Crie um novo cofre assimétrico para cada instância de serviço.