Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

70.3. Ansible을 사용하여 비대칭 자격 증명 모음에 IdM 서비스 시크릿 저장

이 섹션에서는 IdM(Identity Management) 관리자가 나중에 서비스에서 검색할 수 있도록 Ansible 플레이북을 사용하여 서비스 자격 증명 모음에 시크릿을 저장할 수 있는 방법을 보여줍니다. 아래 절차에서 사용된 예제에서 관리자는 시크릿과 함께 PEM 파일을 secret_vault 라는 비대칭 자격 증명 모음에 저장합니다. 이렇게 하면 자격 증명 모음에서 비밀을 검색하기 위해 서비스가 개인 키를 사용하여 인증해야 합니다. 자격 증명 모음 멤버는 IdM 클라이언트에서 파일을 검색할 수 있습니다.

사전 요구 사항

  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다. 이는 절차의 단계를 실행하는 호스트입니다.
  • IdM 관리자 암호를 알고 있습니다.
  • 서비스 시크릿 을 저장할 비대칭 자격 증명 모음을 생성했습니다.
  • 시크릿은 Ansible 컨트롤러에 로컬로 저장됩니다(예: /usr/share/doc/ansible-freeipa/playbooks/vault/private-key-to-an-externally-signed-certificate.pem ).

절차

  1. /usr/share/doc/ansible-freeipa/playbooks/vault 디렉터리로 이동합니다.

    $ cd /usr/share/doc/ansible-freeipa/playbooks/vault
  2. 선택 사항: 인벤토리 파일이 없는 경우(예: inventory.file)를 생성합니다.

    $ touch inventory.file
  3. 인벤토리 파일을 열고 [ipaserver] 섹션에서 구성할 IdM 서버를 정의합니다. 예를 들어 server.idm.example.com을 구성하도록 Ansible에 지시하려면 다음을 입력합니다.

    [ipaserver]
    server.idm.example.com
  4. data-archive-in-asymmetric-vault.yml Ansible 플레이북 파일의 복사본을 만듭니다. 예를 들면 다음과 같습니다.

    $ cp data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml
  5. 편집을 위해 data-archive-in-asymmetric-vault-copy.yml 파일을 엽니다.
  6. ipavault 작업 섹션에서 다음 변수를 설정하여 파일을 수정합니다.

    • ipaadmin_password 변수를 IdM 관리자 암호로 설정합니다.
    • name 변수를 자격 증명 모음의 이름으로 설정합니다(예: secret_vault ).
    • 서비스 변수를 자격 증명 모음의 서비스 소유자(예: HTTP/webserver1.idm.example.com )로 설정합니다.
    • 변수 의 를 "{{ lookup('file', 'private-key-to-an-externally-signed-certificate.pem') | b64encode }}" 로 설정합니다. 이렇게 하면 Ansible이 IdM 서버가 아닌 Ansible 컨트롤러의 작업 디렉터리에서 개인 키를 사용하여 파일을 검색할 수 있습니다.
    • action 변수를 member 로 설정합니다.

      이 파일은 현재 예제에 맞게 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Tests
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      - ipavault:
          ipaadmin_password: Secret123
          name: secret_vault
          service: HTTP/webserver1.idm.example.com
          in: "{{ lookup('file', 'private-key-to-an-externally-signed-certificate.pem') | b64encode }}"
          action: member
  7. 파일을 저장합니다.
  8. 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory.file data-archive-in-asymmetric-vault-copy.yml