FIPS 준수 설치 사양
데이비드 와일
2024년 12월 23일
TPA를 사용하여 FIPS 컴플라이언스 서버에 EFM을 설치하는 경우:
FIPS가 활성화된 상태에서는 TPA가 EFM 데이터베이스 사용자를 생성할 수 없습니다. 배포 과정에서 EFM이 제대로 설치되도록 하려면 아래 단계를 따라야 합니다:
- 배포 중 모든 서버에서 FIPS를 비활성화합니다.
- 배포 완료 후 FIPS를 다시 활성화합니다.
- 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
를 사용해야 합니다. 배포 유형에 따라 아래 단계를 수행하세요:
- 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