[ISMS] AWS WorkSpaces Pools + Okta SAML 세부 구성 가이드 (2편)

2026. 3. 19. 10:20기타/ISMS

728x90
SMALL

ISMS 인증심사를 위한 망분리를 위해 WorkSpaces Pools를 구성한 과정을 단계별로 정리했다. Okta SAML SSO 연동, non-persistent Pool, 커스텀 이미지(Chrome 기본)까지 포함한다.


개요

  • 목적: ISMS 인증심사 대응 망분리. 개인정보 접근 환경을 일반 업무망과 분리한 전용 WorkSpaces Pool 구성
  • 사전 준비: 리전(예: ap-northeast-2), VPC(Private 서브넷 2개, NAT), Okta Admin 권한, AWS IAM·WorkSpaces 콘솔 접근

관련 글: 구성기 (1편)에서 WSP, 트러블슈팅 확인. 1편 먼저 읽기 권장.

[일반 업무망]                    [개인정보 접근 전용망]
  사용자 PC  ······················►  admin (직접 접근 불가)
      │
      ▼
    Okta  ──(SAML)───►  WorkSpaces Pool  ───(NAT EIP)───►  admin

사전 확인

항목 확인
리전 Pool 운영 리전 (예: ap-northeast-2 서울)
VPC Private 서브넷 2개 (서로 다른 AZ), NAT Gateway 아웃바운드
Okta Admin 권한, SAML 앱 생성 가능
AWS IAM, WorkSpaces 콘솔 접근 권한
aws ec2 describe-subnets --filter "Name=vpc-id,Values=YOUR_VPC_ID" \
  --region ap-northeast-2 \
  --query 'Subnets[*].[SubnetId,AvailabilityZone,CidrBlock]' --output table

방법

Step 1: Pools 디렉토리 생성

  1. WorkSpaces 콘솔 접속
  2. Directories, Create directory
  3. WorkSpace type: Pool
  4. User identity source: User access URL placeholder (나중에 Okta Sign on URL로 변경), Relay state parameter name 비움
  5. Directory information: Name, Description
  6. Networking: VPC, Private 서브넷 2개 (서로 다른 AZ), Access to internet 활성화 (Private 시 생성 후 CLI로 false)
  7. Security group: 아웃바운드 TCP 80, 443, UDP 4195
  8. Active Directory Config: 건너뜀
  9. Storage: Home folders 비활성화
  10. Create directory

확인: 디렉토리 ID (wsd-로 시작), Registration code 메모

Step 2: Okta SAML 앱 생성

  1. Okta Admin, Applications, Create App Integration
  2. SAML 2.0, Next
  3. Single sign on URL: https://signin.aws.amazon.com/saml
  4. Audience URI: https://signin.aws.amazon.com/saml
  5. Name ID format: Persistent
  6. Save
  7. Sign On 탭, Identity Provider metadata URL 복사

Step 3: IAM SAML IdP 생성

  1. IAM Identity providers 접속
  2. Create provider, Provider type: SAML
  3. Provider name: 예) OktaWorkSpacesPools
  4. Metadata document: Okta 메타데이터 URL 붙여넣기 또는 XML 파일 업로드
  5. Create provider

Step 4: IAM SAML 역할 생성

  1. IAM Roles, Create role
  2. Trusted entity: SAML 2.0 federation, Step 3 IdP 선택
  3. Allow programmatic access only
  4. Role name: 예) WorkSpacesPoolsOktaRole, Create role

Trust relationships 수정:

  • sts:TagSession 추가
  • Condition을 SAML:aud = https://signin.aws.amazon.com/saml 로 변경 (SAML:sub_type 아님)
"Condition": {
  "StringEquals": {
    "SAML:aud": "https://signin.aws.amazon.com/saml"
  }
}

인라인 정책 추가:

{
  "Effect": "Allow",
  "Action": [
    "workspaces:CreateStreamingSession",
    "workspaces:DescribeWorkspacesPoolDirectory",
    "workspaces:Stream"
  ],
  "Resource": "arn:aws:workspaces:ap-northeast-2:YOUR_ACCOUNT_ID:directory/DIRECTORY_ID"
}

Step 5: workspaces_DefaultRole

  1. IAM, Roles, workspaces_DefaultRole 검색
  2. 없으면: WorkSpaces Quick Setup 또는 Personal WorkSpace 1회 실행으로 자동 생성
  3. Add permissions, Attach policies, AmazonWorkSpacesPoolServiceAccess 연결

Step 6: Okta SAML 앱 속성

  1. Okta Admin, Applications, Step 2 앱 클릭
  2. Sign On 탭, Edit
  3. Attribute statements, Add Attribute 3개:
Name Value
https://aws.amazon.com/SAML/Attributes/Role "arn:aws:iam::YOUR_ACCOUNT_ID:role/WorkSpacesPoolsOktaRole,arn:aws:iam::YOUR_ACCOUNT_ID:saml-provider/OktaWorkSpacesPools" (따옴표 포함, Constant)
https://aws.amazon.com/SAML/Attributes/RoleSessionName user.profile.email
https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email user.profile.email
  1. Save
  2. Assign 탭, 사용자 또는 그룹 할당

Step 7: Okta Relay State

  1. Okta 앱, Sign On, Edit, Show Advanced Settings
  2. Relay State URL: https://workspaces.euc-sso.ap-northeast-2.aws.amazon.com/sso-idp?registrationCode=REGISTRATION_CODE
  3. REGISTRATION_CODE를 Step 1 디렉토리 Registration code로 교체 (공백은 +)
  4. 파라미터명: RelayState

Step 8: 디렉토리에 SAML 활성화

  1. WorkSpaces, Directories, Pools directories
  2. Step 1 디렉토리 선택
  3. Authentication, Edit, Edit SAML 2.0 Identity Provider
  4. User Access URL: Okta 앱 Sign on URL 전체 복사 (appId 포함 필수)
  5. IdP deep link parameter name: RelayState
  6. Save

Step 9: WorkSpaces Pool 생성

  1. WorkSpaces, Pool, Create WorkSpaces Pools
  2. Bundle: Value (Windows Server 2019). Pool은 Linux 미지원
  3. Running mode: AutoStop
  4. Manual scaling: Minimum 0, Maximum 사용 인원 + 여유
  5. Select directory: Step 1 디렉토리
  6. Create WorkSpace Pool

Step 10: EnableInternetAccess 수정 (Private 서브넷 시)

aws workspaces modify-workspace-creation-properties \
  --resource-id DIRECTORY_ID \
  --workspace-creation-properties EnableInternetAccess=false \
  --region ap-northeast-2

Step 11: 접속 테스트

  1. Okta 앱에 할당된 사용자로 로그인
  2. 해당 앱 타일 클릭
  3. WorkSpaces Pool 세션 시작
  4. 또는 https://clients.amazonworkspaces.com에서 Registration code 입력

(선택) Step 12: 커스텀 이미지 생성

Chrome 기본 브라우저 등 커스텀 설정이 필요하면 아래 순서로 진행. 이미지 빌더는 반드시 Value (Server 2019).

12.1 Simple AD 생성 (도쿄)

서울에는 Simple AD 없음. 도쿄(ap-northeast-1)에서 생성.

  1. WorkSpaces 콘솔, 리전 ap-northeast-1
  2. Directories, Create directory
  3. WorkSpace type: Personal, User identity source: Simple AD
  4. Directory DNS name: imagebuilder.local (FQDN, 점 포함 필수)
  5. Directory NetBIOS name: IMAGEBUILDER
  6. Administrator password: 8-64자
  7. Networking: VPC, Private 서브넷 2개
  8. Create directory

12.2 이미지 빌더 WorkSpace (도쿄)

  1. WorkSpaces (도쿄), Create WorkSpace
  2. Directory: 12.1 Simple AD
  3. Bundle: Value (Windows Server 2019) (WSP 필수)
  4. User: imagebuilder 등 1명
  5. Create WorkSpace, Available 대기

12.3 Chrome 설치

  1. WorkSpace 접속
  2. Edge로 Chrome 다운로드 후 설치
  3. 설정, 앱, 기본 앱, 웹 브라우저, Chrome
  4. 캐시·히스토리 삭제

12.4 Image Checker

  1. WorkSpace 재부팅
  2. C:\Program Files\Amazon\ImageChecker.exe 실행
  3. Run, 모든 검사 PASSED
  4. Validation Successful 확인

12.5 커스텀 이미지 생성 (도쿄)

  1. WorkSpaces (도쿄), 해당 WorkSpace 선택
  2. Actions, Create image
  3. Image name: 예) pool-chrome
  4. Create image, 완료 대기

12.6 이미지 복사 (도쿄에서 서울로)

  1. WorkSpaces, Images, Image Registry, ap-northeast-1
  2. 이미지 선택, Actions, Copy image
  3. Destination: ap-northeast-2 (Seoul)
  4. Copy image, 완료 대기

12.7 커스텀 번들 생성 (서울)

  1. WorkSpaces, 리전 ap-northeast-2
  2. Images, Image Registry, 복사된 이미지, Create bundle
  3. Compute: Value (2 vCPU, 4GB RAM)
  4. Storage: Value와 동일 (Root 80GB)
  5. Bundle name: 예) pool-chrome-bundle
  6. Create bundle, Bundle ID 확인

12.8 Pool에 커스텀 번들 적용

aws workspaces update-workspaces-pool \
  --pool-id POOL_ID \
  --bundle-id BUNDLE_ID \
  --region ap-northeast-2

12.9 빌드 리소스 삭제

  1. 도쿄 이미지 빌더 WorkSpace 삭제
  2. 도쿄 Simple AD 디렉토리 삭제
  3. 도쿄 커스텀 이미지 삭제 (선택)

체크리스트

  • Step 1: Pools 디렉토리
  • Step 2-4: Okta, IAM IdP, IAM 역할
  • Step 5: workspaces_DefaultRole
  • Step 6-8: Okta 속성, Relay State, 디렉토리 SAML
  • Step 9-11: Pool 생성, EnableInternetAccess, 접속 테스트
  • Step 12: 커스텀 이미지 (선택, Value/Server 2019 필수)

참고


#AWS #WorkSpaces #WorkSpacesPools #Okta #SAML #SSO #ISMS #망분리 #인증심사 #커스텀이미지 #WSP #클라우드데스크톱

728x90
LIST