Share via


여러 Active Directory 포리스트에서 Azure Files 사용

많은 조직에서 여러 온-프레미스 AD DS(Active Directory Domain Services) 포리스트가 있는 환경에서 SMB Azure 파일 공유에 대한 ID 기반 인증을 사용하려고 합니다. 이는 특히 인수한 회사의 AD 포리스트가 모회사의 AD 포리스트에서 격리되는 인수 합병 이후에 나타나는 일반적인 IT 시나리오입니다. 이 문서에서는 포리스트 트러스트 관계가 작동하는 방식을 설명하고 다중 포리스트 설정 및 유효성 검사에 대한 단계별 지침을 제공합니다.

Important

Azure RBAC(역할 기반 액세스 제어)를 사용하여 특정 Microsoft Entra 사용자 또는 그룹에 대한 공유 수준 권한을 설정하려면 먼저 Microsoft Entra Connect를 사용하여 온-프레미스 AD 계정을 Microsoft Entra ID에 동기화해야 합니다. 그렇지 않은 경우 기본 공유 수준 권한을 사용할 수 있습니다.

적용 대상

파일 공유 유형 SMB NFS
표준 파일 공유(GPv2), LRS/ZRS Yes No
표준 파일 공유(GPv2), GRS/GZRS Yes No
프리미엄 파일 공유(FileStorage), LRS/ZRS Yes No

필수 조건

  • 서로 다른 포리스트를 포함하고 다른 VNET(가상 네트워크)에 있는 두 개의 AD DS 도메인 컨트롤러
  • 관리 작업을 수행하기에 충분한 AD 권한(예: 도메인 관리자)
  • Azure RBAC를 사용하는 경우 단일 Microsoft Entra Connect 동기화 서버에서 두 포리스트에 연결할 수 있어야 합니다.

포리스트 트러스트 관계의 작동 방식

Azure Files 온-프레미스 AD DS 인증은 스토리지 계정이 등록된 도메인 서비스의 AD 포리스트에서만 지원됩니다. 기본적으로 단일 포리스트의 AD DS 자격 증명으로만 Azure 파일 공유에 액세스할 수 있습니다. 다른 포리스트에서 Azure 파일 공유에 액세스해야 하는 경우 포리스트 트러스트를 구성해야 합니다.

포리스트 트러스트는 한 포리스트의 도메인에 있는 사용자가 다른 포리스트의 도메인에서 인증을 받을 수 있도록 하는 두 AD 포리스트 간의 전이적 트러스트입니다.

다중 포리스트 설정

다중 포리스트 설정을 구성하려면 다음 단계를 수행합니다.

  • 도메인 간 도메인 정보 및 VNET 연결 수집
  • 포리스트 트러스트 설정 및 구성
  • ID 기반 인증 및 하이브리드 사용자 계정 설정

도메인 정보 수집

이 연습에서는 두 개의 서로 다른 포리스트가 있고 다른 VNET에 있는 두 개의 온-프레미스 AD DS 도메인 컨트롤러가 있습니다.

포리스트 도메인 VNET
포리스트 1 onpremad1.com DomainServicesVNet WUS
포리스트 2 onpremad2.com vnet2/workloads

트러스트 설정 및 구성

포리스트 1의 클라이언트가 포리스트 2의 Azure Files 도메인 리소스에 액세스할 수 있도록 하려면 두 포리스트 간에 트러스트를 설정해야 합니다. 다음 단계에 따라 트러스트를 설정합니다.

  1. 포리스트 2에 도메인 조인된 컴퓨터에 로그온하고 Active Directory 도메인 및 트러스트 콘솔을 엽니다.

  2. 로컬 도메인 onpremad2.com을 마우스 오른쪽 단추로 클릭한 다음, 트러스트 탭을 선택합니다.

  3. 새 트러스트를 선택하여 새 트러스트 마법사를 시작합니다.

  4. 트러스트를 구축할 도메인 이름(이 예제에서는 onpremad1.com)을 지정하고 다음을 선택합니다.

  5. 트러스트 유형에서 포리스트 트러스트를 선택하고 다음을 선택합니다.

    참고 항목

    Azure Files에는 포리스트 트러스트만 지원됩니다. 외부 트러스트와 같은 다른 트러스트 형식은 지원되지 않습니다.

  6. 트러스트 방향에서 양방향을 선택하고 다음을 선택합니다.

    Screenshot of Active Directory Domains and Trusts console showing how to select a two-way direction for the trust.

  7. 신뢰의 양쪽에 대해 이 도메인만을 선택하고 다음을 선택합니다.

  8. 지정된 포리스트의 사용자는 로컬 포리스트의 모든 리소스(포리스트 전체 인증) 또는 선택한 리소스만(선택적 인증) 사용하도록 인증을 받을 수 있습니다. 나가는 트러스트 인증 수준에서 포리스트 전체 인증을 선택합니다. 이것은 두 포리스트가 동일한 조직에 속하는 경우 기본 옵션입니다. 다음을 선택합니다.

  9. 트러스트에 대한 암호를 입력하고 다음을 선택합니다. 지정된 도메인에서 이 트러스트 관계를 만들 때 동일한 암호를 사용해야 합니다.

    Screenshot of Active Directory Domains and Trusts console showing how to enter a password for the trust.

  10. 트러스트 관계가 성공적으로 생성되었다는 메시지가 표시됩니다. 트러스트를 구성하려면 다음을 선택합니다.

  11. 나가는 트러스트를 확인하고 다음을 선택합니다.

  12. 다른 도메인의 관리자 권한이 있는 사용자의 사용자 이름 및 암호를 입력합니다.

인증이 통과되면 트러스트가 설정되고 트러스트 탭에 지정된 도메인 onpremad1.com이 나열되어야 합니다.

ID 기반 인증 및 하이브리드 사용자 계정 설정

트러스트가 설정되면 다음 단계에 따라 각 도메인에 대한 스토리지 계정 및 SMB 파일 공유를 만들고, 스토리지 계정에서 AD DS 인증을 사용하도록 설정하고, Microsoft Entra ID와 동기화된 하이브리드 사용자 계정을 만듭니다.

  1. Azure Portal에 로그인하고 onprem1saonprem2sa와 같은 두 개의 스토리지 계정을 만듭니다. 성능을 최적화하려면 공유에 액세스하려는 클라이언트와 동일한 지역에 스토리지 계정을 배치하는 것이 좋습니다.

    참고 항목

    두 번째 스토리지 계정을 만들 필요가 없습니다. 이러한 지침은 다른 포리스트에 속하는 스토리지 계정에 액세스하는 방법의 예를 보여 주기 위한 것입니다. 스토리지 계정이 하나만 있는 경우 두 번째 스토리지 계정 설정 지침을 무시할 수 있습니다.

  2. 각 스토리지 계정에 SMB Azure 파일 공유를 만듭니다.

  3. Microsoft Entra 동기화 애플리케이션을 사용하여 Microsoft Entra ID에 온-프레미스 AD를 동기화합니다.

  4. 포리스트 1의 Azure VM을 온-프레미스 AD DS에 도메인 조인합니다. 도메인에 가입하는 방법에 대한 자세한 내용은 컴퓨터를 도메인에 가입을 참조하세요.

  5. 포리스트 1과 연결된 스토리지 계정(예: onprem1sa)에서 AD DS 인증을 사용하도록 설정합니다. 그러면 온-프레미스 AD에 Azure Storage 계정을 나타내고 스토리지 계정을 onpremad1.com 도메인에 조인하기 위한 onprem1sa라는 컴퓨터 계정이 만들어집니다. Active Directory 사용자 및 컴퓨터에서 onpremad1.com을 확인하여 스토리지 계정을 나타내는 AD ID가 생성되었는지 확인할 수 있습니다. 이 예제에서는 onprem1sa라는 컴퓨터 계정이 표시됩니다.

  6. Active Directory > onpremad1.com으로 이동하여 사용자 계정을 만듭니다. 사용자를 마우스 오른쪽 단추로 클릭하고 만들기를 선택하고 사용자 이름(예: onprem1user)을 입력한 다음, 암호가 만료되지 않음 상자를 선택(선택 사항)합니다.

  7. 선택 사항: Azure RBAC를 사용하여 공유 수준 권한을 할당하려면 Microsoft Entra Connect를 사용하여 사용자를 Microsoft Entra ID와 동기화해야 합니다. 일반적으로 Microsoft Entra Connect 동기화는 30분마다 업데이트됩니다. 그러나 관리자 권한 PowerShell 세션을 열고 Start-ADSyncSyncCycle -PolicyType Delta를 실행하여 강제로 즉시 동기화하도록 할 수 있습니다. Import-Module ADSync를 실행하여 먼저 ADSync 모듈을 설치해야 할 수 있습니다. 사용자가 Microsoft Entra ID와 동기화되었는지 확인하려면 다중 포리스트 테넌트와 연결된 Azure 구독으로 Azure Portal에 로그인하고 Microsoft Entra ID를 선택합니다. 관리 > 사용자를 선택하고 추가한 사용자를 검색합니다(예: onprem1user). 온-프레미스 동기화 사용가 표시되어야 합니다.

  8. Azure RBAC 역할 또는 기본 공유 수준 권한을 사용하여 공유 수준 권한을 설정합니다.

Forest2 도메인 onpremad2.com(스토리지 계정 onprem2sa/user onprem2user)에 대해 4-8단계를 반복합니다. 둘 이상의 포리스트가 있는 경우 각 포리스트에 대해 이러한 단계를 반복합니다.

디렉터리 및 파일 수준 권한 구성(선택 사항)

다중 포리스트 환경에서는 icacls 명령줄 유틸리티를 사용하여 두 포리스트의 사용자의 디렉터리 및 파일 수준 권한을 구성합니다. icacls로 Windows ACL 구성을 참조합니다.

Access가 거부되었습니다. 오류로 인해 icacls가 실패하는 경우 다음 단계에 따라 스토리지 계정 키로 공유를 탑재하여 디렉터리 및 파일 수준 권한을 구성합니다.

  1. 기존 공유 탑재를 삭제합니다. net use * /delete /y

  2. 스토리지 계정 키를 사용하여 공유를 다시 탑재합니다.

    net use <driveletter> \\storageaccount.file.core.windows.net\sharename /user:AZURE\<storageaccountname> <storageaccountkey>
    
  3. Forest1의 클라이언트에서 Forest1에 조인된 스토리지 계정의 Forest2 사용자에 대한 icacls 권한을 설정합니다.

참고 항목

파일 탐색기를 사용하여 다중 포리스트 환경에서 ACL을 구성하지 않는 것이 좋습니다. 스토리지 계정에서 도메인에 가입된 포리스트에 속한 사용자는 파일 탐색기를 통해 파일/디렉터리 수준 권한을 설정할 수 있지만 스토리지 계정에서 도메인에 가입된 동일한 포리스트에 속하지 않는 사용자에게는 작동하지 않습니다.

도메인 접미사 구성

위에서 설명한 대로 Azure Files가 AD DS에 등록하는 방법은 인증을 위해 AD DS의 스토리지 계정을 나타내는 ID(기본적으로 컴퓨터 계정이며 서비스 로그온 계정일 수도 있음)를 만드는 일반 파일 서버와 거의 동일합니다. 유일한 차이점은 스토리지 계정의 등록된 SPN(서비스 사용자 이름)이 도메인 접미사와 일치하지 않는 file.core.windows.net으로 끝난다는 것입니다. 도메인 접미사가 다르기 때문에 다중 포리스트 인증을 사용하도록 접미사 라우팅 정책을 구성해야 합니다.

접미사 file.core.windows.net이 특정 AD 도메인의 접미사가 아닌 모든 Azure Files 리소스의 접미사이므로 클라이언트의 도메인 컨트롤러는 요청을 전달할 도메인을 알지 못합니다. 따라서 리소스가 자체 도메인에 없는 모든 요청에 실패합니다.

예를 들어 포리스트 1의 도메인에 있는 사용자가 포리스트 2의 도메인에 대해 등록된 스토리지 계정으로 파일 공유에 연결하려는 경우 스토리지 계정의 서비스 주체에 포리스트 1의 도메인 접미사와 일치하는 접미사가 없기 때문에 이러한 연결이 자동으로 진행되지 않습니다.

다음 방법 중 하나를 사용하여 도메인 접미사를 구성할 수 있습니다.

스토리지 계정 이름 접미사 수정 및 CNAME 레코드 추가

Azure 파일 공유와 연결된 스토리지 계정 이름의 접미사를 수정한 다음, CNAME 레코드를 추가하여 새 접미사를 스토리지 계정의 엔드포인트로 라우팅함으로써 도메인 라우팅 문제를 해결할 수 있습니다. 이 구성을 사용하면 도메인 조인 클라이언트가 모든 포리스트에 조인된 스토리지 계정에 액세스할 수 있습니다. 이 구성은 둘 이상의 포리스트가 있는 환경에서 작동합니다.

이 예제에서는 onpremad1.comonpremad2.com 도메인이 있고, onprem1saonprem2sa를 해당 도메인의 SMB Azure 파일 공유와 연결된 스토리지 계정으로 사용합니다. 이러한 도메인은 서로 다른 포리스트에 있으며 서로의 포리스트에 있는 리소스에 액세스하기 위해 서로 신뢰합니다. 각 포리스트에 속한 클라이언트의 두 스토리지 계정에 대한 액세스를 허용하려고 합니다. 이렇게 하려면 스토리지 계정의 SPN 접미사를 수정해야 합니다.

onprem1sa.onpremad1.com -> onprem1sa.file.core.windows.net

onprem2sa.onpremad2.com -> onprem2sa.file.core.windows.net

이렇게 하면 onpremad1 또는 onpremad2의 클라이언트가 해당 스토리지 계정에 대한 적절한 리소스를 찾기 위해 onpremad1.com을 검색해야 한다는 사실을 알게 되므로 클라이언트가 net use \\onprem1sa.onpremad1.com와의 공유를 탑재할 수 있습니다.

이 방법을 사용하려면 다음 단계를 완료합니다.

  1. 이전 섹션에서 설명한 대로 두 포리스트 간에 트러스트를 설정하고 ID 기반 인증 및 하이브리드 사용자 계정을 설정했는지 확인합니다.

  2. setspn 도구를 사용하여 스토리지 계정의 SPN을 수정합니다. Active Directory PowerShell 명령 (Get-AdDomain).DnsRoot를 실행하여 <DomainDnsRoot>를 찾을 수 있습니다.

    setspn -s cifs/<storage-account-name>.<DomainDnsRoot> <storage-account-name>
    
  3. Active Directory DNS 관리자를 사용하여 CNAME 항목을 추가하고 스토리지 계정이 조인된 도메인의 각 스토리지 계정에 대해 아래 단계를 수행합니다. 프라이빗 엔드포인트를 사용하는 경우 프라이빗 엔드포인트 이름에 매핑할 CNAME 항목을 추가합니다.

    1. Active Directory DNS 관리자를 엽니다.

    2. 도메인(예: onpremad1.com)으로 이동합니다.

    3. "정방향 조회 영역"으로 이동합니다.

    4. 도메인의 이름을 따서 명명된 노드(예: onpremad1.com)를 선택하고 새 별칭(CNAME)을 마우스 오른쪽 단추로 클릭합니다.

    5. 별칭 이름으로 스토리지 계정 이름을 입력합니다.

    6. FQDN(정규화된 도메인 이름)의 경우 <storage-account-name>.<domain-name>(예: mystorageaccount.onpremad1.com)을 입력합니다.

    7. 대상 호스트 FQDN으로 <storage-account-name>.file.core.windows.net을 입력합니다.

    8. 확인을 선택합니다.

      Screenshot showing how to add a CNAME record for suffix routing using Active Directory DNS Manager.

이제 도메인 조인 클라이언트에서 포리스트에 조인된 스토리지 계정을 사용할 수 있습니다.

참고 항목

FQDN의 호스트 이름 부분이 위에서 설명한 대로 스토리지 계정 이름과 일치하는지 확인합니다. 그렇지 않으면 액세스 거부 오류 “파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다.”가 발생합니다. 네트워크 추적은 SMB 세션 설정 중에 STATUS_OBJECT_NAME_INVALID(0xc0000033) 메시지를 표시합니다.

사용자 지정 이름 접미사 및 라우팅 규칙 추가

이전 섹션에서 설명한 대로 스토리지 계정 이름 접미사를 이미 수정하고 CNAME 레코드를 추가한 경우 이 단계를 건너뛸 수 있습니다. DNS를 변경하거나 스토리지 계정 이름 접미사를 수정하지 않으려는 경우 사용자 지정 접미사 file.core.windows.net에 대해 포리스트 1에서 포리스트 2로의 접미사 라우팅 규칙을 구성할 수 있습니다.

참고 항목

이름 접미사 라우팅을 구성해도 로컬 도메인의 리소스에 액세스하는 기능에는 영향을 주지 않습니다. 리소스가 자체 도메인에 없는 경우 클라이언트가 접미사와 일치하는 도메인에 요청을 전달할 수 있도록 허용하기만 하면 됩니다.

먼저 포리스트 2에 새 사용자 지정 접미사를 추가합니다. 구성을 변경할 적절한 관리 권한이 있고 두 포리스트 간에 트러스트를 설정했는지 확인합니다. 그런 다음, 다음 단계를 수행합니다.

  1. 포리스트 2의 도메인 조인 컴퓨터 또는 VM에 로그온합니다.
  2. Active Directory 도메인 및 트러스트 콘솔을 엽니다.
  3. Active Directory 도메인 및 트러스트를 마우스 오른쪽 단추로 클릭합니다.
  4. 속성을 선택한 후 추가를 선택합니다.
  5. “file.core.windows.net”을 UPN 접미사로 추가합니다.
  6. 적용을 클릭한 다음, 확인을 클릭하여 마법사를 닫습니다.

그런 다음, 포리스트 1에 접미사 라우팅 규칙을 추가하여 포리스트 2로 리디렉션합니다.

  1. 포리스트 1의 도메인 조인 컴퓨터 또는 VM에 로그온합니다.
  2. Active Directory 도메인 및 트러스트 콘솔을 엽니다.
  3. 파일 공유에 액세스할 도메인을 마우스 오른쪽 단추로 클릭한 다음, 트러스트 탭을 선택하고 나가는 트러스트에서 포리스트 2 도메인을 선택합니다.
  4. 속성을 선택한 다음, 이름 접미사 라우팅을 선택합니다.
  5. “*.file.core.windows.net” 접미사가 표시되는지 확인합니다. 그렇지 않은 경우 새로 고침을 선택합니다.
  6. "*.file.core.windows.net"을 선택한 다음, 사용적용을 선택합니다.

트러스트가 작동하는지 확인

이제 klist 명령을 통해 Kerberos 자격 증명 캐시 및 키 테이블의 내용을 표시하여 트러스트가 작동하는지 확인합니다.

  1. 포리스트 1의 도메인 조인 컴퓨터 또는 VM에 로그온하고 Windows 명령 프롬프트를 엽니다.
  2. 포리스트 2의 도메인 조인 스토리지 계정에 대한 자격 증명 캐시를 표시하려면 다음 명령 중 하나를 실행합니다.
  3. 다음과 비슷한 결과가 표시됩니다. klist 출력은 도메인 접미사를 구성하는 데 사용한 방법에 따라 약간 다릅니다.
Client: onprem1user @ ONPREMAD1.COM
Server: cifs/onprem2sa.file.core.windows.net @ ONPREMAD2.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
Start Time: 11/22/2022 18:45:02 (local)
End Time: 11/23/2022 4:45:02 (local)
Renew Time: 11/29/2022 18:45:02 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
Kdc Called: onprem2.onpremad2.com
  1. 포리스트 2의 도메인 조인 컴퓨터 또는 VM에 로그온하고 Windows 명령 프롬프트를 엽니다.
  2. 포리스트 1의 도메인 조인 스토리지 계정에 대한 자격 증명 캐시를 표시하려면 다음 명령 중 하나를 실행합니다.
  3. 다음과 비슷한 결과가 표시됩니다. klist 출력은 도메인 접미사를 구성하는 데 사용한 방법에 따라 약간 다릅니다.
Client: onprem2user @ ONPREMAD2.COM
Server: krbtgt/ONPREMAD2.COM @ ONPREMAD2.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e10000 -> forwardable renewable pre_authent name_canonicalize
Start Time: 11/22/2022 18:46:35 (local)
End Time: 11/23/2022 4:46:35 (local)
Renew Time: 11/29/2022 18:46:35 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: onprem2

Client: onprem2user @ ONPREMAD2.COM    
Server: cifs/onprem1sa.file.core.windows.net @ ONPREMAD1.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
Start Time: 11/22/2022 18:46:35 (local)
End Time: 11/23/2022 4:46:35 (local)
Renew Time: 11/29/2022 18:46:35 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
Kdc Called: onpremad1.onpremad1.com

위의 출력이 표시되면 완료된 것입니다. 그렇지 않은 경우 다음 단계에 따라 다중 포리스트 인증이 작동하도록 대체 UPN 접미사를 제공합니다.

Important

이 방법은 포리스트가 두 개 있는 환경에서만 작동합니다. 포리스트가 두 개 이상인 경우 다른 방법 중 하나를 사용하여 도메인 접미사를 구성합니다.

먼저 포리스트 1에 새 사용자 지정 접미사를 추가합니다.

  1. 포리스트 1의 도메인 조인 컴퓨터 또는 VM에 로그온합니다.
  2. Active Directory 도메인 및 트러스트 콘솔을 엽니다.
  3. Active Directory 도메인 및 트러스트를 마우스 오른쪽 단추로 클릭합니다.
  4. 속성을 선택한 후 추가를 선택합니다.
  5. "onprem1sa.file.core.windows.net"과 같은 대체 UPN 접미사를 추가합니다.
  6. 적용을 클릭한 다음, 확인을 클릭하여 마법사를 닫습니다.

다음으로 포리스트 2에 접미사 라우팅 규칙을 추가합니다.

  1. 포리스트 2의 도메인 조인 컴퓨터 또는 VM에 로그온합니다.
  2. Active Directory 도메인 및 트러스트 콘솔을 엽니다.
  3. 파일 공유에 액세스하려는 도메인을 마우스 오른쪽 단추로 클릭하고 트러스트 탭을 선택하고 접미사 라우팅 이름이 추가된 포리스트 2의 나가는 트러스트를 선택합니다.
  4. 속성을 선택한 다음, 이름 접미사 라우팅을 선택합니다.
  5. "onprem1sa.file.core.windows.net" 접미사가 표시되는지 확인합니다. 그렇지 않은 경우 새로 고침을 선택합니다.
  6. "onprem1sa.file.core.windows.net"을 선택한 다음, 사용적용을 선택합니다.

다음 단계

자세한 내용은 다음 리소스를 참조하세요.