설명
PostgreSQL 서버가 비암호화 연결을 허용하면 데이터베이스 요청과 응답이 전송 중 노출될 수 있습니다. 과거 Single Server의 sslEnforcement 대신 현재 Flexible Server에서는 require_secure_transport를 사용합니다.
잠재적 영향
통신 경로를 가로챈 주체가 쿼리와 결과를 읽거나 변조할 수 있습니다. 데이터베이스 인증과 별개로 전송 암호화가 필요합니다.
해결 방법
Flexible Server의 require_secure_transport를 on으로 설정하세요. 클라이언트도 TLS와 서버 인증서 검증을 사용하도록 구성하고 기존 애플리케이션의 연결을 확인하세요.
예시
변경 전은 지원이 종료된 Single Server의 과거 설정 발췌입니다. administratorPassword는 별도의 보안 매개변수로 제공해야 합니다. 변경 후의 MyDBServer는 이미 준비된 Flexible Server를 가리키며 서버 선언과 데이터 이전은 별도입니다.
변경 전
bicep
resource MyDBServer 'Microsoft.DBforPostgreSQL/servers@2017-12-01' = {
name: 'mydbserver'
properties: {
createMode: 'Default'
sslEnforcement: 'Disabled'
version: '11'
administratorLogin: 'pgadmin'
administratorLoginPassword: administratorPassword
}
}
sslEnforcement: 'Disabled'는 과거 서비스에서 TLS를 강제하지 않는 설정입니다.
변경 후
bicep
resource MyDBServer_tls 'Microsoft.DBforPostgreSQL/flexibleServers/configurations@2024-08-01' = {
parent: MyDBServer
name: 'require_secure_transport'
properties: {
source: 'user-override'
value: 'on'
}
}
기존 Flexible Server에 보안 전송 매개변수를 적용합니다. 이 설정은 데이터 이전이나 클라이언트 구성을 수행하지 않습니다.