[이 문서는 시험판 설명서이며 변경될 수 있습니다.]
소유권 기반 보안은 레코드 소유권, 팀, 사업부 및 조직 수준 권한을 통해 액세스 권한을 부여합니다. 필터 기반 보안은 필터 조건을 충족하는 레코드 데이터를 통해 액세스 권한을 부여합니다. 예를 들어 City 열에 Redmond, Seattle 또는 Bellevue가 포함된 레코드에 대한 액세스 권한을 부여할 수 있습니다.
다음을 사용하여 필터 기반 보안을 사용할 수 있습니다.
- 필터링된 레코드 소유권 테이블입니다.
- 사용자 또는 팀 레코드 소유권 테이블입니다.
- 조직 레코드 소유권 테이블입니다.
Important
- 이 기능은 프리뷰 상태입니다.
- 미리 보기 기능은 프로덕션용이 아니며 기능이 제한되었을 수 있습니다. 이런 기능은 공식 릴리스 전에 사용할 수 있으므로 고객이 조기에 액세스하고 피드백을 제공할 수 있습니다.
필터 기반 보안 작동 방식 이해
다음 두 가지 기본 구성 요소를 사용하여 필터 기반 보안을 구성합니다.
- 레코드 필터: FetchXML을 사용하여 액세스 자격이 있는 레코드를 식별합니다.
- 엔터티 레코드 필터: 레코드 필터를 Dataverse 테이블과 연결합니다.
필터를 테이블과 연결하면 Dataverse는 필터 권한을 만듭니다. 보안 역할을 통해 이러한 권한을 할당합니다. 사용자가 데이터에 액세스하면 Dataverse는 사용자의 보안 역할 및 팀 멤버 자격에서 필터를 평가합니다. 일치하는 필터는 해당 데이터 액세스 작업을 부여합니다.
필터링된 레코드 소유권 테이블의 경우 필터 권한에 따라 레코드 액세스가 결정됩니다. 사용자 또는 팀 및 조직 레코드 소유권 테이블의 경우 필터 권한이 기존 보안 모델을 통해 부여된 액세스에 추가됩니다.
필터 기반 보안 구성 요소
| Component | Description |
|---|---|
| 레코드 필터 | FetchXML 필터 정의를 저장합니다. |
| 엔터티 레코드 필터 | 레코드 필터를 Dataverse 테이블과 연결합니다. |
| 필터 권한 | 특정 데이터 액세스 작업에 대해 필터링된 액세스 권한을 부여합니다. |
| 보안 역할 | 사용자 및 팀에 필터 권한을 할당합니다. |
Dataverse는 사용자의 보안 역할 및 팀 멤버 자격에서 권한 있는 모든 필터를 결합합니다. 권한 있는 필터와 일치하는 레코드는 해당 액세스 권한을 받습니다.
소유권 모델 비교
필터 기반 보안은 모든 Dataverse 소유권 유형을 지원합니다.
| 능력 | 사용자 또는 팀 소유 | 조직 소유 | 필터링된 소유권 |
|---|---|---|---|
| 레코드 소유자를 지원합니다. | Yes | No | No |
| 할당을 지원합니다 | Yes | No | No |
| 공유를 지원 | Yes | No | No |
| 사업부 계층 구조 액세스를 지원합니다. | Yes | No | No |
| 소유권 기반 권한 사용 | Yes | No | No |
| 조직 전체 액세스를 지원합니다. | 역할 권한을 통해 | Yes | 모든 레코드 필터 권한을 통해 |
| 필터 기반 보안 지원 | Yes | Yes | Yes |
| 필터만 사용하여 액세스 확인 | No | No | Yes |
| 레코드 재할당 지원 | Yes | No | No |
| 일반적인 사용 사례 | 계정, 사례, 기회 및 운영 비즈니스 데이터 | 공유 참조 및 구성 데이터 | 특성 기반 액세스 제어, 권한 기반 액세스, 지리적 구분 및 데이터 분류 |
소유권 모델 선택
레코드에 명확한 기본 소유자가 있고 비즈니스 프로세스상 할당, 공유, 관리자 가시성 또는 사업부 계층 구조를 통한 액세스가 필요한 경우 사용자 또는 팀 레코드 소유권 테이블을 사용합니다.
사용자가 조직 전체에서 레코드를 광범위하게 공유하고 소유권이 필요하지 않은 경우 조직 레코드 소유권 테이블을 사용합니다.
비즈니스 특성이 소유권 대신 액세스를 결정해야 하는 경우 필터링된 레코드 소유권 테이블을 사용합니다. 이 모델은 ABAC(특성 기반 액세스 제어), 권한 기반 보안, 규정 경계 및 민감도 기반 권한 부여에 적합합니다.
메모
사용자 또는 팀, 조직 레코드 소유권 및 필터링된 레코드 소유권 테이블에 필터 기반 보안을 적용할 수 있습니다. 필터링된 레코드 소유권 테이블만 레코드 액세스에 대한 필터 권한에만 의존합니다.
필터링된 소유권 테이블을 사용하는 필터 기반 보안
필터링된 레코드 소유권은 필터 권한을 통해 액세스를 완전히 결정하는 Dataverse 소유권 모델입니다.
필터링된 소유권 테이블은 레코드 소유자를 사용하지 않습니다.
필터링된 소유권 테이블에는 다음과 같은 특징이 있습니다.
- 레코드 소유자를 포함하지 않습니다.
- 사용자 또는 팀에 할당할 수 없습니다.
- 사용자 또는 팀과 공유할 수 없습니다.
- 소유권 기반 보안 권한을 사용하지 마세요.
- 필터 권한만 사용하여 액세스를 결정합니다.
메모
필터링된 레코드 소유권 테이블을 만들 때 Dataverse는 전역 All 레코드 필터 권한을 만들고 시스템 관리자 보안 역할에 부여합니다.
필터링된 레코드 소유권 테이블 만들기
Dataverse 테이블을 만들 때 소유권 유형으로 필터링을 선택합니다. 지침은 필터링된 레코드 소유권을 참조하세요.
테이블을 만든 후 다음을 수행합니다.
- 하나 이상의 레코드 필터를 만듭니다.
- 엔터티 레코드 필터를 만들어 필터를 테이블과 연결합니다.
- 보안 역할을 통해 생성된 필터 권한을 부여합니다.
- 사용자 또는 팀에 보안 역할을 할당합니다.
사용자 또는 팀 레코드 소유권 테이블에 필터 기반 보안 적용
기존 사용자 또는 팀 레코드 소유권 테이블에 필터 기반 보안을 적용할 수도 있습니다.
필터 권한은 기존 소유권 기반 보안 모델에 대한 액세스를 추가합니다.
- 사용자는 계속해서 레코드를 소유합니다.
- 레코드를 계속 할당하고 공유할 수 있습니다.
- 사업부 계층 구조 액세스는 변경되지 않습니다.
- 필터 권한은 추가 행 수준 액세스 권한을 부여합니다.
예를 들어, 영업 사원은 자신이 소유한 영업 기회에 액세스할 수 있습니다. 필터는 영업 사원에게 특정 지역의 추가 기회에 대한 액세스 권한을 부여할 수 있습니다.
다음 필터는 특정 지역의 활성 계정에 대한 액세스 권한을 부여합니다.
<fetch
version="1.0"
output-format="xml-platform"
mapping="logical"
distinct="false">
<entity name="account">
<attribute name="entityimage_url" />
<attribute name="statecode" />
<attribute name="name" />
<attribute name="address1_city" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<attribute name="new_owningbuname" />
<order attribute="name" descending="false" />
<filter type="and">
<condition
attribute="territoryid"
operator="eq"
value="a440958c-f6bc-f111-aaad-000d3a84e349" />
<condition
attribute="statecode"
operator="eq"
value="0" />
</filter>
</entity>
</fetch>
다음 예제에서는 link-entity 영업 사원에게 담당 동료가 소유한 활성 계정에 대한 액세스 권한을 부여합니다.
<fetch
version="1.0"
output-format="xml-platform"
mapping="logical"
distinct="true">
<entity name="account">
<attribute name="entityimage" />
<attribute name="statecode" />
<attribute name="name" />
<attribute name="parentaccountid" />
<attribute name="ownerid" />
<attribute name="telephone1" />
<attribute name="emailaddress1" />
<attribute name="accountid" />
<order attribute="name" descending="false" />
<filter type="and">
<condition
attribute="statecode"
operator="eq"
value="0" />
</filter>
<link-entity
name="crcd8_buddyrm"
alias="buddy"
link-type="inner"
from="crcd8_rm"
to="ownerid">
<filter type="and">
<condition
attribute="crcd8_buddyrmname"
operator="eq-userid" />
<condition
attribute="statecode"
operator="eq"
value="0" />
</filter>
</link-entity>
</entity>
</fetch>
유효한 액세스
사용자 또는 팀 레코드 소유권 테이블의 경우 필터 권한은 소유권 기반 보안에 대한 행 수준 액세스를 추가합니다. 소유권, 공유 또는 보안 역할 권한을 통해 부여된 액세스를 대체하거나 줄이지 않습니다.
필터링된 소유권 테이블의 경우 필터 권한에 따라 레코드 액세스가 결정됩니다. 조직 레코드 소유권 테이블의 경우 필터 권한이 보안 역할 권한으로 부여된 액세스에 추가됩니다.
이 추가 모델을 사용하면 기존 액세스 규칙을 유지하면서 특성 기반 액세스를 도입할 수 있습니다.
소유권 보안에 대한 자세한 내용은 소유권 및 레코드에 대한 액세스를 참조하세요.
조직 레코드 소유권 테이블에 필터 기반 보안 적용
조직 레코드 소유권 테이블에 필터 기반 보안을 적용할 수도 있습니다.
조직 레코드 소유권 테이블에 대한 표준 권한은 테이블의 모든 레코드에 대한 액세스 권한을 부여합니다. 필터 권한은 일치하는 레코드에 대한 액세스 권한을 부여하는 또 다른 방법을 제공합니다. 보안 역할이 이미 부여한 광범위한 액세스는 줄이지 않습니다.
일반적인 시나리오는 다음과 같습니다.
- 지역 기반 액세스.
- 부서 기반 액세스.
- 데이터 분류 컨트롤.
- 범위가 제한된 가시성을 가진 공유 참조 데이터.
예를 들어 Territory 열이 특정 지역과 일치하는 레코드에 대한 액세스 권한을 사용자에게 부여합니다. 다른 보안 역할 권한이 동일한 테이블에 대한 광범위한 액세스 권한을 부여하지 않는지 확인합니다.
필터 권한은 조직 레코드 소유권 데이터 모델을 유지하면서 세분화된 권한 부여를 추가합니다.
조직 레코드 소유권 테이블에 대한 자세한 내용은 소유권 및 레코드에 대한 액세스를 참조하세요.
필터 권한
엔터티 레코드 필터를 통해 레코드 필터를 테이블과 연결하면 Dataverse는 필터 권한을 만듭니다. 보안 역할을 통해 이러한 권한을 할당합니다.
필터 권한은 다음과 같은 데이터 액세스 작업을 지원합니다.
- Create.
- 읽습니다.
- 쓰기.
- 삭제.
- 추가합니다.
- 추가합니다.
각 권한은 특정 필터 및 특정 테이블과 연결됩니다.
다음 예제에서는 여러 도시 필터에 대한 권한을 보여 줍니다.
| 필터 | Privilege |
|---|---|
| City = Redmond | Read |
| City = Redmond | 작성하다 |
| City = Redmond | Delete |
| City = Seattle | Read |
| City = Bellevue | Read |
여러 필터를 만들고 필요에 따라 각 보안 역할에 서로 다른 권한을 할당합니다.
보안 역할에 필터 권한 부여
Dataverse 보안 역할을 통해 필터 권한을 관리합니다.
필터링된 액세스 권한을 부여하려면 다음을 수행합니다.
- 보안 역할을 엽니다.
- 대상 테이블을 선택합니다.
- 필터 권한을 선택합니다.
- 역할에 권한을 부여합니다.
- 사용자 또는 팀에 역할을 할당합니다.
사용자는 할당된 보안 역할 및 팀 멤버 자격에서 모든 필터 권한을 받습니다.
자세한 내용은 보안 역할 및 권한을 참조하십시오.
Example
Customer 테이블에 City 열이 포함되어 있다고 가정합니다.
세 가지 레코드 필터를 만듭니다.
- 도시 = Redmond.
- City = Seattle.
- 도시 = Bellevue.
엔터티 레코드 필터를 사용하여 각 레코드 필터를 Customer 테이블에 연결합니다.
세 가지 보안 역할을 만듭니다.
| Role | 필터 권한 |
|---|---|
| 레드먼드 영업 | 도시가 레드먼드인 고객 읽기 |
| 시애틀 영업 | 고객 읽기 위치 City = 시애틀 |
| Bellevue Sales | City = Bellevue인 고객 조회 |
각 역할은 해당 필터와 일치하는 고객 레코드에 대한 액세스 권한을 부여합니다. 사용자는 다른 역할, 팀 멤버 자격, 소유권 또는 공유를 통해 더 광범위한 액세스 권한을 가질 수 있습니다.
요약
필터 기반 보안은 데이터 값에 따라 행 수준 액세스 권한을 부여합니다. 레코드 필터, 엔터티 레코드 필터, 필터 권한 및 보안 역할을 사용하여 Dataverse에서 특성 기반 액세스 제어를 구현합니다.
사용자 또는 팀과 조직 레코드 소유권 테이블을 사용하여 필터 기반 보안을 추가하여 필터 조건을 통해 더 많은 데이터 액세스를 제공합니다. 비즈니스 요구 사항에 맞는 소유권 모델을 선택합니다. 필터링된 소유권 테이블만 필터를 레코드 액세스의 배타적인 원본으로 사용합니다.
다음 단계
- 필터링된 레코드 소유권에서 필터링된 소유권 테이블을 구성하는 방법을 알아봅니다.
- 레코드 소유권 테이블에 필터링된 보기 보안 추가에서 기존 레코드 소유권 모델에 필터를 적용하는 방법을 알아봅니다.
- Microsoft Dataverse 보안 개념의 Dataverse 보안 아키텍처에 대해 자세히 알아봅니다.