다음을 통해 공유


Azure Database for PostgreSQL에서 Microsoft Entra 역할 관리

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

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

비고

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

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

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

비고

Azure SDK, az cli 및 Azure PowerShell을 통한 Microsoft Entra Administrators 관리에 대한 지원이 곧 제공될 예정입니다.

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 데이터베이스 역할과 Microsoft Entra 개체의 고유 식별자 간의 매핑을 내부적으로 저장합니다. 각 PostgreSQL 데이터베이스 역할은 다음 Microsoft Entra 개체 유형 중 하나에 매핑할 수 있습니다.

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

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

select * from pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Arguments

isAdminValue

boolean - true일 때 관리자 사용자를 반환합니다. false Microsoft Entra 관리자 및 비관리자를 포함한 모든 Microsoft Entra 사용자를 반환할 때.

반환 형식

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

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

Microsoft Entra 주 체 이름을 사용하여 사용자 또는 역할 만들기

select * from pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Arguments

roleName

text 생성할 역할의 이름입니다. 이 이름은 Microsoft Entra 주체의 이름과 일치해야 합니다.

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

booleantrue면 PostgreSQL 관리 사용자(azure_pg_admin 역할의 멤버 및 CREATEROLE 및 CREATEDB 권한을 가진)를 만듭니다. false을(를) 사용하여 일반 PostgreSQL 사용자를 생성합니다.

isMfa

boolean true인 경우 이 PostgreSQL 사용자에 대해 다단계 인증을 적용합니다.

중요합니다

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

반환 형식

text"roleName에 대해 만든 역할" 문자열로 구성된 단일 값입니다. 여기서 roleName은 roleName 매개 변수에 전달하는 인수입니다.

Microsoft Entra 주체 이름이 있는 역할 삭제

다음 세 가지 방법으로 Microsoft Entra ID 보안 주체에 해당하는 역할을 삭제할 수 있습니다.

  • Azure 포털

  • ARM(Azure Resource Manager) API

  • 다음 SQL 문을 실행하여 다음을 수행합니다.

    DROP ROLE rolename;
    

비고

Azure Portal에는 관리자 역할만 표시됩니다. nonadmin 역할을 삭제하려면 ARM(Azure Resource Manager) API 또는 SQL 문을 사용합니다.

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

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

Arguments

roleName

text 생성할 역할의 이름입니다.

objectId

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

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

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

isAdmin

booleantrue면 PostgreSQL 관리 사용자(azure_pg_admin 역할의 멤버 및 CREATEROLE 및 CREATEDB 권한을 가진)를 만듭니다. false을(를) 사용하여 일반 PostgreSQL 사용자를 생성합니다.

isMfa

boolean true인 경우 이 PostgreSQL 사용자에 대해 다단계 인증을 적용합니다.

중요합니다

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

반환 형식

text"roleName에 대해 만든 역할" 문자열로 구성된 단일 값입니다. 여기서 roleName은 roleName 매개 변수에 전달하는 인수입니다.

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';

Arguments

roleName

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

objectId

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

objectType

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

admin

text가 존재하거나 존재하지 않는 것으로 설정됩니다. 보안 레이블에 있는 경우 사용자 또는 역할은 다른 Microsoft Entra ID 역할을 관리할 수 있습니다.