AWS 서비스 사용 - Amazon WorkSpaces Applications

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 서비스 사용

AWS Identity and Access Management

IAM 역할을 사용하여 AWS 서비스에 액세스하고 서비스에 연결된 IAM 정책에서 구체적으로 설명하는 것이 WorkSpaces 애플리케이션 세션의 사용자만 추가 자격 증명을 관리하지 않고도 액세스할 수 있도록 하는 모범 사례입니다. WorkSpaces 애플리케이션에서 IAM 역할을 사용하는 모범 사례를 따릅니다.

홈 폴더와 애플리케이션 설정 지속성 모두에서 사용자 데이터를 유지하기 위해 생성된 Amazon S3 버킷을 보호하는 IAM 정책을 생성합니다. 이렇게 하면 WorkSpaces 애플리케이션 관리자가 아닌 관리자가 액세스할 수 없습니다.

VPC 엔드포인트

VPC 엔드포인트는 VPC와 지원되는 AWS 서비스 및에서 제공하는 VPC 엔드포인트 서비스 간의 프라이빗 연결을 활성화합니다 AWS PrivateLink. AWS PrivateLink 는 프라이빗 IP 주소를 사용하여 서비스에 비공개로 액세스할 수 있는 기술입니다. VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다. 서비스에 대해서만 퍼블릭 인터넷 액세스가 필요한 경우 AWS VPC 엔드포인트는 NAT 게이트웨이 및 인터넷 게이트웨이에 대한 요구 사항을 모두 제거합니다.

자동화 루틴 또는 개발자가 WorkSpaces 애플리케이션에 대한 API 호출을 수행해야 하는 환경에서는 WorkSpaces 애플리케이션 API 작업을 위한 인터페이스 VPC 엔드포인트를 생성합니다. 예를 들어 퍼블릭 인터넷 액세스가 없는 프라이빗 서브넷에 EC2 인스턴스가 있는 경우 WorkSpaces 애플리케이션 API용 VPC 엔드포인트를 사용하여 CreateStreamingURL과 같은 AppStream 2.0 API 작업을 호출할 수 있습니다. 다음 다이어그램은 Lambda 함수 및 EC2 인스턴스에서 WorkSpaces 애플리케이션 API 및 스트리밍 VPC 엔드포인트를 사용하는 설정의 예를 보여줍니다.

VPC 엔드포인트의 참조 아키텍처 다이어그램

VPC 엔드포인트

스트리밍 VPC 엔드포인트를 사용하면 VPC 엔드포인트를 통해 세션을 스트리밍할 수 있습니다. 스트리밍 인터페이스 엔드포인트는 스트리밍 트래픽이 VPC를 벗어나지 않도록 유지합니다. 스트리밍 트래픽으로는 픽셀, USB, 사용자 입력, 오디오, 클립보드, 파일 업로드 및 다운로드, 프린터 트래픽 등이 있습니다. VPC 엔드포인트를 사용하려면 WorkSpaces 애플리케이션 스택에서 VPC 엔드포인트 설정을 활성화해야 합니다. 이는 인터넷 액세스가 제한되어 있고 Direct Connect 인스턴스를 통해 액세스하는 것이 유리한 위치에서 퍼블릭 인터넷을 통해 사용자 세션을 스트리밍하는 대신 사용할 수 있습니다. VPC 엔드포인트를 통해 사용자 세션을 스트리밍하려면 다음이 필요합니다.

  • 인터페이스 엔드포인트와 연결되는 보안 그룹은 사용자가 연결하는 IP 주소 범위에서 포트 443(TCP)와 포트 1400–1499(TCP)로 수신되는 인바운드 액세스를 허용해야 합니다.

  • 서브넷에 대한 네트워크 액세스 제어 목록은 휘발성 네트워크 포트 1024-65535(TCP)에서 사용자가 연결하는 IP 주소 범위로 전송되는 아웃바운드 트래픽을 허용해야 합니다.

  • 사용자를 인증하고 WorkSpaces 애플리케이션이 작동하는 데 필요한 웹 자산을 제공하려면 인터넷 연결이 필요합니다.

WorkSpaces 애플리케이션을 사용하여 AWS 서비스로 트래픽을 제한하는 방법에 대한 자세한 내용은 VPC 엔드포인트에서 생성 및 스트리밍하기 위한 관리 안내서를 참조하세요.

완전한 퍼블릭 인터넷 액세스가 필요한 경우 Image Builder에서 Internet Explorer 고급 보안 구성(ESC)을 사용하지 않도록 설정하는 것이 좋습니다. 자세한 내용은 WorkSpaces 애플리케이션 관리 안내서를 참조하여 Internet Explorer 향상된 보안 구성을 비활성화하세요.

인스턴스에서 인스턴스 메타데이터 서비스(IMDS) 구성

이 주제에서는 인스턴스 메타데이터 서비스(IMDS)에 대해 설명합니다.

인스턴스 메타데이터는 애플리케이션이 실행 중인 인스턴스를 구성 또는 관리하는 데 사용할 수 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 관련 데이터입니다. 인스턴스 메타데이터 서비스(IMDS)는 인스턴스의 코드가 인스턴스 메타데이터에 안전하게 액세스하기 위해 사용하는 온 인스턴스 구성 요소입니다. 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 메타데이터 및 사용자 데이터를 참조하세요.

코드는 인스턴스 메타데이터 서비스 버전 1(IMDSv1) 또는 인스턴스 메타데이터 서비스 버전 2(IMDSv2)의 두 가지 방법 중 하나를 사용하여 실행 중인 인스턴스에서 인스턴스 메타데이터에 액세스할 수 있습니다. IMDSv2는 세션 지향 요청을 사용하며 IMDS에 액세스하기 위해 사용될 수 있는 여러 유형의 취약성을 완화합니다. 이러한 두 가지 방법에 대한 자세한 내용은 Amazon EC2 사용 설명서인스턴스 메타데이터 서비스 구성을 참조하세요.

IMDS에 대한 리소스 지원

2024년 1월 16일 또는 그 이후에 릴리스된 에이전트 버전 또는 관리형 이미지 업데이트로 WorkSpaces 애플리케이션 이미지를 실행할 때 올웨이즈 온, 온디맨드, 단일 세션 및 다중 세션 플릿과 모든 Image Builder는 IMDSv1 및 IMDSv2를 모두 지원합니다. IMDSv2 WorkSpaces

Elastic Fleets 및 AppBlock Builders 인스턴스는 IMDSv1 및 IMDSv2도 모두 지원합니다.

IMDS 속성 설정의 예

다음은 IMDS 메서드를 선택하는 두 가지 예입니다.

Java v2 SDK 예제

아래 예제 요청에서 disableIMDSV1 속성을 사용하여 IMDSv1 비활성화

CreateFleetRequest request = CreateFleetRequest.builder() .name("TestFleet") .imageArn("arn:aws:appstream:us-east-1::image/TestImage") .instanceType("stream.standard.large") .fleetType(FleetType.ALWAYS_ON) .computeCapacity(ComputeCapacity.builder() .desiredInstances(5) .build()) .description("Test fleet description") .displayName("Test Fleet Display Name") .enableDefaultInternetAccess(true) .maxUserDurationInSeconds(3600) .disconnectTimeoutInSeconds(900) .idleDisconnectTimeoutInSeconds(600) .iamRoleArn("arn:aws:iam::123456789012:role/TestRole") .streamView(StreamView.APP) .platform(PlatformType.WINDOWS) .maxConcurrentSessions(10) .maxSessionsPerInstance(2) .tags(tags) .disableIMDSV1(true) .build();

disableIMDSV1을 true로 설정하여 IMDSv1을 비활성화하고 IMDSv2를 적용합니다.

disableIMDSV1을 false로 설정하여 IMDSv1과 IMDSv2를 모두 활성화합니다.

CLI 예시

아래 예제 요청에서 --disable-imdsv1 속성을 사용하여 IMDSv1 비활성화

aws appstream create-fleet --name test-fleet --image-arn "arn:aws:appstream:us-east-1::image/test-image" --disable-imdsv1 --instance-type stream.standard.small --compute-capacity DesiredInstances=2 --max-user-duration-in-seconds 57600 --disconnect-timeout-in-seconds 57600 --region us-east-1

IMDSv1--disable-imdsv1을 비활성화하고 IMDSv2를 적용하려면 true로 설정합니다.

IMDSv1과 IMDSv2를 모두 활성화하려면 false--no-disable-imdsv1로 설정합니다.