다음을 통해 공유


Azure Cosmos DB for PostgreSQL을 사용한 Microsoft Entra ID 및 PostgreSQL 인증

적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)

Azure Cosmos DB for PostgreSQL은 PostgreSQL 인증 및 Microsoft Entra ID와의 통합을 지원합니다. 각 Azure Cosmos DB for PostgreSQL 클러스터는 네이티브 PostgreSQL 인증을 사용하도록 설정하고 citus라는 하나의 기본 제공 PostgreSQL 역할을 사용하여 만들어집니다. 클러스터 프로비저닝이 완료된 후 네이티브 PostgreSQL 역할을 더 추가할 수 있습니다.

PostgreSQL 인증 방법에 추가적으로 또는 이를 대신하여 클러스터에서 Microsoft Entra ID(이전의 Azure Active Directory) 인증을 사용하도록 설정할 수도 있습니다. 각 Azure Cosmos DB for PostgreSQL 클러스터에서 독립적으로 인증 방법을 구성할 수 있습니다. 인증 방법을 변경해야 하는 경우 클러스터 프로비저닝이 완료된 후 언제든지 변경할 수 있습니다. 인증 방법을 변경하면 클러스터를 다시 시작할 필요가 없습니다.

PostgreSQL 인증

PostgreSQL 엔진은 역할을 사용하여 데이터베이스 개체에 대한 액세스를 제어합니다. 새로 만든 Azure Cosmos DB for PostgreSQL 클러스터에는 미리 정의된 몇 가지 역할이 제공됩니다.

Azure Cosmos DB for PostgreSQL은 관리형 PaaS 서비스이므로, Microsoft만 postgres 슈퍼 사용자 역할로 로그인할 수 있습니다. 제한된 관리 액세스의 경우 Azure Cosmos DB for PostgreSQL에서 citus 역할을 제공합니다.

관리되는 서비스는 모든 PostgreSQL 역할을 클러스터의 모든 노드에 복제해야 합니다. 이 요구 사항을 용이하게 하려면 Azure Cosmos DB for PostgreSQL 관리 기능을 사용하여 다른 모든 PostgreSQL 역할을 만들어야 합니다.

Citus 역할

citus 역할의 권한:

  • 일반적으로 슈퍼 사용자에게만 표시되는 변수를 포함하여 모든 구성 변수를 읽습니다.
  • 일반적으로 슈퍼 사용자에게만 표시되는 보기 또는 확장도 포함하여 모든 pg_stat_* 보기를 읽고 다양한 통계 관련 확장을 사용합니다.
  • 테이블에 대한 액세스 공유 잠금을 장기간 수행할 수 있는 모니터링 기능을 실행합니다.
  • PostgreSQL 확장을 만듭니다.

특히 citus 역할에는 다음과 같은 몇 가지 제한 사항이 있습니다.

  • 역할을 만들 수 없음
  • 데이터베이스를 만들 수 없음

citus 역할은 삭제할 수 없지만 클러스터에서 ‘Microsoft Entra ID 인증 전용’ 인증 방법을 선택하면 비활성화됩니다.

Microsoft Entra ID 인증

Microsoft Entra ID(이전의 Azure Active Directory) 인증은 Microsoft Entra ID에 정의된 ID를 사용하여 Azure Cosmos DB for PostgreSQL에 연결하는 메커니즘입니다. Microsoft Entra ID 인증을 사용하면 중앙 위치에서 데이터베이스 사용자 ID 및 기타 Microsoft 서비스를 관리할 수 있으므로 권한 관리가 간소화됩니다.

Microsoft Entra ID를 사용하면 다음과 같은 이점이 있습니다.

  • Azure 서비스 간 사용자 인증을 단일 방식으로 수행할 수 있습니다.
  • 암호 정책 및 암호 순환을 단일 장소에서 관리할 수 있습니다.
  • Microsoft Entra ID는 다양한 형태의 인증을 지원하므로 암호를 저장할 필요가 없습니다.
  • Microsoft Entra 인증은 PostgreSQL 데이터베이스 역할을 사용하여 데이터베이스 수준에서 ID를 인증합니다.
  • 애플리케이션이 Azure Cosmos DB for PostgreSQL에 연결할 수 있도록 토큰 기반 인증이 지원됩니다.

Microsoft Entra ID 보안 주체에 대한 PostgreSQL 액세스 관리

Microsoft Entra ID 인증을 사용하도록 설정하고 Microsoft Entra ID 보안 주체가 Microsoft Entra ID 관리자로 추가되면 계정은 citus 역할과 동일한 권한을 받습니다. Microsoft Entra ID 관리자 로그인은 Microsoft Entra ID 사용자, 서비스 주체 또는 관리 ID일 수 있습니다. 언제든지 여러 Microsoft Entra ID 관리자를 구성할 수 있으며 더 나은 감사 및 규정 준수 요구 사항을 위해 필요에 따라 사용하지 않도록 설정할 수 있습니다.

또한 Microsoft Entra ID 인증을 사용하도록 설정하면 언제든지 임의 개수의 타사 Microsoft Entra ID 역할을 클러스터에 추가할 수 있습니다. 비 관리자 Microsoft Entra ID 역할에 대한 데이터베이스 권한은 일반 역할과 유사하게 관리됩니다.

Microsoft Entra ID를 사용하여 연결

Microsoft Entra ID 인증은 Microsoft Entra ID를 사용하여 데이터베이스에 연결하는 다음 방법을 지원합니다.

  • Microsoft Entra ID 암호
  • Microsoft Entra ID 통합
  • MFA를 사용하는 Microsoft Entra ID Universal
  • Microsoft Entra ID 애플리케이션 인증서 또는 클라이언트 암호 사용
  • 관리 ID

Microsoft Entra ID에 대해 인증되면 토큰을 검색합니다. 이 토큰은 로그인에 사용되는 암호입니다.

기타 고려 사항

  • 여러 Microsoft Entra ID 보안 주체(사용자, 서비스 주체 또는 관리 ID)는 언제든지 Azure Cosmos DB for PostgreSQL 클러스터에 대한 Microsoft Entra ID 관리자로 구성할 수 있습니다.
  • Microsoft Entra ID 보안 주체가 Microsoft Entra ID 서비스에서 삭제된 경우에도 클러스터에서는 PostgreSQL 역할로 유지되지만 더 이상 새 액세스 토큰을 획득할 수 없습니다. 이 경우 일치하는 역할이 데이터베이스에 계속 존재하지만 Postgres 클러스터 노드에 인증할 수 없습니다. 데이터베이스 관리자는 소유권을 이전하고 해당 역할을 수동으로 삭제해야 합니다.

참고 항목

삭제된 Microsoft Entra ID 사용자로 로그인은 토큰이 만료될 때까지 계속 가능합니다(토큰 발급 후 최대 90분). Azure Cosmos DB for PostgreSQL 클러스터에서도 사용자를 제거하면 이 액세스 권한이 즉시 해지됩니다.

  • Azure Cosmos DB for PostgreSQL은 사용자 이름을 사용하는 대신 사용자의 고유한 Microsoft Entra ID 사용자 ID를 사용하여 액세스 토큰을 데이터베이스 역할에 일치시킵니다. Microsoft Entra ID 사용자가 삭제되었고 동일한 이름으로 새 사용자가 생성되는 경우 Azure Cosmos DB for PostgreSQL은 이를 다른 사용자로 고려합니다. 따라서 Microsoft Entra ID에서 사용자를 삭제하고 동일한 이름의 새 사용자가 추가된 경우, 새 사용자가 기존 역할을 사용해서 연결할 수 없습니다.

다음 단계