Azure Database for PostgreSQL 백업 정보

Azure Backup 및 Azure Database Services는 최대 10년 동안 백업을 유지하는 Azure Database for PostgreSQL 서버에 대한 엔터프라이즈급 백업 솔루션을 빌드하기 위해 함께 제공됩니다. 이 솔루션은 장기 보존 외에도 다음과 같은 기능을 제공합니다.

  • 고객이 예약된 백업 및 요청 시 백업을 개별 데이터베이스 수준에서 제어합니다.
  • 데이터베이스 수준에서 PostgreSQL 서버 또는 Blob 스토리지로 복원합니다.
  • 모든 운영 및 작업에 대한 중앙 모니터링.
  • 별도의 보안 및 장애 도메인에 백업이 저장됩니다. 어떤 상황에서든 원본 서버 또는 구독이 손상된 경우 백업은 Backup 자격 증명 모음(Azure Backup 관리형 스토리지 계정)에서 안전하게 유지됩니다.
  • pg_dump를 사용하면 복원의 유연성이 향상됩니다. 이렇게 하면 데이터베이스 버전 전체에서 복원할 수 있습니다.

이 솔루션은 최대 35일까지 보존할 수 있는 Azure PostgreSQL에서 제공하는 네이티브 백업 솔루션과 독립적으로 또는 함께 사용할 수 있습니다. 네이티브 솔루션은 최신 백업에서 복구하려는 경우와 같은 작업 복구에 적합합니다. Azure Backup 솔루션은 규정 준수 요구 사항과 더 세분화되고 유연한 백업/복원을 지원합니다.

백업 프로세스

  1. 백업 관리자는 백업하려는 Azure PostgreSQL 데이터베이스를 지정할 수 있습니다. 또한 지정된 데이터베이스에 연결하는 데 필요한 자격 증명을 저장하는 Azure 키 자격 증명 모음의 세부 정보를 지정할 수도 있습니다. 이러한 자격 증명은 Azure 키 자격 증명 모음의 데이터베이스 관리자가 안전하게 시드합니다.
  2. 그런 다음, 백업 서비스에서 지정된 PostgreSQL 서버로 인증하고 해당 데이터베이스를 백업할 수 있는 적절한 권한이 있는지 확인합니다.
  3. Azure Backup은 보호된 PostgreSQL 서버와 통신하기 위해 백업 확장이 설치된 작업자 역할(VM)을 스핀업합니다. 이 확장은 코디네이터와 PostgreSQL 플러그 인으로 구성됩니다. 코디네이터는 백업 및 복원과 같은 다양한 작업에 대한 워크플로를 트리거하고, 플러그 인은 실제 데이터 흐름을 관리합니다.
  4. 코디네이터는 예약된 시간에 플러그 인과 통신하고 pg_dump(사용자 지정)를 사용하여 PostgreSQL 서버에서 백업 데이터 스트리밍을 시작합니다.
  5. 플러그 인은 데이터를 Azure Backup 관리형 스토리지 계정(Backup 자격 증명 모음에서 마스킹됨)에 직접 보내므로 준비 위치가 필요하지 않습니다. 데이터는 Microsoft 관리 키를 사용하여 암호화되며 Azure Backup 서비스를 통해 스토리지 계정에 저장됩니다.

Diagram showing the backup process.

PostgreSQL 서버를 사용하여 Azure Backup 인증

Azure Backup은 Azure에서 규정한 엄격한 보안 지침을 따릅니다. 백업할 리소스에 대한 권한은 가정되지 않으며 사용자가 명시적으로 제공해야 합니다.

키 자격 증명 모음 기반 인증 모델

Azure Backup 서비스는 각 백업을 수행하면서 Azure PostgreSQL에 연결해야 합니다. 데이터베이스에 해당하는 '사용자 이름 + 암호'(또는 연결 문자열)가 이 연결을 만드는 데 사용되지만 이러한 자격 증명은 Azure Backup에 저장되지 않습니다. 대신 데이터베이스 관리자가 이러한 자격 증명을 비밀로 Azure 키 자격 증명 모음에서 안전하게 시드해야 합니다. 워크로드 관리자는 자격 증명을 관리하고 회전할 책임이 있습니다. Azure Backup은 백업을 수행하기 위해 키 자격 증명 모음에서 최신 비밀 세부 정보를 호출합니다.

Diagram showing the workload or database flow.

Azure PostgreSQL 데이터베이스 백업에 필요한 권한 집합

  1. 다음 액세스 권한을 Backup 자격 증명 모음의 MSI에 부여합니다.

    • Azure PostgreSQL 서버에 대한 읽기 권한자 액세스 권한
    • Azure 키 자격 증명 모음에 대한 Key Vault 비밀 사용자(또는 비밀 가져오기, 나열) 액세스 권한
  2. 다음에 대한 네트워크 가시선 액세스 권한

    • Azure PostgreSQL 서버 - Azure 서비스에 대한 액세스 허용 플래그를 로 설정합니다.
    • 키 자격 증명 모음 - 신뢰할 수 있는 Microsoft 서비스 허용 플래그를 로 설정합니다.
  3. 데이터베이스에 대한 데이터베이스 사용자의 백업 권한

참고 항목

백업 관리자가 의도한 리소스에 대한 '쓰기' 액세스 권한이 있는 경우 백업 구성 흐름 내에서 한 번 클릭으로 이러한 권한을 부여하거나, 필요한 권한이 없는 경우(여러 가상 사용자가 관련된 경우) ARM 템플릿을 사용할 수 있습니다.

Azure PostgreSQL 데이터베이스 복원에 필요한 권한 집합

복원에 필요한 권한은 백업에 필요한 권한과 비슷하며, 대상 PostgreSQL 서버 및 해당 키 자격 증명 모음에 대한 권한을 부여해야 합니다. 백업 구성 흐름과 달리 이러한 권한을 인라인으로 부여하는 환경은 현재 사용할 수 없습니다. 따라서 Postgres 서버 및 해당 키 자격 증명 모음에 대한 액세스 권한을 수동으로 부여해야 합니다.

또한 데이터베이스 사용자(키 자격 증명 모음에 저장된 자격 증명에 해당)에게 데이터베이스에 대한 다음과 같은 복원 권한이 있는지 확인합니다.

  • ALTER USER 사용자 이름 CREATEDB
  • 데이터베이스 사용자에게 azure_pg_admin 역할을 할당합니다.

Microsoft Entra ID 기반 인증 모델

이전에 완전히 Microsoft Entra ID를 기반으로 하는 다른 인증 모델이 출시되었습니다. 그러나 이제 구성 프로세스를 용이하게 하는 대체 옵션으로 새 키 자격 증명 모음 기반 인증 모델을 제공합니다(위에서 설명한 대로).

이 문서를 다운로드하여 이 인증 모델을 사용하기 위한 자동화된 스크립트 및 관련 지침을 얻습니다. 백업 및 복원을 위해 적절한 권한 집합을 Azure PostgreSQL 서버에 부여합니다.

참고 항목

모든 새 구성 보호는 새 키 자격 증명 모음 인증 모델에서만 수행됩니다. 그러나 Microsoft Entra ID 기반 인증으로 보호가 구성된 모든 기존 백업 인스턴스는 계속 존재하며 정기적인 백업이 수행됩니다. 이러한 백업을 복원하려면 Microsoft Entra ID 기반 인증을 따라야 합니다.

Azure PostgreSQL 서버 및 키 자격 증명 모음에 대한 액세스 권한을 수동으로 부여

Azure Backup에 필요한 모든 액세스 권한을 부여하려면 다음 섹션을 참조하세요.

Azure PostgreSQL 서버에 대한 액세스 권한

  1. Azure PostgreSQL 서버에 대한 Backup 자격 증명 모음의 MSI 읽기 권한자 액세스 권한을 설정합니다.

    Screenshot showing the option to set Backup vault’s M S I Reader access on the Azure PostgreSQL server.

  2. Azure PostgreSQL 서버에 대한 네트워크 가시선 액세스 권한: 'Azure 서비스에 대한 액세스 허용' 플래그를 '예'로 설정합니다.

    Screenshot showing the option to set network line of sight access on the Azure PostgreSQL server.

Azure 키 자격 증명 모음(PostgreSQL 서버와 연결됨)에 대한 액세스 권한

  1. Azure 키 자격 증명 모음에 대한 Backup 자격 증명 모음의 MSI Key Vault 비밀 사용자(또는 비밀 가져오기, 나열) 액세스 권한을 설정합니다. 권한을 할당하기 위해 역할 할당 또는 액세스 정책을 사용할 수 있습니다. 도움이 되지 않으므로 두 옵션을 모두 사용하여 권한을 추가할 필요는 없습니다.

    Screenshot showing the option to provide secret user access.

    Screenshot showing the option to grant the backup vault’s M S I Key Vault Secrets User access on the key vault.

    • 액세스 정책 사용(즉, 권한 모델이 자격 증명 모음 액세스 정책으로 설정됨)

      Screenshot showing the option to grant permission using Permission model is set to Vault access policy model.

  2. 키 자격 증명 모음에 대한 네트워크 가시선 액세스 권한: 신뢰할 수 있는 Microsoft 서비스 허용 플래그를 로 설정합니다.

    Screenshot showing to set the Allow trusted Microsoft services flag to yes for Network line of sight access on the key vault.

데이터베이스에 대한 데이터베이스 사용자의 백업 권한

PG 관리 도구에서 다음 쿼리를 실행합니다(사용자 이름을 데이터베이스 사용자 ID로 바꿈).

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

)

참고 항목

백업이 이미 구성된 데이터베이스가 UserErrorMissingDBPermissions로 인해 실패하는 경우 문제 해결에 도움이 필요하면 이 문제 해결 가이드를 참조하세요.

PG 관리 도구 사용

PG 관리 도구가 아직 없으면 다운로드합니다. 이 도구를 통해 Azure PostgreSQL 서버에 연결할 수 있습니다. 또한 데이터베이스 및 새 사용자를 이 서버에 추가할 수 있습니다.

Screenshot showing the process to connect to Azure PostgreSQL server using P G admin tool.

새 서버를 원하는 이름으로 만듭니다. Azure Portal의 Azure PostgreSQL 리소스 보기에 표시되는 서버 이름과 동일한 호스트 이름/주소 이름을 입력합니다.

Screenshot showing the option to create new server using P G admin tool.

Screenshot showing the option to enter the Host name or address name same as the Server name.

연결이 통과할 수 있도록 현재 클라이언트 ID 주소를 방화벽 규칙에 추가해야 합니다.

Screenshot showing the process to add the current client I D address to the Firewall rules.

새 데이터베이스 및 데이터베이스 사용자를 서버에 추가할 수 있습니다. 데이터베이스 사용자의 경우 새 로그인/그룹 역할을 추가합니다. 로그인할 수 있나요?로 설정되어 있는지 확인합니다.

Screenshot showing the process to add new databases and database users to the server.

Screenshot showing the process to add a new login or group role for database users.

Screenshot showing the verification of the can login option is set to Yes.

다음 단계

Azure Database for PostgreSQL 백업