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 관리자 만들기 또는 삭제
- Azure Portal에서 Azure Database for PostgreSQL 유연한 서버 인스턴스에 대한 인증 페이지를 엽니다.
- 관리자를 추가하려면 Microsoft Entra 관리자 추가를 선택하고 현재 Microsoft Entra 테넌트에서 사용자, 그룹, 애플리케이션 또는 관리 ID를 선택합니다.
- 관리자를 제거하려면 - 제거할 관리자에 대해 삭제 아이콘을 선택합니다.
- 저장을 선택하고 프로비저닝 작업이 완료되기를 기다립니다.
참고 항목
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 개체 유형 중 하나에 매핑할 수 있습니다.
- 사용자 - 테넌트 로컬 및 게스트 사용자가 포함됩니다.
- 서비스 주체. 애플리케이션 및 관리 ID 포함
- 그룹 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에 대해 생성된 역할"로 구성된 단일 값이며, 여기서 roleName은 roleName 매개 변수에 대해 전달된 인수입니다.
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에 대해 생성된 역할"로 구성된 단일 값이며, 여기서 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';
인수
roleName
text
Microsoft Entra 인증을 사용하도록 설정해야 하는 기존 PostgreSQL 역할의 이름입니다.
objectId
text
Microsoft Entra 개체의 고유 개체 식별자입니다.
objectType
text
user
, group
또는 service
(으)로 설정할 수 있습니다(자체 서비스 자격 증명으로 연결되는 애플리케이션 또는 관리 ID의 경우).
admin
text
존재하거나 없을 수 있습니다. 이 부분이 보안 레이블에 있는 사용자/역할은 다른 Microsoft Entra ID 역할을 관리할 수 있습니다.
다음 단계
- Azure Database for PostgreSQL - 유연한 서버를 사용한 Microsoft Entra 인증에 대한 전체 개념을 검토합니다.