해당 기사에서는 도메인에 가입되어 있는 AppSteram 및 WorkSpaces 사용자 개별에게 개인권한만 부여된 네트워크 공유 디스크를 자동으로 생성하여 만드는 방안에 대해서 소개 합니다
사전 요구 사항
- Amazon FSx for Windows File Server 가 필요합니다. 다만 EC2 인스턴스를 생성하고 도메인에 조인한 뒤 윈도우 파일공유 기능를 통해서도 구현이 가능합니다.
(EC2인스턴스를 통한 윈도우 파일공유 기능을 통해서는 Advanced Sharing 기능을 통해 개별 유저 별로 제한된 디스크 공간을 제공할수 있습니다.)
- AD 그룹정책으로 구현 시 최초 1회 접속 후 재접속을 해야 개인 디스크 드라이버가 연결 될수 있습니다.
도메인 사용자에게 공유할 Root 디렉토리 권한 설정 하기
- Amazon FSx for Windows File Server에서 Share 하위에 폴더를 생성합니다. 기본적으로 Authenticated Users 와 Admin 권한이 들어가 있습니다.

- Advanced 를 누른 뒤 Authenticated Users를 삭제 합니다. 그리고 Disable inheritance 를 눌러 상속을 차단합니다.

- 그리고 Convert inherited permissions into explicit permissions on this object를 선택합니다.

- domain users를 추가합니다. 그리고 Show advanced permission을 선택합니다.

- Traverse folder/execute file, Create folders, Write attributes, Write extended attributes 를 선택합니다.

- This Folder Only를 선택합니다.

**도메인 사용자에게 사용할 . vbs 스크립트 작성 하기 **
(\FSx 파일서버 DNS name\share\PersonalDisk 라는 네트워크 폴더에 위에서 소개한 권한의 설정이 필요합니다.)
아래에서 \FSx 파일서버 DNS name\share\PersonalDisk <- 이부분만 실제 사용하는 네트워크 경로 위치로 변경합니다.
Personal Disk.vbs:
On error resume next
Set objNetwork = WScript.CreateObject("WScript.Network")
strUserName = objNetwork.UserName
strDirectory = "\FSx 파일서버 DNS name\share\PersonalDisk" & "" & strUserName
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strDirectory) Then
Set objFolder = objFSO.GetFolder(strDirectory)
Else
Set objFolder = objFSO.CreateFolder(strDirectory)
End If
Set objShell = CreateObject("Wscript.Shell")
If objFSO.FolderExists(strDirectory) Then
intRunError = objShell.Run("%COMSPEC% /c Echo Y| cacls " _
& strDirectory & " /E /C /G " & strUserName & ":F", 2, True)
End If
strDriveLetter = "P:"
objNetwork.MapNetworkDrive strDriveLetter,strDirectory
strNewName = "Personal Data"
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(strDriveLetter).Self.Name = strNewName
Set objShell = nothing
Set objFSO = nothing
Set objFolder = nothing
Set objNetwork = nothing
objNetwork.MapNetworkDrive strDriveLetter, strDirectory _
& "" & objNetwork.UserName
Wscript.quit
**도메인 사용자에게 사용할 . vbs 스크립트 테스트 하기 **
-
위의 스크립트를 워크스페이스 사용자 바탕화면에 복사합니다.
-
스크립트를 실행합니다.
-
AD 또는 FSx 를 관리하는 인스턴스에서 Domian\Admin으로 로그온한 뒤 아래 스토리지폴더를 확인합니다.
\FSx 파일서버 DNS name\share\PersonalDisk
- PersonalDisk 하위에 워크스페이스 사용자 ID로 폴더가 생성되고 아래와 같이 권한이 셋팅되었는지 확인합니다.
Admin은 도메인 관리자 이고 dongjae는 사용자 계정명입니다. 이렇게 2개의 계정의 권한만 Security 에 있어야 합니다.

- 아래처럼 다른 사용자가 해당 경로로 접근을 시도하면 권한 오류가 발생합니다. 개인 디스크는 사용자와 관리자(Admin) 만 접근가능합니다.

**도메인 사용자에게 사용할 . vbs 스크립트 그룹정책으로 적용하기 **
-
적용할 OU를 선택합니다. Users 개체가 있어야 합니다.
-
User Configuration -> Policies -> Windows Settings -> Scripts -> Logon 을 선택합니다.

- Show Files를 클릭한 후 위의 생성된 스크립트를 폴더에 추가합니다. 그리고 Add를 눌러 해당 스크립트를 추가합니다.

- 그리고 Active Directory Users and Computers 를 클릭 한 후 적용할 User 계정의 속성에서 Profile를 선택합니다. 그후 드라이브 명과 연결위치를 적용합니다.
\FSx 파일서버 DNS name\share\PersonalDisk%username% <-이렇게 지정하면 %username%가 계정명으로 변경됩니다.

5.위의 설정은 다중으로도 설정이 가능합니다. 적용할 사용자를 Drag 합니다. 그후 아래와 같이 속성을 누른 후 Profile를 설정합니다.

위의 설정을 마치면 아래와 같이 WorkSpaces에서 생성한 파일을 AppStream에서 사용하고 AppStream에서 사용한 파일을 WorkSapces 에서 바로 사용이 가능합니다.


[1] Amazon FSx를 사용하여 도메인 사용자를 위한 홈 폴더 생성
https://docs.aws.amazon.com/ko_kr/fsx/latest/WindowsGuide/walkthrough04-fsx-with-appstream2.html#fsx-personal-persistent