내용으로 건너뛰기

AWS WorkSpaces Pool 구성하기 (ADFS을 WorkSpaces Directories 로 사용)

4분 분량
콘텐츠 수준: 기초
0

AWS WorkSpaces Pool 구성하는 방법을 단계 별로 설명합니다.

AWS WorkSpaces Pool 구성하는 방법을 단계 별로 설명합니다. EC2 인스턴스를 새로 런치하여 AD와 ADFS를 구성하고 이를 Pool 디렉토리로 사용합니다.

1.윈도우 EC2인스턴스를 런치합니다. 이때 Security Group에서 기본적으로 AD에서 사용하는 Port들은 모두 Inbound rules에 추가하고 Outbound rules에는 0.0.0.0/0 으로 열어줍니다.

Inbound rules (VPC CIDR범위로 열어줍니다.)

88 UDP

464 UDP

464 TCP

1024 - 65535 TCP

53 TCP

123 UDP

3268 - 3269 TCP

135 TCP

53 UDP

636 TCP

138 UDP

389 UDP

389 TCP

445 TCP

88 TCP

445 UDP

Outbound rules

0.0.0.0/0

2.파워쉘을 실행 후 아래의 명령어를 이용하여 AD 도메인 서비스 및 관리도구를 설치합니다.

Add-WindowsFeature AD-Domain-Services, GPMC, RSAT-ADDS, RSAT-AD-PowerShell, RSAT-DNS-Server | Format-List

여기에 이미지 설명 입력

3.기본 옵션으로 AD 를 구성합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

4.ADFS-Federation를 인스톨 합니다.

Install-WindowsFeature -IncludeManagementTools -Name ADFS-Federation

여기에 이미지 설명 입력

5.인증서를 생성하고 구성합니다.


`
$ADFSServiceName = "adfs.test.com"
$certificate = (New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname $ADFSServiceName)
$certThumbprint = $certificate.Thumbprint
$Admin = "dongjae\Administrator"
$Password = ConvertTo-SecureString "패스워드" -AsPlainText -Force                                      "패스워드" 는 도메인 관리자 패스워드입니다. 
$Credential = New-Object System.Management.Automation.PSCredential $Admin, $Password

Install-AdfsFarm -CertificateThumbprint $certThumbprint -FederationServiceName $ADFSServiceName -ServiceAccountCredential $Credential`

여기에 이미지 설명 입력

6.C:\Windows\System32\drivers\etc\hosts에 adfs서비스 이름을 등록합니다.

$IPs = (Get-NetIPAddress).IPv4Address | where-object{$_ -notmatch '169.254' -and $_ -notcontains '127.0.0.1'} Foreach($IP in $IPs) { if($IP -ne $null) { Add-Content -Value "$IP $ADFSServiceName" -Path "C:\Windows\System32\drivers\etc\hosts" } }

여기에 이미지 설명 입력

7.아래의 경로로 이동하여 MetaData를 다운로드 합니다.

https://<ADFS_HOSTNAME>/FederationMetadata/2007-06/FederationMetadata.xml

여기에 이미지 설명 입력

8.ADFS 메타이터를 Identity providers 에 등록합니다. 이때 ARN을 복사해 두시면 아래 Role 등록을 편하게 하실수 있습니다.

여기에 이미지 설명 입력

9.IAM Role과 Permission을 설정합니다.

9.1Create role를 클릭한후 SAML 2.0-based provider를 선택합니다. 그후 Next를 눌러 우선 Role를 생성합니다.

여기에 이미지 설명 입력

9.2아래와 같이 Role를 변경 합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::23*******47:saml-provider/POOLADFS"
            },
            "Action": [
                "sts:AssumeRoleWithSAML",
                "sts:TagSession"
            ],
            "Condition": {
                "StringEquals": {
                    "SAML:sub_type": "persistent"
                }
            }
        }
    ]
}

}

여기에 이미지 설명 입력

Permissions policies에서 아래와 같이 퍼미션을 추가합니다. Create Policy를 선택한 후 JSON으로 추가합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "workspaces:Stream",
            "Resource": "arn:aws:workspaces:ap-northeast-2:23********47:directory/*",
            "Effect": "Allow"
        }
    ]
}

여기에 이미지 설명 입력

role과 saml-provider의 ARN을 메모장에 복사합니다. 추구 ADFS구성 시 사용됩니다.

10.WorkSpaces Pool을 생성하기 위해 WorkSpaces 콘솔로 이동한 후 Directories에서 Create directory를 선택합니다. 이후 VPC와 서브넷을 지정합니다. User access URL 에 아래와 같이 입력합니다.

https://adfs.test.com/adfs/ls/IdpInitiatedSignOn.aspx?RelayState=RPID=https://signin.aws.amazon.com/saml

11.Create WorkSpaces를 선택합니다. Pools을 선택하고 이전에 생성한 Pool Directories를 선택합니다. 이후 생성할 번들을 선택합니다.

12.ADFS에서 아래와 같이 로그온이 가능하게 설정합니다.

    Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
    Set-AdfsProperties -EnableRelayStateForIdpInitiatedSignOn $true
    Stop-Service -Name adfssrv
    Start-Service -Name adfssrv

여기에 이미지 설명 입력

13.AD FS Management를 실행합니다.

13.1Relying Party Trust에서 Add Relying Party Trust...을 선택하고 Claims aware를 선택하고 Start를 합니다.

여기에 이미지 설명 입력

13.2https://signin.aws.amazon.com/static/saml-metadata.xml 를 입력합니다.

여기에 이미지 설명 입력

TLS/SSL 오류가 발생하면 아래의 레지스트리를 메모장으로 작성하고 저장한뒤(.reg) 우클릭하여 병합을 한뒤 재부팅합니다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

13.3이름을 설정합니다.

여기에 이미지 설명 입력

13.4Permit everyone를 선택합니다.

여기에 이미지 설명 입력

13.5Next를 누룬후 구성을 마칩니다.

여기에 이미지 설명 입력

13.6Monitor replying party 를 해제한후 Apply를 합니다.

여기에 이미지 설명 입력

Identifiers에서 Relying party identifier 칸에 https://signin.aws.amazon.com/saml 를 추가합니다.

여기에 이미지 설명 입력

13.7Relying party Trusts를 우클릭 후 Edit Claim Issuance Policy 를 선택한 후 Add Rule를 합니다.

여기에 이미지 설명 입력

SAMaccount mapping,  SAM-Account-Name 값을 입력합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Name ID,Samaccountname,Name ID,Persistent Identifier 값을 입력합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Attributes, E-Mail-Addresses,https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email,User-Principal-Name,https://aws.amazon.com/SAML/Attributes/RoleSessionName 을 입력합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Get Active Directory Groups

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Roles POOLADPS


 => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = "arn:aws:iam::23--------47:role/POOLADFS,arn:aws:iam::23--------47:saml-provider/POOLADFS");

여기에 이미지 설명 입력

14.워크스페이스 클라이언트를 다운로드 하고 실행합니다.

14.1워크스페이스 클라이언트를 다운로드 합니다.

여기에 이미지 설명 입력

14.2클라이어트에서 등록코드를 입려한뒤 ADFS에 로그인 합니다. (등록코드는 WorkSpaces 콘솔에서 확인가능합니다.)

여기에 이미지 설명 입력

14.3워크스페이스가 실행됩니다.

여기에 이미지 설명 입력

AWS
지원 엔지니어
게시됨 9달 전123회 조회