Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

25.5. Vault에 서비스 시크릿 저장

이 섹션에서는 관리자가 자격 증명 모음을 사용하여 서비스 시크릿을 중앙 집중식 위치에 안전하게 저장하는 방법을 보여줍니다. 서비스 비밀은 서비스 공개 키로 암호화됩니다. 그런 다음 서비스는 도메인의 모든 시스템에서 개인 키를 사용하여 시크릿을 검색합니다. 서비스와 관리자만 시크릿에 액세스할 수 있습니다.
이 섹션에는 다음 절차가 포함되어 있습니다.
절차의 경우:
  • admin 은 서비스 암호를 관리하는 관리자입니다.
  • http_password 는 관리자가 생성한 개인 사용자 자격 증명 모음의 이름입니다.
  • password.txt 는 서비스 암호를 포함하는 파일입니다.
  • password_vault 는 서비스에 대해 생성된 자격 증명 모음입니다.
  • HTTP/server.example.com 은 암호가 보관되는 서비스입니다.
  • service-public.pempassword_vault에 저장된 암호를 암호화하는 데 사용되는 서비스 공개 키입니다.

25.5.1. 서비스 암호를 저장할 사용자 Vault 만들기

관리자 소유 사용자 자격 증명 모음을 만들고 이를 사용하여 서비스 암호를 저장합니다. 자격 증명 모음 유형은 표준이므로 자격 증명 모음 내용에 액세스할 때 관리자가 인증할 필요가 없습니다.
  1. 관리자로 로그인합니다.
    $ kinit admin
  2. 표준 사용자 자격 증명 모음을 생성합니다.
    $ ipa vault-add http_password --type standard
    ---------------------------
    Added vault "http_password"
    ---------------------------
      Vault name: http_password
      Type: standard
      Owner users: admin
      Vault user: admin
  3. 서비스 암호를 자격 증명 모음에 보관합니다.
    $ ipa vault-archive http_password --in password.txt
    ----------------------------------------
    Archived data into vault "http_password"
    ----------------------------------------
    주의
    암호를 자격 증명 모음에 보관한 후 시스템에서 password.txt 를 삭제합니다.

25.5.2. User Vault에서 서비스 인스턴스로 서비스 암호 배포

서비스에 대해 생성된 비대칭 자격 증명 모음을 사용하여 서비스 인스턴스에 서비스 암호를 프로비저닝합니다.
  1. 관리자로 로그인합니다.
    $ kinit admin
  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)
    2. 개인 키를 기반으로 service-public.pem 공개 키를 생성합니다.
      $ openssl rsa -in service-private.pem -out service-public.pem -pubout
      writing RSA key
  3. 서비스 인스턴스 자격 증명 모음으로 비대칭 자격 증명 모음을 생성하고 공개 키를 제공합니다.
    $ ipa vault-add password_vault --service HTTP/server.example.com --type asymmetric --public-key-file service-public.pem
    ----------------------------
    Added vault "password_vault"
    ----------------------------
    Vault name: password_vault
    Type: asymmetric
    Public key: LS0tLS1C...S0tLS0tCg==
    Owner users: admin
    Vault service: HTTP/server.example.com@EXAMPLE.COM
    자격 증명 모음에 저장된 암호는 키로 보호됩니다.
  4. 관리자의 개인 자격 증명 모음에서 서비스 암호를 검색하여 새 서비스 자격 증명 모음에 보관합니다.
    $ ipa vault-retrieve http_password --out password.txt
    -----------------------------------------
    Retrieved data from vault "http_password"
    -----------------------------------------
    $ ipa vault-archive password_vault --service HTTP/server.example.com --in password.txt
    -----------------------------------
    Archived data into vault "password_vault"
    -----------------------------------
    이렇게 하면 서비스 인스턴스 공개 키로 암호를 암호화합니다.
    주의
    암호를 자격 증명 모음에 보관한 후 시스템에서 password.txt 를 삭제합니다.
암호가 필요한 모든 서비스 인스턴스에 대해 이 단계를 반복합니다. 각 서비스 인스턴스에 대한 새 비대칭 자격 증명 모음을 만듭니다.

25.5.3. 서비스 인스턴스의 서비스 암호 검색

서비스 인스턴스는 로컬에 저장된 서비스 개인 키를 사용하여 서비스 vault 암호를 검색할 수 있습니다.
  1. 관리자로 로그인합니다.
    $ kinit admin
  2. 서비스에 대한 Kerberos 티켓을 받습니다.
    # kinit HTTP/server.example.com -k -t /etc/httpd/conf/ipa.keytab
  3. 서비스 vault 암호를 검색합니다.
    $ ipa vault-retrieve password_vault --service HTTP/server.example.com --private-key-file service-private.pem --out password.txt
    ------------------------------------
    Retrieved data from vault "password_vault"
    ------------------------------------
    

25.5.4. 서비스 Vault 암호 변경

서비스 인스턴스가 손상된 경우 서비스 vault 암호를 변경한 다음 새 암호를 압축되지 않은 서비스 인스턴스로 다시 프로비저닝하여 격리합니다.
  1. 관리자의 사용자 자격 증명 모음에 새 암호를 보관합니다.
    $ ipa vault-archive http_password --in new_password.txt
    ----------------------------------------
    Archived data into vault "http_password"
    ----------------------------------------
    자격 증명 모음에 저장된 현재 암호를 덮어씁니다.
  2. 손상된 인스턴스를 제외하고 각 서비스 인스턴스에 새 암호를 다시 프로비저닝합니다.
    1. 관리자 자격 증명 모음에서 새 암호를 검색합니다.
      $ ipa vault-retrieve http_password --out password.txt
      -----------------------------------------
      Retrieved data from vault "http_password"
      -----------------------------------------
    2. 새 암호를 서비스 인스턴스 자격 증명 모음에 보관합니다.
      $ ipa vault-archive password_vault --service HTTP/server.example.com --in password.txt
      -----------------------------------
      Archived data into vault "password_vault"
      -----------------------------------
      주의
      암호를 자격 증명 모음에 보관한 후 시스템에서 password.txt 를 삭제합니다.