Red Hat Training

A Red Hat training course is available for RHEL 8

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:

  1. Gerar uma chave privada usando, por exemplo, o utilitário openssl.
  2. 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

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

  1. Faça o login como administrador:

    $ kinit admin
  2. Obter a chave pública da instância de serviço. Por exemplo, utilizando a utilidade openssl:

    1. 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)
    2. 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
  3. 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.

  4. 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.