SCRAM(Salted Challenge Response Authentication Mechanism)은 암호 기반 상호 인증 프로토콜입니다. 여러 수준의 보안을 추가하고 신뢰할 수 없는 연결에서 암호 검색을 방지하는 챌린지-응답 체계입니다. SCRAM은 고급 보안을 제공하는 암호화된 해시 형식으로 서버에 암호를 저장할 수 있습니다.
비고
SCRAM 인증 방법을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 액세스하려면 클라이언트 라이브러리가 SCRAM을 지원해야 합니다. SCRAM을 지원하는 드라이버 목록을 참조하세요.
SCRAM 인증은 애플리케이션 서버에 추가 계산 부하를 적용하므로 각 인증에 대한 클라이언트 증명을 계산해야 합니다. SCRAM이 도입하는 성능 오버헤드는 애플리케이션의 연결 풀에 있는 연결 수를 제한하거나(애플리케이션에서 수다를 줄임) 클라이언트가 허용하는 동시 트랜잭션의 수를 제한하여 완화될 수 있습니다(더 큰 트랜잭션). SCRAM 인증으로 마이그레이션하기 전에 워크로드를 테스트하는 것이 좋습니다.
SCRAM 인증 구성
password_encryption SCRAM-SHA-256으로 변경합니다. 현재 Azure Database for PostgreSQL은 SHA-256을 사용하는 SCRAM만 지원합니다.
SCRAM-SHA-256을 인증 방법으로 허용합니다.
중요합니다
SCRAM-SHA-256 메서드만 선택하여 SCRAM만 인증을 적용하도록 선택할 수 있습니다. 이렇게 하면 MD5 인증을 사용하는 사용자가 서버에 더 이상 연결할 수 있습니다. 따라서 SCRAM을 적용하기 전에 모든 사용자 암호를 SCRAM-SHA-256으로 업데이트할 때까지 MD5 및 SCRAM-SHA-256을 인증 방법으로 사용합니다. 7단계에서 언급한 쿼리를 사용하여 사용자의 인증 유형을 확인할 수 있습니다.
변경 내용을 저장합니다. 동적 속성이며 서버를 다시 시작할 필요가 없습니다.
Azure Database for PostgreSQL 유연한 서버 클라이언트에서 Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결합니다. 예를 들면 다음과 같습니다.
psql "host=myPGServer.postgres.database.azure.com port=5432 dbname=postgres user=myDemoUser password=<password> sslmode=require" psql (12.3 (Ubuntu 12.3-1.pgdg18.04+1), server 12.6) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.암호 암호화를 확인합니다.
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)그런 다음 사용자의 암호를 업데이트할 수 있습니다.
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>함수를 사용하여
azure_roles_authtype()사용자 인증 유형을 확인할 수 있습니다.postgres=> SELECT * from azure_roles_authtype(); rolename | authtype ---------------------------+----------- azuresu | NOLOGIN pg_monitor | NOLOGIN pg_read_all_settings | NOLOGIN pg_read_all_stats | NOLOGIN pg_stat_scan_tables | NOLOGIN pg_read_server_files | NOLOGIN pg_write_server_files | NOLOGIN pg_execute_server_program | NOLOGIN pg_signal_backend | NOLOGIN replication | NOLOGIN myDemoUser | SCRAM-256 azure_pg_admin | NOLOGIN srtest | SCRAM-256 sr_md5 | MD5 (14 rows)그런 다음 SCRAM 인증을 지원하는 클라이언트에서 서버에 연결할 수 있습니다.
SCRAM 인증은 기본 제공 관리 형 PgBouncer에 연결된 경우에도 지원됩니다.