이 구성은 문서 소유자 외 모든 사용자 접근을 차단해야 하는 보안 요구사항이 있을 때 사용합니다.

 

이 암호화 구성을 기반으로 민감도 레이블을 만드는 방법은 두 가지가 있습니다.
하나는 조금 복잡한 방식, 다른 하나는 매우 간단한 방식입니다.


관련 개념

IPC_USER_ID_OWNER:

문서의 소유자를 나타내는 예약된 사용자 ID

(*IPC: Information Protection and Control의 약자)


권한 정의 개체를 이용한 방법 

1) 나만 볼 수 있는 권한 정의 개체(Rights definition object) 생성

Connect-AipService
$rights_definition = New-AipServiceRightsDefinition -EmailAddress "IPC_USER_ID_OWNER" -Rights "OWNER"

New-AipServiceRightsDefinition cmdlet을 사용하면 PowerShell 세션에서 객체를 만들어 줍니다.

$rights_definition 변수에 저장된 권한 정의 개체는 다음과 같습니다.

JSON 구조로 보면 다음과 같습니다.

{ "Identity": "IPC_USER_ID_OWNER", "Rights": [ "OWNER" ] }

 

2) 보호 템플릿 이름, 설명 변수 정의

$names = @{}
$names[1033] = "Template Name in English"
$names[1042] = "템플릿 이름 (한국어)"

$descriptions = @{}
$descriptions[1033] = "Description in English"
$descriptions[1042] = "설명 (한국어)"

New-AipServiceTemplate으로 보호 템플릿을 생성할 때, Names와 Descriptions 파라미터는 해시 테이블 형태로 지정해야 합니다.

따라서 먼저 빈 해시 테이블(@{})을 생성한 후, 표시할 언어에 해당하는 LCID(Windows Language Code Identifier)를 키로 이름과 설명을 매핑해 줍니다.

 

3) 보호 템플릿(Protection template) 생성

$protection_template = Add-AipServiceTemplate `
-Names $names `
-Descriptions $descriptions `
-RightsDefinitions $rights_definition `
-Status Published

$protection_template 변수에 저장된 보호 템플릿 생성 결과는 다음과 같습니다.

 

생성된 보호 템플릿의 GUID 값은 $id 변수에 저장합니다.

$id = $protection_template.TemplateId.ToString()

4) 민감도 레이블 생성

New-Label `
    -Name "레이블 이름" `
    -DisplayName "레이블 표시 이름" `
    -Tooltip "툴팁 내용" `
    -Comment "설명" `
    -EncryptionEnabled $true `
    -EncryptionProtectionType Template `
    -EncryptionTemplateId $TemplateId

EncryptionEnabled 파라미터를 이용한 방법

New-Label을 사용해서 민감도 레이블을 만들 때, 암호화를 활성해 주면 됩니다.
New-Label `
    -Name "레이블 이름" `
    -DisplayName "레이블 표시 이름" `
    -Tooltip "툴팁 내용" `
    -Comment "레이블 설명" `
    -EncryptionEnabled $true

결과

Purview 포털에서 생성된 민감도 레이블의 암호화 권한을 확인해 보면 IPC_USER_ID_OWNER에게 Full Control 권한이 설정되어 있는 것을 확인할 수 있습니다. 두 가지 방법 모두 결과는 동일합니다.

PowerShell에서 Get-Label 명령어로 확인해 보면 rightsdefinitions Key 값에 {\"Identity\":\"IPC_USER_ID_OWNER\",\"Rights\":\"OWNER\"} 권한 정의 개체가 들어가 있는 걸 확인할 수 있습니다.

LabelActions                    : {{"Type":"encrypt","SubType":null,"Settings":[{"Key":"disabled","Value":"false"},{"Ke
                                  y":"protectiontype","Value":"template"},{"Key":"templateid","Value":""},{"Key":"templatearchived","Value":"False"},{"Key":"linkedtempl
                                  ateid","Value":""},{"Key":"contentexpiredondatein
                                  daysornever","Value":"Never"},{"Key":"offlineaccessdays","Value":"0"},{"Key":"rightsd
                                  efinitions","Value":"[{\"Identity\":\"IPC_USER_ID_OWNER\",\"Rights\":\"OWNER\"}]"}]}}

참고문서

본 글의 내용은 공식 문서, 실제 테스트 경험, 그리고 작성자의 개인적인 해석을 바탕으로 작성되었습니다.

환경이나 정책 그리고 시점에 따라 다르게 적용될 수 있으므로 참고용으로 활용해 주세요.

+ Recent posts