다음을 통해 공유


Azure 파일 공유에 대한 디렉터리 및 파일 수준 권한 구성

적용 대상: ✔️ SMB Azure 파일 공유

이 문서를 시작하기 전에 AZURE RBAC(역할 기반 액세스 제어)를 사용하여 ID에 공유 수준 권한을 할당 해야 합니다.

공유 수준 권한을 할당한 후 루트, 디렉터리 또는 파일 수준에서 NTFS 권한이라고도 하는 Windows ACL(액세스 제어 목록)을 구성할 수 있습니다.

중요

하이브리드 ID에 대해 Windows ACL을 구성하려면 도메인 컨트롤러에 대한 네트워크 연결이 방해받지 않는 Windows를 실행하는 클라이언트 컴퓨터가 필요합니다. 하이브리드 ID에 대해 AD DS(Active Directory Domain Services) 또는 Microsoft Entra Kerberos를 사용하여 Azure Files로 인증하는 경우 온-프레미스 AD에 대한 방해받지 않은 네트워크 연결이 필요합니다. Microsoft Entra Domain Services를 사용하는 경우 클라이언트 컴퓨터는 Azure에 있는 Microsoft Entra Domain Services에서 관리하는 도메인의 도메인 컨트롤러에 대한 네트워크 연결이 방해받지 않아야 합니다. 클라우드 전용 ID(미리 보기)의 경우 도메인 컨트롤러에 대한 종속성은 없지만 디바이스를 Microsoft Entra ID에 조인해야 합니다.

Azure RBAC 및 Windows ACL이 함께 작동하는 방법

RBAC(공유 수준 권한)는 사용자가 공유에 액세스할 수 있는지 여부를 결정하는 상위 수준 게이트키퍼 역할을 하지만, Windows ACL(NTFS 권한)은 사용자가 디렉터리 또는 파일 수준에서 수행할 수 있는 작업을 제어하기 위해 보다 세분화된 수준에서 작동합니다.

사용자가 파일 또는 디렉터리에 액세스하려고 하면 공유 수준 및 파일/디렉터리 수준 권한이 모두 적용됩니다. 둘 중 하나에 차이가 있는 경우 가장 제한적인 것만 적용됩니다. 예를 들어 사용자가 파일 수준에서는 읽기/쓰기 액세스 권한을 가지고 있고 공유 수준에서는 읽기 액세스 권한만 가지고 있으면 해당 파일을 읽을 수만 있습니다. 사용 권한이 취소된 경우에도 동일한 규칙이 적용됩니다. 사용자가 공유 수준에서 읽기/쓰기 권한이 있지만 파일 수준에서만 읽는 경우 파일만 읽을 수 있습니다.

다음 표에서는 공유 수준 권한과 Windows ACL의 조합이 함께 작동하여 Azure Files의 파일 또는 디렉터리에 대한 액세스를 확인하는 방법을 보여 줍니다.

RBAC 역할 없음 RBAC - SMB 공유 읽기 권한자 RBAC - SMB 공유 기여자 RBAC - SMB 공유 높은 권한 기여자
NTFS - 없음 액세스 거부됨 액세스 거부됨 액세스 거부됨 액세스 거부됨
NTFS - 읽기 액세스 거부됨 Read Read Read
NTFS - 실행 및 수행 액세스 거부됨 Read Read Read
NTFS - 폴더 목록 보기 액세스 거부됨 Read Read Read
NTFS - 쓰기 액세스 거부됨 Read 읽기, 실행, 쓰기 읽기, 쓰기
NTFS - 수정 액세스 거부됨 Read 읽기, 쓰기, 실행, 삭제 읽기, 쓰기, 실행, 삭제, 사용자 고유의 폴더/파일에 권한 적용
NTFS - 전체 액세스 거부됨 Read 읽기, 쓰기, 실행, 삭제 읽기, 쓰기, 실행, 삭제, 모든 사용자의 폴더/파일에 사용 권한 적용

참고

ACL 구성에 대한 폴더 또는 파일의 소유권을 얻으려면 추가 RBAC 권한이 필요합니다. SMB 관리자에 대한 Windows 권한 모델을 사용하면 권한을 포함하는 기본 제공 RBAC 역할 스토리지 파일 데이터 SMB 관리자를 할당하여 이를 부여할 takeOwnership 수 있습니다.

지원되는 Windows ACL

Azure Files는 기본 및 고급 Windows ACL 전체를 지원합니다.

사용자 정의
BUILTIN\Administrators 파일 서버의 관리자를 나타내는 기본 제공 보안 그룹입니다. 이 그룹은 비어 있으며 아무도 추가할 수 없습니다.
BUILTIN\Users 파일 서버의 사용자를 나타내는 기본 제공 보안 그룹입니다. 기본적으로 NT AUTHORITY\Authenticated Users을(를) 포함합니다. 기존 파일 서버의 경우 서버당 멤버 자격 정의를 구성할 수 있습니다. Azure Files의 경우 호스팅 서버가 없으므로 BUILTIN\Users 동일한 사용자 NT AUTHORITY\Authenticated Users집합을 포함합니다.
NT AUTHORITY\SYSTEM 파일 서버의 운영 체제에 대한 서비스 계정입니다. 이러한 서비스 계정은 Azure Files 컨텍스트에서 적용되지 않습니다. 하이브리드 시나리오에 대한 Windows Files Server 환경과 일치하도록 루트 디렉터리에 포함되어 있습니다.
NT AUTHORITY\Authenticated Users 유효한 Kerberos 티켓을 가져올 수 있는 AD의 모든 사용자입니다.
CREATOR OWNER 디렉터리 또는 파일의 각 개체에는 해당 개체의 소유자가 있습니다. 해당 개체에 할당된 CREATOR OWNER ACL이 있는 경우 이 개체의 소유자인 사용자에게 ACL에서 정의한 개체에 대한 권한이 있습니다.

파일 공유의 루트 디렉터리에는 다음 권한이 포함됩니다.

  • BUILTIN\Administrators:(OI)(CI)(F)
  • BUILTIN\Users:(RX)
  • BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
  • NT AUTHORITY\Authenticated Users:(OI)(CI)(M)
  • NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  • NT AUTHORITY\SYSTEM:(F)
  • CREATOR OWNER:(OI)(CI)(IO)(F)

이러한 권한에 대한 자세한 내용은 icacls에 대한 명령줄 참조를 참조하세요.

관리자 수준 액세스 권한으로 파일 공유 탑재

Windows ACL을 구성하기 전에 관리자 수준 액세스 권한으로 파일 공유를 탑재합니다. 다음 두 가지 방법을 사용할 수 있습니다.

  • SMB 관리자용 Windows 권한 모델 사용: ACL을 구성하는 사용자에게 필요한 권한을 포함하는 기본 제공 RBAC 역할 스토리지 파일 데이터 SMB 관리자를 할당합니다. 그런 다음 ID 기반 인증 을 사용하여 파일 공유를 탑재하고 ACL을 구성합니다. 이 방법은 파일 공유를 탑재하는 데 스토리지 계정 키가 필요하지 않기 때문에 더 안전합니다.

  • 스토리지 계정 키 사용(권장되지 않음) : 스토리지 계정 키를 사용하여 파일 공유를 탑재한 다음 ACL을 구성합니다. 스토리지 계정 키는 중요한 자격 증명입니다. 보안상의 이유로 ID 기반 인증을 사용할 수 없는 경우에만 이 옵션을 사용합니다.

참고

사용자에게 모든 권한 ACL 및 스토리지 파일 데이터 SMB 공유 관리자 역할 (또는 필요한 권한이 있는 사용자 지정 역할)이 있는 경우 SMB 관리자 또는 스토리지 계정 키에 대한 Windows 권한 모델을 사용하지 않고 ACL을 구성할 수 있습니다.

SMB 관리자용 Windows 권한 모델 사용

스토리지 계정 키를 사용하는 대신 SMB 관리자용 Windows 권한 모델을 사용하는 것이 좋습니다. 이 기능을 사용하면 사용자에게 기본 제공 RBAC 역할 스토리지 파일 데이터 SMB 관리자 를 할당하여 ACL을 구성하기 위해 파일 또는 디렉터리의 소유권을 가져올 수 있습니다.

스토리지 파일 데이터 SMB 관리자 RBAC 역할에는 다음 세 가지 데이터 작업이 포함됩니다.

  • Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

SMB 관리자용 Windows 권한 모델을 사용하려면 다음 단계를 수행합니다.

  1. ACL을 구성하는 사용자에게 스토리지 파일 데이터 SMB 관리자 RBAC 역할을 할당합니다. 역할을 할당하는 방법에 대한 지침은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

  2. 사용자가 자신의 도메인 ID를 사용하여 파일 공유를 탑재하게 합니다. 스토리지 계정에 대해 ID 기반 인증 이 구성된 경우 스토리지 계정 키를 사용하지 않고 공유를 탑재하고 Windows ACL을 구성하고 편집할 수 있습니다.

    도메인 조인 디바이스 또는 도메인 컨트롤러에 네트워크로 원활하게 연결된 디바이스에 로그인합니다(AD 원본이 Microsoft Entra Domain Services인 경우 Microsoft Entra 사용자로 로그인). Windows 명령 프롬프트를 열고 다음 명령을 실행하여 파일 공유를 탑재합니다. <YourStorageAccountName><FileShareName>를 사용자 고유의 값으로 바꿉니다. Z:가 이미 사용 중인 경우 사용 가능한 드라이브 문자로 대체합니다.

    net use 명령을 사용하여 PowerShell이 아닌 이 단계에서 공유를 탑재합니다. PowerShell을 사용하여 공유를 마운트하는 경우, 해당 공유가 Windows 파일 탐색기 또는 cmd.exe 에서 보이지 않으며, Windows ACL을 구성하는 데 어려움을 겪을 수 있습니다.

    net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName>
    

경고

가능하면 SMB 관리자용 Windows 권한 모델을 사용하여 스토리지 계정 키를 사용하는 대신 공유를 탑재합니다.

도메인 조인 디바이스 또는 도메인 컨트롤러에 네트워크로 원활하게 연결된 디바이스에 로그인합니다(AD 원본이 Microsoft Entra Domain Services인 경우 Microsoft Entra 사용자로 로그인). Windows 명령 프롬프트를 열고 다음 명령을 실행하여 파일 공유를 탑재합니다. <YourStorageAccountName>, <FileShareName><YourStorageAccountKey>을 사용자 고유의 값으로 바꿉니다. Z:가 이미 사용 중인 경우 사용 가능한 드라이브 문자로 대체합니다. 스토리지 계정으로 이동하고 보안 + 네트워킹>액세스 키를 선택하거나 Get-AzStorageAccountKeyPowerShell cmdlet을 사용하여 Azure Portal에서 스토리지 계정 키를 찾을 수 있습니다.

net use 명령을 사용하여 PowerShell이 아닌 이 단계에서 공유를 탑재합니다. PowerShell을 사용하여 공유를 마운트하는 경우, 해당 공유가 Windows 파일 탐색기 또는 cmd.exe 에서 보이지 않으며, Windows ACL을 구성하는 데 어려움을 겪을 수 있습니다.

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>

Windows ACL 구성

Windows ACL을 구성하는 프로세스는 하이브리드 또는 클라우드 전용 ID를 인증하는지 여부에 따라 다릅니다.

  • 클라우드 전용 ID(미리 보기)의 경우 Azure Portal 또는 PowerShell을 사용해야 합니다. Windows 파일 탐색기 및 icacls는 현재 클라우드 전용 ID에 대해 지원되지 않습니다.

  • 하이브리드 ID의 경우 icacls를 사용하여 Windows ACL을 구성하거나 Windows 파일 탐색기를 사용할 수 있습니다. Set-ACL PowerShell 명령을 사용할 수도 있습니다. AD DS ID에 대해 구성된 Windows ACL을 사용하여 온-프레미스 파일 서버에 디렉터리 또는 파일이 있는 경우 Robocopy 또는 최신 버전의 Azure AzCopy와 같은 기존 파일 복사 도구를 사용하여 ACL을 유지하면서 Azure Files로 복사할 수 있습니다. Azure 파일 동기화를 통해 디렉터리 및 파일을 Azure Files에 계층화하면 ACL이 기본 형식으로 전달되고 유지됩니다.

중요

Microsoft Entra Kerberos를 사용하여 하이브리드 ID를 인증하는 경우 ACL을 적용하려면 하이브리드 ID를 Microsoft Entra ID와 동기화해야 합니다. Microsoft Entra ID와 동기화되지 않은 ID에 대한 파일 및 디렉터리 수준 ACL을 설정할 수 있습니다. 그러나 인증 및 권한 부여에 사용되는 Kerberos 티켓에 동기화되지 않은 ID가 포함되어 있지 않으므로 이러한 ACL은 적용되지 않습니다. 온-프레미스 AD DS를 AD 원본으로 사용하는 경우 ACL에 동기화되지 않은 ID를 포함할 수 있습니다. AD DS는 이러한 SID를 Kerberos 티켓에 넣고 ACL이 적용됩니다.

Azure Portal을 사용하여 Windows ACL 구성

Microsoft Entra Kerberos가 ID 원본으로 구성된 경우 Azure Portal을 사용하여 Entra 사용자 또는 그룹별로 Windows ACL을 구성할 수 있습니다. 이 메서드는 Microsoft Entra Kerberos를 ID 원본으로 사용하는 경우에만 하이브리드 및 클라우드 전용 ID에 대해 작동합니다.

  1. 다음 특정 URL을 사용하여 Azure Portal에 로그인합니다. https://aka.ms/portal/fileperms

  2. Windows ACL을 구성하려는 파일 공유로 이동합니다.

  3. 서비스 메뉴에서 찾아보기를 선택합니다. 루트 폴더에서 ACL을 설정하려면 상단 메뉴에서 액세스 관리를 선택합니다.

    파일 공유의 루트 폴더에 대한 액세스를 관리하는 방법을 보여 주는 Azure Portal의 스크린샷

  4. 파일 또는 디렉터리에 대한 ACL을 설정하려면 파일 또는 디렉터리를 마우스 오른쪽 단추로 클릭한 다음 액세스 관리를 선택합니다.

    파일 또는 디렉터리에 대한 Windows ACL을 설정하는 방법을 보여 주는 Azure Portal의 스크린샷

  5. 이제 사용 가능한 사용자 및 그룹이 표시됩니다. 필요에 따라 새 사용자 또는 그룹을 추가할 수 있습니다. 사용자 또는 그룹의 맨 오른쪽에 있는 연필 아이콘을 선택하여 사용자/그룹이 지정된 파일/디렉터리에 액세스할 수 있는 권한을 추가하거나 편집합니다.

    Entra 사용자 및 그룹 목록을 보여 주는 Azure Portal의 스크린샷

  6. 사용 권한을 편집합니다. 거부 는 둘 다 설정된 경우 항상 허용 보다 우선합니다. 둘 다 설정되지 않으면 기본 사용 권한이 상속됩니다.

    Entra 사용자 또는 그룹에 대한 권한을 추가하거나 편집하는 방법을 보여 주는 Azure Portal의 스크린샷

  7. 저장을 선택하여 ACL을 설정합니다.

PowerShell을 사용하여 클라우드 전용 ID에 대한 Windows ACL 구성

클라우드 전용 사용자에게 ACL을 대량으로 할당해야 하는 경우 RestSetAcls PowerShell 모듈 을 사용하여 Azure Files REST API를 사용하여 프로세스를 자동화할 수 있습니다.

예를 들어 클라우드 전용 사용자에게 testUser@contoso.com 읽기 권한을 부여할 루트 ACL을 설정하려는 경우:

$AccountName = "<storage-account-name>" # replace with the storage account name 
$AccountKey = "<storage-account-key>" # replace with the storage account key 
$context = New-AzStorageContext -StorageAccountName $AccountName -StorageAccountKey $AccountKey 
Add-AzFileAce -Context $context -FileShareName test -FilePath "/" -Type Allow -Principal "testUser@contoso.com" -AccessRights Read,Synchronize -InheritanceFlags ObjectInherit,ContainerInherit 

icacls로 Windows ACL 구성

중요

icacls를 사용하는 것은 클라우드 전용 ID에서 작동하지 않습니다.

루트 디렉터리를 포함하여 파일 공유의 모든 디렉터리 및 파일에 대한 전체 권한을 부여하려면 AD 도메인 컨트롤러에 대한 네트워크 연결이 방해받지 않는 컴퓨터에서 다음 Windows 명령을 실행합니다. 예제의 자리 표시자 값을 자신의 값으로 바꾸세요. AD 원본이 Microsoft Entra Domain Services <user-upn> 이면 다음과 같습니다 <user-email>.

icacls <mapped-drive-letter>: /grant <user-upn>:(f)

icacls를 사용하여 Windows ACL을 설정하는 방법과 지원되는 여러 권한 유형에 대한 자세한 내용은 icacls용 명령줄 참조를 참조하세요.

Windows 파일 탐색기를 사용하여 Windows ACL 구성

도메인에 가입된 Windows 클라이언트에 로그인한 경우 Windows 파일 탐색기를 사용하여 루트 디렉터리를 포함하여 파일 공유의 모든 디렉터리 및 파일에 대한 전체 권한을 부여할 수 있습니다. 파일 탐색기 사용은 하이브리드 ID에 대해서만 작동합니다. 클라우드 전용 ID에는 작동하지 않습니다.

중요

Windows 파일 탐색기를 사용하는 것은 클라우드 전용 ID에서 작동하지 않습니다. 클라이언트가 도메인에 가입되지 않았거나 환경에 여러 AD 포리스트가 있는 경우 Windows 탐색기를 사용하여 ACL을 구성하지 마세요. 대신 icacls를 사용합니다. 이 제한은 Windows 파일 탐색기의 액세스 제어 목록(ACL) 구성이 스토리지 계정이 가입된 AD 도메인에 클라이언트가 도메인 가입되어야 하도록 요구하기 때문입니다.

다음 단계에 따라 Windows 파일 탐색기 사용하여 ACL을 구성합니다.

  1. Windows 파일 탐색기를 열고 파일 또는 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  2. 보안 탭을 선택합니다.
  3. 편집..을 선택하여 권한을 변경합니다.
  4. 기존 사용자의 사용 권한을 변경하거나 추가... 를 선택하여 새 사용자에게 권한을 부여합니다.
  5. 새 사용자 추가 프롬프트 창에서 선택할 개체 이름 입력 상자에 권한을 부여하려는 대상 사용자 이름을 입력하고 이름 확인을 선택하여 대상 사용자의 전체 UPN 이름을 찾습니다. 온-프레미스 AD의 도메인 이름 및 도메인 GUID를 지정해야 할 수 있습니다. 도메인 관리자 또는 온-프레미스 AD 조인 클라이언트에게 이 정보를 얻을 수 있습니다.
  6. 확인을 선택합니다.
  7. 보안 탭에서 새 사용자에게 부여할 권한을 모두 선택합니다.
  8. 적용을 선택합니다.

다음 단계

디렉터리 및 파일 수준 권한을 구성한 후 Windows 또는 Linux에서 SMB 파일 공유를 탑재할 수 있습니다.