SCRAM(Salted Challenge Response Authentication Mechanism)은 암호 기반 상호 인증 프로토콜입니다. 여러 수준의 보안을 추가하고 신뢰할 수 없는 연결에서 암호 검색을 방지하는 챌린지-응답 체계입니다. SCRAM은 고급 보안을 제공하는 암호화된 해시 형식으로 서버에 암호를 저장할 수 있습니다.
비고
SCRAM 인증 방법을 사용하여 Azure Database for PostgreSQL 유연한 서버에 액세스하려면 클라이언트 라이브러리에서 SCRAM을 지원해야 합니다. 자세한 내용은 SCRAM을 지원하는 드라이버 목록을 참조하세요.
SCRAM 인증은 애플리케이션 서버에 추가 계산 부하를 추가하므로 각 인증에 대한 클라이언트 증명을 계산해야 합니다. 애플리케이션의 연결 풀에 있는 연결 수를 제한하거나(애플리케이션의 수다를 줄임) 클라이언트에서 허용하는 동시 트랜잭션의 수를 제한하여 SCRAM에서 발생하는 성능 오버헤드를 줄일 수 있습니다(더 큰 트랜잭션). SCRAM 인증으로 마이그레이션하기 전에 워크로드를 테스트합니다.
SCRAM 인증 구성
매개 변수로 이동
SCRAM 인증을 구성하려면 Azure 포털의 매개 변수 페이지에 액세스합니다.
- Azure Portal에 로그인합니다.
- Azure Database for PostgreSQL 유연한 서버로 이동합니다.
- 설정의 왼쪽 메뉴에서 매개 변수를 선택합니다.
- 검색 상자를 사용하여 다음 단계에서 언급된 매개 변수를 찾습니다.
구성 단계
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에 연결된 경우에도 지원됩니다.