다음을 통해 공유


Azure Database for PostgreSQL - 유연한 서버에서 Microsoft Entra 역할 관리

적용 대상: Azure Database for PostgreSQL - 유연한 서버

이 문서에서는 Azure Database for PostgreSQL 유연한 서버 인스턴스 내에서 Microsoft Entra ID 지원 데이터베이스 역할을 만드는 방법을 설명합니다.

참고 항목

이 가이드에서는 Azure Database for PostgreSQL 유연한 서버 인스턴스에서 Microsoft Entra 인증을 이미 사용하도록 설정했다고 가정합니다. Microsoft Entra 인증 구성 방법 참조

Azure 구독 사용자 및 해당 권한을 만들고 관리하는 방법을 알아보려면 Azure RBAC(Azure 역할 기반 액세스 제어) 문서를 방문하거나 역할을 사용자 지정하는 방법을 검토하세요.

Azure Portal 또는 ARM(Azure Resource Manager) API를 사용하여 Microsoft Entra 관리자 만들기 또는 삭제

  1. Azure Portal에서 Azure Database for PostgreSQL 유연한 서버 인스턴스에 대한 인증 페이지를 엽니다.
  2. 관리자를 추가하려면 Microsoft Entra 관리자 추가를 선택하고 현재 Microsoft Entra 테넌트에서 사용자, 그룹, 애플리케이션 또는 관리 ID를 선택합니다.
  3. 관리자를 제거하려면 - 제거할 관리자에 대해 삭제 아이콘을 선택합니다.
  4. 저장을 선택하고 프로비저닝 작업이 완료되기를 기다립니다.

포털을 통해 Microsoft Entra 관리자를 관리하는 스크린샷

참고 항목

Azure SDK, az cli 및 Azure PowerShell을 통한 Microsoft Entra 관리자 관리 기능 지원은 곧 제공될 예정입니다.

SQL을 사용하여 Microsoft Entra 역할 관리

Azure Portal 또는 API에서 첫 번째 Microsoft Entra 관리자가 만들어지면 관리자 역할을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에서 Microsoft Entra 역할을 관리할 수 있습니다.

Azure Database for PostgreSQL 유연한 서버와 Microsoft Entra 통합을 최대한 활용하기 위해 Microsoft ID 플랫폼을 숙지하는 것이 좋습니다.

보안 주체 유형

Azure Database for PostgreSQL 유연한 서버는 PostgreSQL 데이터베이스 역할과 AzureAD 개체의 고유 식별자 간 매핑을 내부적으로 저장합니다. 각 PostgreSQL 데이터베이스 역할은 다음 Microsoft Entra 개체 유형 중 하나에 매핑할 수 있습니다.

  1. 사용자 - 테넌트 로컬 및 게스트 사용자가 포함됩니다.
  2. 서비스 주체. 애플리케이션 및 관리 ID 포함
  3. 그룹 PostgreSQL 역할이 Microsoft Entra 그룹에 연결되면 이 그룹의 모든 사용자 또는 서비스 주체 멤버가 그룹 역할을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결할 수 있습니다.

SQL을 사용하여 Microsoft Entra 역할 나열

pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

인수

isAdminValue

boolean true이(가) 관리자 사용자를 반환하는 경우 false Microsoft Entra 관리자 및 비관리자를 포함하여 모든 Microsoft Entra 사용자를 반환하는 경우

반환 형식

TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) 다음 스키마가 있는 테이블:

  • rolname PostgreSQL에서 역할의 이름입니다.
  • principalType Microsoft Entra ID의 보안 주체 유형. user, group 또는 service일 수 있습니다.
  • objectId 이 보안 주체에 대한 Microsoft Entra ID의 개체 식별자입니다.
  • tenantId Microsoft Entra ID에서 이 보안 주체를 호스팅하는 테넌트 식별자입니다.
  • isMfa은(는) 사용자/역할에 MFA가 적용되는 경우의 1 값을 반환합니다.
  • isAdmin은(는) 사용자/역할이 PostgreSQL의 관리자인 경우의 1 값을 반환합니다.

Microsoft Entra 보안 주체 이름을 사용하여 사용자/역할 만들기

pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

인수

roleName

text 만들 역할의 이름입니다. Microsoft Entra 보안 주체의 이름과 일치해야 합니다.

  • 사용자의 경우 프로필의 사용자 계정 이름을 사용합니다. 게스트 사용자의 경우 #EXT# 태그를 사용하여 홈 도메인에 전체 이름을 포함합니다.
  • 그룹서비스 주체의 경우 표시 이름을 사용합니다. 이 이름은 테넌트 내에서 고유해야 합니다.
isAdmin

boolean true PostgreSQL 관리 사용자(azure_pg_admin 역할 멤버 및 CREATEROLE 및 CREATEDB 권한 사용)를 만드는 경우 false 일반 PostgreSQL 사용자를 만드는 경우

isMfa

boolean true 이 PostgreSQL 사용자에 대해 다단계 인증을 적용하는 경우

Important

isMfa 플래그는 Microsoft Entra ID 토큰에서 mfa 클레임을 테스트하지만 토큰 획득 흐름에는 영향을 주지 않습니다. 예를 들어 보안 주체의 테넌트가 다단계 인증을 위해 구성되지 않은 경우 이 기능을 사용하지 못하게 됩니다. 테넌트에 모든 토큰에 대해 다단계 인증이 필요한 경우 이 플래그를 쓸모없게 만듭니다.

반환 형식

text 문자열 "roleName에 대해 생성된 역할"로 구성된 단일 값이며, 여기서 roleNameroleName 매개 변수에 대해 전달된 인수입니다.

Microsoft Entra 보안 주체 이름을 사용하여 역할 삭제

PostgreSQL에서 만든 모든 Microsoft Entra 역할은 Microsoft Entra 관리자를 사용하여 삭제해야 합니다. 일반 PostgreSQL 관리자를 사용하여 Entra 역할을 삭제하면 오류가 발생합니다.

DROP ROLE rolename;

Microsoft Entra 개체 식별자를 사용하여 역할 만들기

pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)

인수

roleName

text 만들 역할의 이름입니다.

objectId

text Microsoft Entra 개체의 고유 개체 식별자입니다.

  • 사용자, 그룹관리 ID의 경우 ObjectId는 Azure Portal의 Microsoft Entra ID 페이지에서 개체 이름을 검색하여 찾을 수 있습니다. 이 가이드를 예제로 참조
  • 그룹서비스 주체의 경우 표시 이름을 사용합니다. 이 이름은 테넌트 내에서 고유해야 합니다.
  • 애플리케이션의 경우 해당 서비스 주체의 objectid를 사용해야 합니다. Azure Portal에서 필요한 objectId는 Azure Portal의 엔터프라이즈 애플리케이션 페이지에서 찾을 수 있습니다.
objectType

text 이 역할에 연결할 Microsoft Entra 개체의 형식입니다. user, group 또는 service일 수 있습니다.

isAdmin

boolean true PostgreSQL 관리 사용자(azure_pg_admin 역할 멤버 및 CREATEROLE 및 CREATEDB 권한 사용)를 만드는 경우 false 일반 PostgreSQL 사용자를 만드는 경우

isMfa

boolean true 이 PostgreSQL 사용자에 대해 다단계 인증을 적용하는 경우

Important

isMfa 플래그는 Microsoft Entra ID 토큰에서 mfa 클레임을 테스트하지만 토큰 획득 흐름에는 영향을 주지 않습니다. 예를 들어 보안 주체의 테넌트가 다단계 인증을 위해 구성되지 않은 경우 이 기능을 사용하지 못하게 됩니다. 테넌트에 모든 토큰에 대해 다단계 인증이 필요한 경우 이 플래그를 쓸모없게 만듭니다.

반환 형식

text 문자열 "roleName에 대해 생성된 역할"로 구성된 단일 값이며, 여기서 roleNameroleName 매개 변수에 대해 전달된 인수입니다.

SQL을 사용하여 기존 PostgreSQL 역할에 Microsoft Entra 인증 사용

Azure Database for PostgreSQL 유연한 서버는 데이터베이스 역할과 연결된 보안 레이블을 사용하여 해당 Microsoft Entra ID 매핑을 저장합니다.

다음 SQL을 사용하여 Microsoft Entra 개체에 매핑하는 데 필요한 보안 레이블을 할당할 수 있습니다.

SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';

인수

roleName

text Microsoft Entra 인증을 사용하도록 설정해야 하는 기존 PostgreSQL 역할의 이름입니다.

objectId

text Microsoft Entra 개체의 고유 개체 식별자입니다.

objectType

text user, group 또는 service(으)로 설정할 수 있습니다(자체 서비스 자격 증명으로 연결되는 애플리케이션 또는 관리 ID의 경우).

admin

text 존재하거나 없을 수 있습니다. 이 부분이 보안 레이블에 있는 사용자/역할은 다른 Microsoft Entra ID 역할을 관리할 수 있습니다.

다음 단계