

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 자습서: AWS 관리형 Microsoft AD 스키마 확장
<a name="ms_ad_tutorial_extend_schema"></a>

이 자습서에서는 특정 요구 사항을 충족하는 고유한 *속성*과 *클래스*를 추가하여 AWS 관리형 Microsoft AD라고도 하는 AWS Directory Service for Microsoft Active Directory 디렉터리의 스키마를 확장하는 방법을 알아봅니다. AWS 관리형 Microsoft AD 스키마 확장은 유효한 LDIF(경량 디렉터리 교환 형식) 스크립트 파일을 사용해야만 업로드하고 적용할 수 있습니다.

속성(attributeSchema)은 데이터베이스의 필드를 정의하고, 클래스(classSchema)는 데이터베이스의 테이블을 정의합니다. 예를 들어 Microsoft Active Directory의 모든 사용자 객체들은 스키마 계층 *User*가 정의하고, 이메일 주소나 전화 번호 같은 사용자의 개별 속성들은 속성이 각기 정의합니다.

과거에는 신발 사이즈와 같은 새 속성을 추가하고 싶은 경우에 *정수* 유형의 속성을 새로 정의했습니다. 또한 1\$120 같이 하한선과 상한선도 정의할 수 있습니다. 신발 사이즈 attributeSchema 객체가 생성되고 나면 해당 속성이 포함된 *사용자* classSchema 객체를 변경했습니다. 속성은 여러 클래스에 링크 연결이 가능합니다. 또한 신발 사이즈를 *연락처* 같은 클래스에 추가할 수 있습니다. Microsoft Active Directory 스키마에 대한 자세한 내용은 [AWS 관리형 Microsoft AD 스키마를 확장해야 하는 경우](ms_ad_schema_extensions.md#ms_ad_schema_when_to_extend)을 참조하세요.

이 워크플로우는 세 가지 기본 단계로 이루어집니다.

![\[자습서의 단계를 보여주는 다이어그램: 1 LDIF 파일 생성, 2 LDIF 파일 가져오기, 3 스키마 변경 확인.\]](http://docs.aws.amazon.com/ko_kr/directoryservice/latest/admin-guide/images/tutorialextendadschema.png)


**[1단계: LDIF 파일 생성](create.md)**  
먼저, LDIF 파일을 생성하고 새 속성과 속성을 추가해야 하는 클래스를 정의합니다. 워크플로우의 다음 단계에서 이 파일을 사용합니다.

**[2단계: LDIF 파일 가져오기](import.md)**  
이 단계에서는 AWS Directory Service 콘솔을 사용하여 LDIF 파일을 Microsoft Active Directory 환경으로 가져옵니다.

**[3단계: 스키마 확장이 성공적이었는지 확인](verify.md)**  
마지막으로 관리자는 EC2 인스턴스를 사용해 새 확장 스키마가 Microsoft Active Directory Schema Snap-in에 나타나는지 확인합니다.

# 1단계: LDIF 파일 생성
<a name="create"></a>

LDIF 파일은 [LDAP](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol)(Lightweight Directory Access Protocol) 디렉터리 콘텐츠 및 업데이트 요청을 표현하기 위한 표준 일반 텍스트 데이터 교환 형식입니다. LDIF는 레코드 세트(객체 또는 엔트리당 한 개의 레코드)로서 디렉터리 콘텐츠를 전달합니다. 또한 추가, 수정, 삭제, 이름 바꾸기와 같은 업데이트 요청들을 레코드 세트(업데이트 요청당 한 개의 레코드)로서 표현합니다.

는 AWS 관리형 Microsoft AD 디렉터리에서 `ldifde.exe` 애플리케이션을 실행하여 스키마가 변경된 LDIF 파일을 AWS Directory Service 가져옵니다. 따라서 LDIF 스크립트 구문을 이해해 두면 도움이 될 것입니다. 자세한 내용은 [LDIF 스크립트](https://msdn.microsoft.com/en-us/library/ms677268(v=vs.85).aspx)를 참조하세요.

몇몇 타사 LDIF 도구들은 스키마 업데이트를 추출, 정리 및 업데이트할 수 있습니다. 사용하는 도구에 관계 없이 LDIF 파일에서 사용되는 모든 식별자들이 고유해야 한다는 것을 이해하는 것이 중요합니다.

LDIF 파일을 생성하기 앞서 아래의 개념과 팁을 검토하는 것이 좋습니다.
+ **스키마 요소** – 속성, 클래스, 객체 ID, 링크 연결된 속성 같은 스키마 요소를 확인합니다. 자세한 내용은 [스키마 요소](ms_ad_key_concepts.md#ms_ad_schema_elements) 단원을 참조하십시오.
+ **항목 순서** – LDIF 파일의 항목이 레이아웃된 순서가 [DIT(Directory Information Tree)](https://en.wikipedia.org/wiki/Directory_information_tree)를 완벽하게 따르는지 확인합니다. LDIF 파일에 대한 일반적인 시퀀싱 규칙에는 다음 정보가 포함됩니다.

   
  + 빈 줄로 항목들을 분리합니다.
  + 상위 항목 이후의 하위 항목을 나열합니다.
  + 속성이나 객체 클래스 같은 항목들이 스키마에 존재하는지 확인합니다. 존재하지 않을 경우 먼저 스키마에 추가해야 사용할 수 있습니다. 예를 들어 클래스에 속성을 할당할 수 있으려면 먼저 속성을 생성해야 합니다.
+ **DN의 형식** – LDIF 파일의 새 명령 각각에 대해 명령의 첫 번째 줄로 고유 이름(DN)을 정의합니다. DN은 Active Directory 객체의 트리 내에서 Active Directory 객체를 식별하며, 디렉터리의 도메인 구성 요소를 반드시 포함해야 합니다. 예를 들어 이 자습서의 디렉터리에 대한 도메인 구성 요소는 `DC=example,DC=com`입니다.

  DN은 Active Directory 객체의 일반 이름(CN)을 반드시 포함해야 합니다. 첫 번째 CN 엔트리는 속성 또는 클래스 이름입니다. Active Directory 스키마를 확장하려면 `CN=Schema,CN=Configuration`을 사용합니다. Active Directory 객체 콘텐츠는 수정할 수 없다는 점을 유념하세요. 일반 DN 형식은 다음과 같습니다.

  ```
  dn: CN=[attribute or class name],CN=Schema,CN=Configuration,DC=[domain_name]
  ```

  이 자습서에서 새 신발 사이즈 속성에 대한 DN은 다음과 같을 것입니다.

  ```
  dn: CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com
  ```
+ **경고** – 스키마를 확장하기 전에 아래 경고를 검토합니다.
  + Microsoft Active Directory 스키마를 확인하기 앞서 이 작업의 영향에 대해 Microsoft의 경로를 검토하는 것이 중요합니다. 자세한 내용은 [스키마를 확장하기 전에 알아야 할 것](https://msdn.microsoft.com/en-us/library/ms677995(v=vs.85).aspx)을 참조하세요.
  + 스키마 속성이나 클래스를 삭제할 수 없습니다. 따라서 실수했지만 백업에서 복구하고 싶지 않은 경우에는 객체를 비활성화할 수밖에 없습니다. 자세한 내용은 [기존 클래스 및 속성 비활성화](https://msdn.microsoft.com/en-us/library/ms675903(v=vs.85).aspx)를 참조하세요.
  + defaultSecurityDescriptor에 대한 변경은 지원되지 않습니다.

LDIF 파일이 구성되는 방법에 대해 자세히 알아보고 AWS 관리형 Microsoft AD 스키마 확장을 테스트하는 데 사용할 수 있는 샘플 LDIF 파일을 보려면 AWS 보안 블로그의 [AWS 관리형 Microsoft AD 디렉터리 스키마를 확장하는 방법 문서를 참조하세요](https://aws.amazon.com/blogs/security/how-to-add-more-application-support-to-your-microsoft-ad-directory-by-extending-the-schema/).

**다음 단계**

[2단계: LDIF 파일 가져오기](import.md)

# 2단계: LDIF 파일 가져오기
<a name="import"></a>

 AWS Directory Service 콘솔에서 또는 API를 사용하여 LDIF 파일을 가져와 스키마를 확장할 수 있습니다. 스키마 확장 API로 이런 작업을 하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/directoryservice/latest/devguide/](https://docs.aws.amazon.com/directoryservice/latest/devguide/) 단원을 참조하세요. 현재로는 AWS 가 스키마 업데이트를 직접 수행하기 위해 Microsoft Exchange 같은 외부 애플리케이션을 지원하지 않습니다.

**중요**  
 AWS 관리형 Microsoft AD 디렉터리 스키마를 업데이트하면 작업을 되돌릴 수 없습니다. 즉, 한 번 새 클래스나 속성을 생성하면 Active Directory에서는 이를 제거하도록 허용하지 않습니다. 그러나 비활성화는 가능합니다.  
스키마 변경을 삭제해야 하는 경우에는 이전 스냅샷에서 디렉터리를 복구하는 것도 하나의 방법입니다. 스냅샷을 복구하면 단순히 스키마가 아니라 이전 지점으로 스키마와 디렉터리가 모두 롤백됩니다. 스냅샷의 최대 지원 기간은 180일입니다. 자세한 내용은 Microsoft 웹 사이트에서 [Active Directory의 시스템 상태 백업의 유효 수명](https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/shelf-life-system-state-backup-ad)을 참조하세요.

업데이트 프로세스가 시작되기 전에 AWS 관리형 Microsoft AD는 디렉터리의 현재 상태를 유지하기 위해 스냅샷을 생성합니다.

**참고**  
스키마 확장은 AWS Managed Microsoft AD의 글로벌 기능입니다. [AWS 관리형 Microsoft AD에 대한 다중 리전 복제 구성](ms_ad_configure_multi_region_replication.md)를 사용하는 경우 [기본 리전](multi-region-global-primary-additional.md#multi-region-primary)에서 다음 절차를 수행해야 합니다. 변경은 복제된 모든 리전에 자동으로 적용됩니다. 자세한 내용은 [글로벌 기능과 리전별 기능 비교](multi-region-global-region-features.md) 단원을 참조하십시오.

**LDIF 파일을 가져오는 방법**

1. [AWS Directory Service 콘솔](https://console.aws.amazon.com/directoryservicev2/) 탐색 창에서 **디렉터리**를 선택합니다.

1. [**Directories**] 페이지에서 디렉터리 ID를 선택합니다.

1. **Directory details(디렉터리 세부 정보)** 페이지에서 다음 중 하나를 수행합니다.
   + **Multi-Region replication(다중 리전 복제)**에 여러 리전이 표시되는 경우 기본 리전을 선택한 다음 **Maintenance(유지 관리)** 탭을 선택합니다. 자세한 내용은 [기본 리전과 추가 리전의 비교](multi-region-global-primary-additional.md) 단원을 참조하십시오.
   + **Multi-Region replication(다중 리전 복제)**에 표시된 리전이 없는 경우 **Maintenance(유지 관리)** 탭을 선택합니다.

1. **스키마 확장** 섹션에서 **작업**을 선택한 후 **스키마 업로드 및 업데이트**를 선택합니다.

1. 대화 상자에서 [**Browse**]를 클릭하고 유효한 LDIF 파일을 선택한 후 설명을 입력하고 나서 [**Update Schema**]를 선택합니다.
**중요**  
스키마 확장은 중요한 작업입니다. 개발 또는 테스트 환경에서 애플리케이션에 먼저 테스트해 보기 전에는 프로덕션 환경에 스키마 업데이트를 적용하지 마세요.

## LDIF 파일이 적용되는 방법
<a name="howapplied"></a>

LDIF 파일이 업로드되면 AWS 관리형 Microsoft AD는 다음 순서로 변경 사항을 적용하므로 오류로부터 디렉터리를 보호하는 단계를 수행합니다.

1. **LDIF 파일을 검사합니다.** LDIF 스크립트는 도메인의 모든 객체를 조작할 수 있으므로 AWS 관리형 Microsoft AD는 업로드 직후 검사를 실행하여 가져오기 작업이 실패하지 않도록 합니다. 여기에는 다음을 확인하기 위한 점검이 포함됩니다.
   + 업데이트할 객체는 스키마 컨테이너에만 보관
   + 도메인 컨트롤러(DC) 부분은 LDIF 스크립트가 실행 중인 도메인의 이름과 일치합니다.

1. **디렉터리의 스냅샷을 가져옵니다.** 스키마를 업데이트한 후 애플리케이션에서 문제가 발생하는 경우에는 스냅샷을 사용해 디렉터리를 복구할 수 있습니다.

1. **단일 DC에 변경 사항을 적용합니다.** AWS 관리형 Microsoft AD는 DCs 중 하나를 격리하고 LDIF 파일의 업데이트를 격리된 DC에 적용합니다. 그런 다음, 최초 스키마 역할을 할 DC를 하나 선택하고 디렉터리 복제본에서 해당 DC를 제거한 후, `Ldifde.exe`를 사용해 LDIF 파일을 적용합니다.

1. **복제는 모든 DCs에 발생합니다.** AWS 관리형 Microsoft AD는 격리된 DC를 복제에 다시 추가하여 업데이트를 완료합니다. 이 모든 작업이 진행되는 동안 디렉터리는 중단 없이 애플리케이션에 Microsoft Active Directory 서비스를 계속 제공합니다.

**다음 단계**

[3단계: 스키마 확장이 성공적이었는지 확인](verify.md)

# 3단계: 스키마 확장이 성공적이었는지 확인
<a name="verify"></a>

가져오기 프로세스가 완료되고 나면 스키마 업데이트가 디렉터리에 적용되었는지 반드시 확인합니다. 이는 특히 스키마 업데이트에 상주하는 애플리케이션을 마이그레이션 또는 업데이트하기 전에 중요합니다. 이를 위해 다양한 LDAP 도구를 사용하거나 해당되는 LDAP 명령을 발급하는 테스트 도구를 개발할 수 있습니다.

이 절차는 Microsoft Active Directory Schema Snap-in 및 PowerShell을 사용해 스키마 업데이트가 적용되었는지 확인합니다. 도메인이 AWS 관리형 Microsoft AD에 조인된 컴퓨터에서 이러한 도구를 실행해야 합니다. 가상 프라이빗 클라우드(VPC)에 액세스하거나 가상 프라이빗 네트워크(VPN) 연결을 통해 온프레미스 네트워크에서 실행 중인 Windows 서버가 여기에 해당될 수 있습니다. Amazon EC2 Windows 인스턴스에서 이러한 도구를 실행할 수도 있습니다([도메인 조인이 원활한 상태에서 새 EC2 인스턴스를 시작하는 방법](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-join-aws-domain.html#join-domain-console) 참조).

**Microsoft Active Directory Schema Snap-in 사용을 확인하는 방법**

1. [TechNet](https://technet.microsoft.com/en-us/library/cc732110.aspx) 웹사이트에 나와 있는 지침에 따라 Microsoft Active Directory Schema Snap-In을 설치합니다.

1. Microsoft Management Console (MMC)을 열고 디렉터리에서 **AD 스키마** 트리를 확장합니다.

1. 이전에 수행한 스키마 변경을 찾을 때까지 **Classes** 및 **Attributes** 폴더를 탐색합니다.

**PowerShell 사용을 확인하는 방법**

1. PowerShell 창을 엽니다.

1. 아래 나와 있는 `Get-ADObject` cmdlet를 사용해 스키마 변경을 확인합니다. 예제:

   `get-adobject -Identity 'CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com' -Properties *`

**옵션 단계**

[새 속성에 값을 추가 - 선택 사항](addvalue.md)

# 새 속성에 값을 추가 - 선택 사항
<a name="addvalue"></a>

새 속성을 생성하고 AWS Managed Microsoft AD 디렉터리의 속성에 새 값을 추가하려는 경우이 선택적 단계를 사용합니다.

**속성에 값을 추가하는 방법**

1. PowerShell 명령줄 유틸리티를 열고 아래 명령에 따라 속성을 새로 설정합니다. 이 예제에서는 특정 컴퓨터에서 새 EC2InstanceID 값을 속성에 추가해 보겠습니다.

   `PS C:\> set-adcomputer -Identity computer name -add @{example-EC2InstanceID = 'EC2 instance ID'}`

1. 아래 명령을 실행해서 EC2InstanceID 값이 컴퓨터 객체에 추가되었는지 확인할 수 있습니다.

   `PS C:\> get-adcomputer -Identity computer name –Property example-EC2InstanceID`

# 관련 리소스
<a name="additional"></a>

아래 리소스 링크는 Microsoft 웹사이트에 위치에 있으며 관련 정보를 제공합니다.

 
+ [스키마 확장 (Windows)](https://msdn.microsoft.com/en-us/library/ms676900(v=vs.85).aspx)
+ [Active Directory 스키마 (Windows)](https://msdn.microsoft.com/en-us/library/ms674984(v=vs.85).aspx)
+ [Microsoft Active Directory 스키마](https://technet.microsoft.com/en-us/library/cc961581.aspx)
+ [Windows 관리: Microsoft Active Directory 스키마 확장](https://technet.microsoft.com/en-us/magazine/a39543ba-e561-4933-b590-0878885f44f5)
+ [스키마 확장에 대한 제약 (Windows)](https://msdn.microsoft.com/en-us/library/ms677924(v=vs.85).aspx)
+ [Ldifde](https://technet.microsoft.com/en-us/library/cc731033(v=ws.11).aspx)