FIPS 준수 설치 사양

데이비드 와일
2024년 12월 23일

TPA를 사용하여 FIPS 컴플라이언스 서버에 EFM을 설치하는 경우:

FIPS가 활성화된 상태에서는 TPA가 EFM 데이터베이스 사용자를 생성할 수 없습니다. 배포 과정에서 EFM이 제대로 설치되도록 하려면 아래 단계를 따라야 합니다:

  1. 배포 중 모든 서버에서 FIPS를 비활성화합니다.
  2. 배포 완료 후 FIPS를 다시 활성화합니다.
  3. EFM 데이터베이스 사용자에 대한 SCRAM-SHA-256 암호화 비밀번호를 생성합니다.
    기본적으로 MD5 암호화를 사용해 배포한 후, 아래 과정을 통해 SCRAM-SHA-256 비밀번호를 생성하고 TPA 볼트에 저장합니다:

데이터베이스 서버에서:

>> On database server:
enterprisedb@database-server1#  psql -d postgres
>>
postgres>    SHOW password_encryption;

(Expected output: "SCRAM-SHA-256". If not, run "SET password_encryption = 'scram-sha-256';")

postgres>    \password efm

(Type new password 2x)

>> On TPA server:
root@tpa-server#  cd ~/clusters/cluster-name
root@tpa-server#  tpaexec store-password . efm

(Type new password 2x)

FIPS 준수 서버에 Barman을 설치하는 경우(TPA 또는 수동 설치):

barman-wal-archive 명령은 FIPS를 준수하지 않습니다. 따라서 FIPS 준수 서버에서 Barman을 사용해 아카이브를 올바르게 설정하려면 rsync를 사용해야 합니다. 배포 유형에 따라 아래 단계를 수행하세요:

  1. TPA 배포
    TPA 설치 환경에서는 $PGDATA/conf.d 디렉터리로 이동하여 9999-override.conf 파일을 엽니다. 아래 매개변수를 입력하여 archive_command에서 rsync를 사용하도록 설정합니다. (명령어의 TPA 서버 및 기본 데이터베이스 서버 호스트 이름을 사용자의 환경에 맞게 업데이트하십시오.)
>>        archive_command = 'rsync -a %p
          barman@tpa-server:/barman/database-server1/incoming/%f'  

구성 변경 사항을 적용하려면 구성을 다시 로드합니다.

>> 각 데이터베이스 서버에서:

>> On each database server:
enterprisedb@database-server1/database-server2#  psql -d postgres
>>
postgres>    SELECT pg_reload_conf();

(Expected output: "t")

클러스터의 모든 데이터베이스 서버에서 이 단계를 수행하세요.

**참고:
Barman은 기본 데이터베이스 서버 이름을 사용하여 전체 클러스터를 참조하기 때문에, archive_command 경로는 클러스터의 모든 서버에서 여전히 database-server1 호스트 이름을 참조합니다

수동 배포

수동 배포의 경우, postgresql.conf 파일을 직접 수정하거나, psql 유틸리티를 사용하여 archive_command를 업데이트할 수 있습니다.

옵션 1: 클러스터의 모든 데이터베이스 서버에서 postgresql.conf 파일을 직접 업데이트

$PGDATA 디렉터리로 이동한 후, postgresql.conf 파일을 열어 archive_command 매개변수를 찾습니다. 아래 archive_command 값을 입력하여 rsync를 사용하도록 설정합니다. (명령어의 서버 이름을 TPA 서버 및 기본 데이터베이스 서버 호스트 이름에 맞게 수정하세요.)

>> On each database server:
enterprisedb@database-server1/database-server2#  cd $PGDATA
enterprisedb@database-server1/database-server2#  vi postgresql.conf

>>        archive_command = 'rsync -a %p
          barman@tpa-server:/barman/database-server1/incoming/%f'
          
>> Save and exit.

enterprisedb@database-server1/database-server2#  psql -d postgres -c "SELECT pg_reload_conf();"

(Expected output: "t")

옵션 2: 클러스터의 모든 데이터베이스 서버에서 psql 유틸리티를 사용하여 archive_command 업데이트

psql을 사용해 데이터베이스에 접속한 후, ALTER SYSTEM 명령을 사용하여 archive_command를 변경합니다. 아래 rsync 명령을 사용자 환경에 맞게 TPA 서버와 기본 데이터베이스 서버의 호스트 이름으로 업데이트하세요.

>> On each database server:
enterprisedb@database-server1/database-server2#  psql -d postgres
>>
postgres>    ALTER SYSTEM SET archive_command TO "archive_command = 'rsync -a %p
             barman@tpa-server:/barman/database-server1/incoming/%f'"
             
postgres>    SELECT pg_reload_conf();

(Expected output: "t")

ALTER SYSTEM을 사용하여 archive_command를 업데이트하면, 새 archive_command 값은 데이터 디렉터리 내의 postgresql.auto.conf 파일에 저장됩니다.

**참고:
Barman은 기본 데이터베이스 서버 이름을 사용하여 전체 클러스터를 참조하기 때문에, archive_command 경로는 클러스터의 모든 서버에서 여전히 database-server1 호스트 이름을 참조하게 됩니다.

본문: FIPS-compliant installation specifications

EDB 영업 기술 문의: 02-501-5113

이메일: salesinquiry@enterprisedb.com

홈페이지 문의