Azure Files에 액세스하기 위해 온-프레미스 AD DS와 Microsoft Entra ID 간에 클라우드 트러스트 구성
많은 조직에서는 온-프레미스 Active Directory AD DS(Domain Services) 및 Microsoft Entra ID(이전의 Azure Active Directory)에 걸쳐 있지만 필요한 운영 체제 또는 도메인 필수 구성 요소를 충족하지 않는 환경에서 SMB Azure 파일 공유에 ID 기반 인증을 사용하려고 합니다.
이러한 시나리오에서 고객은 하이브리드 사용자 ID에 대해 Microsoft Entra Kerberos 인증을 사용하도록 설정한 다음 온-프레미스 AD DS와 Microsoft Entra ID 간에 클라우드 트러스트를 설정하여 온-프레미스 자격 증명을 사용하여 SMB 파일 공유에 액세스할 수 있습니다. 이 문서에서는 클라우드 트러스트의 작동 방식을 설명하고 설정 및 유효성 검사에 대한 지침을 제공합니다. 또한 Microsoft Entra ID 및 신뢰할 수 있는 도메인 개체에서 서비스 계정에 대한 Kerberos 키를 회전하는 단계와 원하는 경우 신뢰할 수 있는 도메인 개체 및 모든 Kerberos 설정을 제거하는 단계도 포함됩니다.
이 문서에서는 Microsoft Entra Connect 또는 Microsoft Entra Connect 클라우드 동기화를 사용하여 Microsoft Entra ID에 동기화되는 온-프레미스 AD DS ID인 하이브리드 사용자 ID를 인증하는 데 중점을 둡니다. 클라우드 전용 ID는 현재 Azure Files에서 지원되지 않습니다.
적용 대상
파일 공유 유형 | SMB | NFS |
---|---|---|
표준 파일 공유(GPv2), LRS/ZRS | ||
표준 파일 공유(GPv2), GRS/GZRS | ||
프리미엄 파일 공유(FileStorage), LRS/ZRS |
시나리오
다음은 클라우드 트러스트를 구성할 수 있는 시나리오의 예입니다.
기존 온-프레미스 AD DS가 있지만 도메인 컨트롤러에 대한 방해받지 않는 네트워크 연결이 없으므로 인증에 사용할 수 없습니다.
클라우드로 마이그레이션을 시작했지만 현재 기존 온-프레미스 AD DS에서 애플리케이션이 계속 실행되고 있습니다.
일부 또는 모든 클라이언트 컴퓨터가 Microsoft Entra Kerberos 인증에 대한 운영 체제 요구 사항을 충족하지 않습니다.
사용 권한
이 문서에 설명된 단계를 완료하려면 다음이 필요합니다.
- 온-프레미스 Active Directory 관리자 사용자 이름 및 암호
- Microsoft Entra 전역 관리자 계정 사용자 이름 및 암호
필수 조건
들어오는 신뢰 기반 인증 흐름을 구현하기 전에 다음 필수 구성 요소가 충족되는지 확인합니다.
필수 구성 요소 | 설명 |
---|---|
클라이언트는 Windows 10, Windows Server 2012 또는 상위 버전의 Windows를 실행해야 합니다. | |
클라이언트는 AD(Active Directory)에 조인되어야 합니다. 도메인의 기능 수준은 Windows Server 2012 이상이어야 합니다. | dsregcmd 명령을 실행하여 클라이언트가 AD에 조인되었는지 확인할 수 있습니다. dsregcmd.exe /status |
Microsoft Entra 테넌트. | Microsoft Entra 테넌트는 조직의 IT 부서를 제어하는 ID 보안 경계입니다. 단일 조직에 대한 정보가 상주하는 Microsoft Entra ID의 인스턴스입니다. |
인증에 사용하려는 동일한 Microsoft Entra 테넌트에 있는 Azure 구독입니다. | |
Azure 구독의 Azure Storage 계정입니다. | Azure Storage 계정은 파일을 포함하여 Azure Storage의 모든 데이터 서비스를 그룹화하기 위한 컨테이너 역할을 하는 리소스입니다. |
Microsoft Entra Connect 또는 Microsoft Entra Connect 클라우드 동기화 를 설치해야 합니다. | 이러한 솔루션은 Microsoft Entra ID 및 온-프레미스 AD DS에 ID가 모두 존재하는 하이브리드 환경에서 사용됩니다. |
Microsoft Entra Kerberos 인증 사용
스토리지 계정에서 Microsoft Entra Kerberos 인증을 이미 사용하도록 설정한 경우 이 단계를 건너뛰고 Microsoft Entra Kerberos 신뢰할 수 있는 도메인 개체 만들기 및 구성을 진행할 수 있습니다.
Azure Portal, PowerShell 또는 Azure CLI를 사용하여 하이브리드 사용자 계정에 대해 Azure Files에서 Microsoft Entra Kerberos 인증을 사용하도록 설정할 수 있습니다.
Azure Portal을 사용하여 Microsoft Entra Kerberos 인증을 사용하도록 설정하려면 다음 단계를 수행합니다.
Azure Portal에 로그인하고, Microsoft Entra Kerberos 인증을 사용하도록 설정하려는 스토리지 계정을 선택합니다.
데이터 스토리지에서 파일을 선택합니다.
Active Directory 옆에서 구성 상태를 선택합니다(예: 구성되지 않음).
Microsoft Entra Kerberos에서 설정을 선택합니다.
Microsoft Entra Kerberos 확인란을 선택합니다.
선택 사항: Windows 파일 탐색기를 통해 디렉터리 및 파일 수준 권한을 구성하려면 온-프레미스 AD에 대한 도메인 이름과 도메인 GUID를 지정해야 합니다. 이 정보는 도메인 관리자에서 가져오거나 온-프레미스 AD 조인 클라이언트에서
Get-ADDomain
Active Directory PowerShell cmdlet을 실행하여 가져올 수 있습니다. 도메인 이름은DNSRoot
아래의 출력에 나열되어야 하며 도메인 GUID는ObjectGUID
아래에 나열되어야 합니다. icacls를 사용하여 디렉터리 및 파일 수준 권한을 구성하려는 경우 이 단계를 건너뛸 수 있습니다. 그러나 icacls를 사용하려면 클라이언트에서 온-프레미스 AD에 대한 방해받지 않는 네트워크 연결이 필요합니다.저장을 선택합니다.
Warning
이전에 Microsoft Entra 조인 VM에 대한 Azure Files의 FSLogix 프로필을 저장하는 수동 제한된 미리 보기 단계를 통해 Microsoft Entra Kerberos 인증을 사용하도록 설정한 경우 스토리지 계정의 서비스 주체에 대한 암호는 6개월마다 만료되도록 설정됩니다. 암호가 만료되면 사용자는 파일 공유에 대한 Kerberos 티켓을 가져올 수 없습니다. 이를 완화하려면 하이브리드 사용자에 대해 Microsoft Entra Kerberos 인증을 사용하도록 설정할 때 발생할 수 있는 오류에서 "오류 - Microsoft Entra ID에서 서비스 주체 암호가 만료되었습니다."를 참조하세요.
새 서비스 주체에 대한 관리자 동의 허용
Microsoft Entra Kerberos 인증을 사용하도록 설정한 후 관리자 동의를 Microsoft Entra 테넌트에 등록된 새 Microsoft Entra 애플리케이션에 명시적으로 부여해야 합니다. 이 서비스 주체는 자동으로 생성되며 파일 공유에 대한 권한 부여에 사용되지 않으므로 여기에 설명된 것 외에는 서비스 주체를 편집하지 마세요. 이렇게 하면 오류가 발생할 수 있습니다.
다음 단계에 따라 Azure Portal에서 API 권한을 구성할 수 있습니다.
- Microsoft Entra ID를 엽니다.
- 서비스 메뉴의 관리에서 앱 등록을 선택합니다.
- 모든 애플리케이션을 선택합니다.
- 이름이 [Storage Account]
<your-storage-account-name>
.file.core.windows.net과 일치하는 애플리케이션을 선택합니다. - 서비스 메뉴의 관리에서 API 권한을 선택합니다.
- [디렉터리 이름]에 대한 관리자 동의 부여를 선택하여 디렉터리의 모든 계정에 대해 요청된 세 가지 API 권한(openid, profile, User.Read)에 대한 동의를 부여합니다.
- 예를 선택하여 확인합니다.
Important
Microsoft Entra Kerberos 인증을 사용하여 프라이빗 엔드포인트/프라이빗 링크를 통해 스토리지 계정에 연결하는 경우 스토리지 계정의 Microsoft Entra 애플리케이션에도 프라이빗 링크 FQDN을 추가해야 합니다. 자세한 내용은 문제 해결 가이드의 항목을 참조하세요.
스토리지 계정에서 다단계 인증 사용 안 함
Microsoft Entra Kerberos는 MFA를 사용하여 Microsoft Entra Kerberos로 구성된 Azure Files 공유에 액세스하도록 지원하지 않습니다. 모든 앱에 적용되는 경우 스토리지 계정을 나타내는 Microsoft Entra 앱을 MFA 조건부 액세스 정책에서 제외해야 합니다.
스토리지 계정 앱의 이름은 조건부 액세스 제외 목록의 스토리지 계정과 동일해야 합니다. 조건부 액세스 제외 목록에서 스토리지 계정 앱을 검색할 때 다음을 검색합니다. [Storage Account] <your-storage-account-name>
.file.core.windows.net
<your-storage-account-name>
을 적절한 값으로 바꿔야 합니다.
Important
스토리지 계정 앱에서 MFA 정책을 제외하지 않으면 파일 공유에 액세스할 수 없습니다. net use
를 사용하여 파일 공유를 매핑하려고 하면 "시스템 오류 1327: 계정 제한으로 인해 이 사용자가 로그인할 수 없습니다. 예를 들어 빈 암호가 허용되지 않거나, 로그인 시간이 제한되거나, 정책 제한이 적용되었습니다."라는 오류 메시지가 나타납니다. 예를 들어 빈 암호가 허용되지 않거나, 로그인 시간이 제한되거나, 정책 제한이 적용되었습니다."라는 오류 메시지가 나타납니다.
MFA를 사용하지 않도록 설정하는 방법에 대한 지침은 다음을 참조하세요.
공유 수준 권한 할당
ID 기반 액세스를 사용하도록 설정하는 경우 각 공유에 대해 특정 공유에 액세스할 수 있는 사용자 및 그룹을 할당해야 합니다. 사용자 또는 그룹이 공유에 액세스할 수 있게 되면 개별 파일 및 디렉터리에 대한 Windows ACL(NTFS 권한이라고도 함)이 인계됩니다. 이렇게 하면 Windows 서버의 SMB 공유와 비슷하게 권한을 세부적으로 제어할 수 있습니다.
공유 수준 권한을 설정하려면 ID에 공유 수준 권한 할당의 지침을 따릅니다.
디렉터리 및 파일 수준 권한 구성
공유 수준 권한이 있으면 사용자 또는 그룹에 디렉터리/파일 수준 권한을 할당할 수 있습니다. 이를 위해서는 온-프레미스 AD에 대한 네트워크 연결이 방해받지 않는 디바이스를 사용해야 합니다.
디렉터리 및 파일 수준 권한을 구성하려면 SMB를 통한 디렉터리 및 파일 수준 권한 구성의 지침을 따릅니다.
Microsoft Entra Kerberos 트러스트된 도메인 개체 만들기 및 구성
Microsoft Entra Kerberos 신뢰할 수 있는 도메인 개체를 만들고 구성하려면 Azure AD 하이브리드 인증 관리 PowerShell 모듈을 사용합니다. 이 모듈을 사용하면 하이브리드 ID 조직이 애플리케이션에 최신 자격 증명을 사용할 수 있으며 Microsoft Entra ID가 클라우드 및 온-프레미스 인증의 신뢰할 수 있는 원본이 될 수 있습니다.
트러스트된 도메인 개체 설정
Azure AD 하이브리드 인증 관리 PowerShell 모듈을 사용하여 온-프레미스 AD 도메인에서 신뢰할 수 있는 도메인 개체를 설정하고 Microsoft Entra ID에 신뢰 정보를 등록합니다. 이렇게 하면 온-프레미스 AD에 인바운드 트러스트 관계가 생성되며 이를 통해 Microsoft Entra ID에서 온-프레미스 AD를 신뢰할 수 있습니다.
도메인당 한 번만 신뢰할 수 있는 도메인 개체를 설정하면 됩니다. 도메인에 대해 이미 이 작업을 수행한 경우 이 섹션을 건너뛰고 Kerberos 티켓을 검색하도록 클라이언트 구성을 진행할 수 있습니다.
Azure AD 하이브리드 인증 관리 PowerShell 모듈 설치
관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell 세션을 시작합니다.
다음 스크립트를 사용하여 Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다. 이 스크립트는
- 통신에 TLS 1.2를 사용합니다.
- NuGet 패키지 제공자를 설치합니다.
- PSGallery 리포지토리를 등록합니다.
- PowerShellGet 모듈을 설치합니다.
- Azure AD 하이브리드 인증 관리 PowerShell 모듈을 설치합니다.
- Azure AD 하이브리드 인증 관리 PowerShell은 고급 Microsoft Entra 관리 기능을 제공하는 AzureADPreview 모듈을 사용합니다.
- Azure AD PowerShell 모듈과의 불필요한 설치 충돌으로부터 보호하기 위해 이 명령에는 옵션 플래그가
-AllowClobber
포함됩니다.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -Force
if (@(Get-PSRepository | ? {$_.Name -eq "PSGallery"}).Count -eq 0){
Register-PSRepository -DefaultSet-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}
Install-Module -Name PowerShellGet -Force
Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber
트러스트된 도메인 개체 만들기
관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell 세션을 시작합니다.
공통 매개 변수를 설정합니다. 스크립트를 실행하기 전에 아래 스크립트를 사용자 지정합니다.
$domain
매개 변수를 온-프레미스 Active Directory 도메인 이름으로 설정합니다.Get-Credential
이라는 메시지가 표시되면 온-프레미스 Active Directory 관리자 사용자 이름 및 암호를 입력합니다.$cloudUserName
매개 변수를 Microsoft Entra 클라우드 액세스에 대한 전역 관리자 권한 계정의 사용자 이름으로 설정합니다.
참고 항목
온-프레미스 Active Directory 액세스에 현재 Windows 로그인 계정을 사용하려는 경우 자격 증명이
$domainCred
매개 변수에 할당되는 단계를 건너뛸 수 있습니다. 이 방법을 사용하는 경우 이 단계 다음 PowerShell 명령에 매개 변수를 포함하지-DomainCredential
마세요.$domain = "your on-premises domain name, for example contoso.com" $domainCred = Get-Credential $cloudUserName = "Azure AD user principal name, for example admin@contoso.onmicrosoft.com"
현재 Kerberos 도메인 설정을 확인합니다.
다음 명령을 실행하여 도메인의 현재 Kerberos 설정을 확인합니다.
Get-AzureAdKerberosServer -Domain $domain ` -DomainCredential $domainCred ` -UserPrincipalName $cloudUserName
Microsoft Entra Kerberos 명령을 처음 호출하면 Microsoft Entra 클라우드 액세스에 대한 메시지가 표시됩니다.
- Microsoft Entra 글로벌 관리자 계정의 비밀번호를 입력합니다.
- 조직에서 Microsoft Entra 다단계 인증이나 스마트 카드와 같은 다른 최신 인증 방법을 사용하는 경우 로그인 요청대로 지침을 따릅니다.
Microsoft Entra Kerberos 설정을 처음 구성하는 경우 다음 샘플 출력과 같이 Get-AzureAdKerberosServer cmdlet에 빈 정보가 표시됩니다.
ID : UserAccount : ComputerAccount : DisplayName : DomainDnsName : KeyVersion : KeyUpdatedOn : KeyUpdatedFrom : CloudDisplayName : CloudDomainDnsName : CloudId : CloudKeyVersion : CloudKeyUpdatedOn : CloudTrustDisplay :
도메인이 이미 FIDO 인증을 지원하는 경우
Get-AzureAdKerberosServer
cmdlet에는 다음 샘플 출력과 같이 Microsoft Entra 서비스 계정 정보가 표시됩니다.CloudTrustDisplay
필드는 빈 값을 반환합니다.ID : XXXXX UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=contoso, DC=com ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=contoso, DC=com DisplayName : XXXXXX_XXXXX DomainDnsName : contoso.com KeyVersion : 53325 KeyUpdatedOn : 2/24/2024 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.contoso.com CloudDisplayName : XXXXXX_XXXXX CloudDomainDnsName : contoso.com CloudId : XXXXX CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2024 9:03:15 AM CloudTrustDisplay :
트러스트된 도메인 개체를 추가합니다.
Set-AzureAdKerberosServer PowerShell cmdlet을 실행하여 트러스트된 도메인 개체를 추가합니다.
-SetupCloudTrust
매개 변수를 포함해야 합니다. Microsoft Entra 서비스 계정이 없으면 이 명령은 새 Microsoft Entra 서비스 계정을 만듭니다. Microsoft Entra 서비스 계정이 있으면 이 명령은 요청된 트러스트된 도메인 개체만 만듭니다.Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
참고 항목
여러 도메인 포리스트의 자식 도메인에서 명령을 실행할 때 LsaCreateTrustedDomainEx 0x549 오류를 방지하려면 다음을 수행합니다.
- 루트 도메인(
-SetupCloudTrust
매개 변수 포함)에서 명령을 실행합니다. -SetupCloudTrust
매개 변수 없이 자식 도메인에서 같은 명령을 실행합니다.
트러스트된 도메인 개체를 만든 후 이전 단계와 같이
Get-AzureAdKerberosServer
PowerShell cmdlet을 사용하여 업데이트된 Kerberos 설정을 확인할 수 있습니다.Set-AzureAdKerberosServer
cmdlet이-SetupCloudTrust
매개 변수를 사용하여 성공적으로 실행된 경우 다음 샘플 출력과 같이CloudTrustDisplay
필드가 이제Microsoft.AzureAD.Kdc.Service.TrustDisplay
를 반환해야 합니다.ID : XXXXX UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=contoso, DC=com ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=contoso, DC=com DisplayName : XXXXXX_XXXXX DomainDnsName : contoso.com KeyVersion : 53325 KeyUpdatedOn : 2/24/2024 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.contoso.com CloudDisplayName : XXXXXX_XXXXX CloudDomainDnsName : contoso.com CloudId : XXXXX CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2024 9:03:15 AM CloudTrustDisplay : Microsoft.AzureAD.Kdc.Service.TrustDisplay
참고 항목
Azure 소버린 클라우드는 기본적으로
windows.net
으로 설정되는TopLevelNames
속성을 설정해야 합니다. SQL Managed Instance의 Azure 소버린 클라우드 배포는 Azure 미국 정부의usgovcloudapi.net
처럼 다른 최상위 도메인 이름을 사용합니다.Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net"
PowerShell 명령을 사용하여 트러스트된 도메인 개체를 최상위 도메인 이름으로 설정합니다.Get-AzureAdKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay
PowerShell 명령을 사용하여 설정을 확인할 수 있습니다.- 루트 도메인(
Kerberos 티켓을 검색하도록 클라이언트 구성
Microsoft Entra 테넌트 ID를 식별하고 그룹 정책을 사용하여 Azure 파일 공유를 탑재/사용하려는 클라이언트 컴퓨터를 구성합니다. Azure Files를 사용할 모든 클라이언트에서 이 작업을 수행해야 합니다.
클라이언트에서 이 그룹 정책을 "사용"으로 구성합니다. Administrative Templates\System\Kerberos\Allow retrieving the Azure AD Kerberos Ticket Granting Ticket during logon
수신 신뢰 기반 흐름을 사용하여 클라이언트 머신에 다음 그룹 정책 설정을 배포합니다.
관리 템플릿\System\Kerberos\Kerberos 클라이언트에 대한 KDC 프록시 서버 지정 정책 설정을 편집합니다.
사용을 선택합니다.
옵션 아래에서 표시...를 선택합니다. 그러면 콘텐츠 표시 대화 상자가 열립니다.
다음과 같이 매핑을 사용하여 KDC 프록시 서버 설정을 정의합니다.
your_Azure_AD_tenant_id
자리 표시자로 Microsoft Entra 테넌트 ID를 대체합니다. 값 매핑에서https
뒤의 공간과/
닫기 전의 공간을 확인합니다.값 이름 값 KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443: your_Azure_AD_tenant_id
/kerberos />확인을 선택하여 '콘텐츠 표시' 대화 상자를 닫습니다.
'Kerberos 클라이언트에 대한 KDC 프록시 서버 지정' 대화 상자에서 적용을 선택합니다.
Kerberos 키 회전
유지 관리 목적으로 만든 Microsoft Entra 서비스 계정과 트러스트된 도메인 개체의 Kerberos 키를 주기적으로 회전할 수 있습니다.
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey
키가 회전되면 Kerberos KDC 서버 간에 변경된 키를 전파하는 데 몇 시간이 걸립니다. 이 키 배포 타이밍으로 인해 키를 24시간 이내에 한 번 회전할 수 있습니다. 트러스트된 도메인 개체 생성 직후와 같은 이유로 키를 24시간 이내에 다시 회전해야 하는 경우 -Force
매개 변수를 추가할 수 있습니다.
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey -Force
트러스트된 도메인 개체 제거
다음 명령을 사용하여 추가된 트러스트된 도메인 개체를 제거할 수 있습니다.
Remove-AzureADKerberosServerTrustedDomainObject -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName
이 명령은 트러스트된 도메인 개체만 제거합니다. 도메인에서 FIDO 인증을 지원하는 경우 FIDO 인증 서비스에 필요한 Microsoft Entra 서비스 계정을 유지하면서 트러스트된 도메인 개체를 제거할 수 있습니다.
모든 Kerberos 설정 제거
다음 명령을 사용하여 Microsoft Entra 서비스 계정과 트러스트된 도메인 개체 모두 제거할 수 있습니다.
Remove-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName