Azure Database for PostgreSQL에 대한 네트워킹 개요 - 공용 액세스가 가능한 유연한 서버(허용되는 IP 주소)
적용 대상: Azure Database for PostgreSQL - 유연한 서버
이 문서에서는 Azure Database for PostgreSQL - 유연한 서버에 대한 연결 및 네트워킹 개념을 설명합니다.
Azure Database for PostgreSQL 유연한 서버를 만들 때에는 다음 네트워킹 옵션 중 하나를 선택해야 합니다.
- 프라이빗 액세스(가상 네트워크 통합)
- 공용 액세스(허용된 IP 주소) 및 프라이빗 엔드포인트
다음 특징은 프라이빗 액세스 또는 퍼블릭 액세스 옵션을 사용하도록 선택하는 경우에 적용됩니다.
- 허용된 IP 주소의 연결은 유효한 자격 증명을 사용하여 Azure Database for PostgreSQL 유연한 서버에 인증해야 합니다.
- 네트워크 트래픽에 연결 암호화를 적용할 수 있습니다.
- 서버에 FQDN(정규화된 도메인 이름)이 있습니다. 연결 문자열의
hostname
속성에는 IP 주소 대신 FQDN을 사용하는 것이 좋습니다. - 두 옵션 모두 데이터베이스 수준 또는 테이블 수준이 아닌 서버 수준에서 액세스를 제어합니다. PostgreSQL의 역할 속성을 사용하여 데이터베이스, 테이블 및 기타 개체 액세스를 제어합니다.
참고 항목
Azure Database for PostgreSQL - 유연한 서버는 관리되는 데이터베이스 서비스이므로 사용자에게 다음과 같은 pg_hba.conf
구성 파일을 보거나 수정할 수 있는 호스트 또는 운영 체제 액세스 권한이 제공되지 않습니다. 파일 내용은 네트워크 설정에 따라 자동으로 업데이트됩니다.
Azure Database for PostgreSQL - 유연한 서버에서 공용 액세스 네트워킹 사용
공용 액세스 방법을 선택하면 인터넷을 통해 퍼블릭 엔드포인트를 통해 Azure Database for PostgreSQL 유연한 서버에 액세스합니다. 퍼블릭 엔드포인트는 공개적으로 확인할 수 있는 DNS 주소입니다. 허용되는 IP 주소라는 말은 선택하는 IP 주소 범위에 서버 액세스 권한을 부여한다는 뜻입니다. 이러한 권한을 방화벽 규칙이라고 합니다.
다음 기능을 원하는 경우 이 네트워킹 옵션을 선택합니다.
- 가상 네트워크를 지원하지 않는 Azure 리소스에서 연결
- VPN 또는 Azure ExpressRoute로 연결되지 않은 Azure 외부의 리소스에서 연결합니다.
- Azure Database for PostgreSQL 유연한 서버에 인터넷을 통해 액세스할 수 있는 공용 엔드포인트가 있는지 확인합니다.
퍼블릭 액세스 메서드의 특성은 다음과 같습니다.
- 허용하는 IP 주소만 Azure Database for PostgreSQL 유연한 서버에 액세스할 수 있는 권한이 있습니다. 기본적으로 IP 주소는 허용되지 않습니다. 서버를 만드는 동안 또는 나중에 IP 주소를 추가할 수 있습니다.
- Azure Database for PostgreSQL 유연한 서버에는 공개적으로 확인할 수 있는 DNS 이름이 있습니다.
- Azure Database for PostgreSQL 유연한 서버는 Azure 가상 네트워크 중 하나에 있지 않습니다.
- 서버에서 들어오고 나가는 네트워크 트래픽은 프라이빗 네트워크를 통해 이동하지 않습니다. 트래픽은 일반적인 인터넷 경로를 사용합니다.
방화벽 규칙
서버 수준 방화벽 규칙은 동일한 Azure Database for PostgreSQL 유연한 서버의 모든 데이터베이스에 적용됩니다. 요청된 원본 IP 주소가 서버 수준 방화벽 규칙의 지정된 범위 안에 있을 경우, 연결이 허용됩니다. 그렇지 않으면 거부됩니다. 예를 들어 애플리케이션이 PostgreSQL용 JDBC 드라이버와 연결하는 경우 방화벽이 연결을 차단할 때 연결을 시도할 때 이 오류가 발생할 수 있습니다.
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL
참고 항목
로컬 컴퓨터에서 Azure Database for PostgreSQL - 유연한 서버에 액세스하려면 네트워크 및 로컬 컴퓨터의 방화벽이 TCP 포트 5432에서 나가는 통신을 허용하는지 확인합니다.
프로그래밍 방식으로 관리되는 방화벽 규칙
Azure Portal을 사용하는 것 외에도 Azure CLI를 사용하여 프로그래밍 방식으로 방화벽 규칙을 관리할 수 있습니다. 자세한 내용은 Azure CLI를 사용하여 Azure Database for PostgreSQL - 유연한 서버 방화벽 규칙 만들기 및 관리를 참조하세요.
모든 Azure IP 주소 허용
애플리케이션 또는 서비스의 발신 IP 주소를 찾고 이러한 개별 IP 주소 또는 범위에 명시적으로 액세스를 허용하는 것이 좋습니다. 고정된 발신 IP 주소를 Azure 서비스에 사용할 수 없는 경우 모든 Azure 데이터 센터의 모든 IP 주소에서 연결을 사용하도록 설정하는 것이 좋습니다.
Azure Portal에서 이 설정을 사용하도록 설정하려면 네트워킹 창에서 Azure 내의 모든 Azure 서비스에서 이 서버로의 공용 액세스 허용 확인란을 선택한 다음 저장을 선택합니다.
Important
Azure 서비스 및 Azure 내의 리소스에서 퍼블릭 액세스 허용 옵션은 다른 고객 구독의 연결을 포함하여 Azure에서의 모든 연결을 허용하도록 방화벽을 구성합니다. 이 옵션을 선택할 때 로그인 및 사용자 권한이 부여된 사용자만으로 액세스를 제한하는지 확인합니다.
퍼블릭 액세스 문제 해결
Azure Database for PostgreSQL - 유연한 서버에 대한 액세스가 예상대로 작동하지 않는 경우 다음 사항을 고려합니다.
허용 목록 변경 내용이 아직 적용되지 않았습니다. Azure Database for PostgreSQL 유연한 서버의 방화벽 구성 변경 내용이 적용되려면 5분 정도 지연될 수 있습니다.
인증 실패. 사용자에게 Azure Database for PostgreSQL 유연한 서버에 대한 권한이 없거나 암호가 올바르지 않으면 Azure Database for PostgreSQL 유연한 서버에 대한 연결이 거부됩니다. 방화벽 설정은 클라이언트에게 서버에 연결을 시도할 수 있는 기회를 제공합니다. 각 클라이언트는 꼭 필요한 보안 자격 증명을 제공해야 합니다.
동적 클라이언트 IP 주소가 액세스를 차단하고 있습니다. 동적 IP 주소 지정을 통해 인터넷에 연결되어 있고 방화벽을 통과하는 데 문제가 있는 경우 다음 솔루션 중 하나를 시도합니다.
- Azure Database for PostgreSQL 유연한 서버에 액세스하는 클라이언트 컴퓨터에 할당된 IP 주소 범위를 ISP(인터넷 서비스 공급자)에게 요청합니다. 그런 다음 IP 주소 범위를 방화벽 규칙으로 추가합니다.
- 클라이언트 컴퓨터 대신 고정 IP 주소를 얻습니다. 그런 다음, 고정 IP 주소를 방화벽 규칙으로 추가합니다.
IPv6 형식에는 방화벽 규칙을 사용할 수 없습니다. 방화벽 규칙은 IPv4 형식이어야 합니다. IPv6 형식으로 방화벽 규칙을 지정하면 유효성 검사 오류가 발생합니다.
호스트 이름
선택한 네트워킹 옵션에 관계없이 Azure Database for PostgreSQL 유연한 서버에 연결할 때 항상 FQDN을 호스트 이름으로 사용하는 것이 좋습니다. 서버의 IP 주소는 고정적으로 유지된다는 보장이 없습니다. FQDN을 사용하면 연결 문자열을 변경하지 않아도 됩니다.
FQDN을 호스트 이름으로 사용하는 예는 hostname = servername.postgres.database.azure.com
입니다. 가능하면 hostname = 10.0.0.4
(프라이빗 주소) 또는 hostname = 40.2.45.67
(퍼블릭 주소)은 사용하지 않습니다.