26장. Ansible을 사용하여 IdM 서비스 자격 증명 모음 관리: 시크릿 저장 및 검색


이 섹션에서는 관리자가 ansible-freeipa vault 모듈을 사용하여 서비스 시크릿을 중앙 집중식 위치에 안전하게 저장하는 방법을 보여줍니다. 이 예제에 사용된 자격 증명 모음 은 비대칭이므로 이를 사용하려면 관리자가 다음 단계를 수행해야 합니다.

  1. 예를 들어 openssl 유틸리티를 사용하여 개인 키를 생성합니다.
  2. 개인 키를 기반으로 공개 키를 생성합니다.

서비스 시크릿은 관리자가 자격 증명 모음에 보관하면 공개 키로 암호화됩니다. 나중에 도메인의 특정 시스템에서 호스팅되는 서비스 인스턴스는 개인 키를 사용하여 시크릿을 검색합니다. 서비스와 관리자만 시크릿에 액세스할 수 있습니다.

시크릿이 손상된 경우 관리자는 서비스 자격 증명 모음에서 이를 교체한 다음 손상되지 않은 개별 서비스 인스턴스에 재배포할 수 있습니다.

사전 요구 사항

  • KRA(Key Recovery Authority) 인증 시스템 구성 요소가 IdM 도메인의 하나 이상의 서버에 설치되었습니다. 자세한 내용은 IdM에 키 복구 기관 설치를 참조하십시오.

다음 절차에서는 다음을 수행합니다.

  • admin 은 서비스 암호를 관리하는 관리자입니다.
  • private-key-to-externally-signed-certificate.pem 은 서비스 시크릿을 포함하는 파일입니다. 이 경우 외부 서명된 인증서에 대한 개인 키가 있습니다. 이 개인 키를 자격 증명 모음에서 시크릿을 검색하는 데 사용되는 개인 키와 혼동하지 마십시오.
  • secret_vault 는 서비스 시크릿을 저장하기 위해 생성된 자격 증명 모음입니다.
  • HTTP/webserver1.idm.example.com 은 자격 증명 모음의 소유자인 서비스입니다.
  • HTTP/webserver2.idm.example.comHTTP/webserver3.idm.example.com 은 vault 멤버 서비스입니다.
  • service-public.pempassword_vault 에 저장된 암호를 암호화하는 데 사용되는 서비스 공개 키입니다.
  • service-private.pemsecret_vault 에 저장된 암호를 해독하는 데 사용되는 서비스 개인 키입니다.

26.1. Ansible을 사용하여 IdM에 비대칭 서비스 자격 증명 모음이 있는지 확인

중요한 정보를 안전하게 저장하기 위해 Ansible 플레이북을 사용하여 하나 이상의 개인 자격 증명 모음 컨테이너를 생성하려면 다음 절차를 따르십시오. 아래 절차에 사용된 예제에서 관리자는 secret_vault 라는 비대칭 자격 증명 모음을 만듭니다. 이렇게 하면 자격 증명 모음 멤버가 자격 증명 모음에서 시크릿을 검색하기 위해 개인 키를 사용하여 인증해야 합니다. vault 멤버는 IdM 클라이언트에서 파일을 검색할 수 있습니다.

사전 요구 사항

  • 다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.15 이상을 사용하고 있습니다.
    • freeipa.ansible_freeipa 컬렉션을 설치했습니다.
    • 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
    • 이 예제에서는 secret.yml Ansible vault가 ipaadmin_password 를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
  • freeipa.ansible_freeipa 모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다.

프로세스

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
    Copy to Clipboard
  2. 서비스 인스턴스의 공개 키를 가져옵니다. 예를 들어 openssl 유틸리티를 사용합니다.

    1. service-private.pem 개인 키를 생성합니다.

      $ openssl genrsa -out service-private.pem 2048
      Generating RSA private key, 2048 bit long modulus
      .+++
      ...........................................+++
      e is 65537 (0x10001)
      Copy to Clipboard
    2. 개인 키를 기반으로 service-public.pem 공개 키를 생성합니다.

      $ openssl rsa -in service-private.pem -out service-public.pem -pubout
      writing RSA key
      Copy to Clipboard
  3. 관련 collections 디렉터리에서 ensure-asymmetric-vault-is-present.yml Ansible 플레이북 파일을 복사합니다. 예를 들면 다음과 같습니다.

    $ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/ensure-asymmetric-vault-is-present.yml ensure-asymmetric-service-vault-is-present-copy.yml
    Copy to Clipboard
  4. 편집을 위해 ensure-asymmetric-vault-is-present-copy.yml 파일을 엽니다.
  5. Ansible 컨트롤러에서 server.idm.example.com 서버로 service-public.pem 공개 키를 복사하는 작업을 추가합니다.
  6. freeipa.ansible_freeipa.ipavault 작업 섹션에서 다음 변수를 설정하여 나머지 파일을 수정합니다.

    • ipaadmin_password 변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다.
    • name 변수를 사용하여 자격 증명 모음의 이름을 정의합니다(예: secret_vault ).
    • vault_type 변수를 asymmetric 로 설정합니다.
    • 서비스 변수를 자격 증명 모음을 소유하는 서비스의 주체로 설정합니다(예: HTTP/webserver1.idm.example.com ).
    • public_key_file 을 공개 키의 위치로 설정합니다.

      현재 예에 대해 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Tests
      hosts: ipaserver
      gather_facts: false
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - name: Copy public key to ipaserver.
        copy:
          src: /path/to/service-public.pem
          dest: /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/service-public.pem
          mode: 0600
      - name: Add data to vault, from a LOCAL file.
        freeipa.ansible_freeipa.ipavault:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: secret_vault
          vault_type: asymmetric
          service: HTTP/webserver1.idm.example.com
          public_key_file: /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/service-public.pem
    Copy to Clipboard
  7. 파일을 저장합니다.
  8. Playbook을 실행합니다.

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-asymmetric-service-vault-is-present-copy.yml
    Copy to Clipboard
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat