다중 세션 플릿에서 세션 스크립트 사용 - Amazon AppStream 2.0

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

다중 세션 플릿에서 세션 스크립트 사용

다중 세션 플릿에서 세션 스크립트를 사용하는 경우 최적의 성능과 보안을 보장하기 위한 추가 요구 사항과 고려 사항이 있습니다.

요구 사항

단일 세션 플릿에서 지정된 인스턴스에 대해 SessionStartSessionTermination 후크는 한 번만 실행되도록 보장됩니다. 이는 인스턴스에 대한 세션 매핑이 1:1로 이루어지기 때문입니다. 다중 세션 플릿을 사용하는 경우 각 세션이 자체 SessionStartSessionTermination 후크를 실행하는 인스턴스에 대한 세션의 N:M 매핑이 있습니다. 즉, SessionStartSessionTermination 후크를 지정된 인스턴스에서 여러 번 실행할 수 있으며, 여러 가지 순서가 있습니다. 최상의 경험을 위해 다중 세션 플릿에서 사용할 때 세션 스크립트에 대해 다음 사항이 적용되어야 합니다.

  • 스크립트는 idempotent입니다.

    작업이 이미 수행된 경우 스크립트는 동일한 인스턴스에서 둘 이상의 실행을 정상적으로 처리해야 합니다.

  • 스크립트는 독립적입니다.

    스크립트는 세션당 실행되므로 다른 세션이 실행되는 SessionTermination 동안 한 세션이 실행되는 경우 서로 간섭하거나 다른 세션의 경험을 방해해서는 SessionStart안 됩니다.

  • 스크립트는 성능이 뛰어납니다.

    다중 세션 인스턴스에서는 여러 세션을 동시에 프로비저닝할 수 있습니다. 즉, 세션 스크립트를 동시에 여러 번 실행할 수 있습니다. 스크립트는 효율적이어야 하고, 과도한 리소스를 소비하지 않아야 하며, 인스턴스에서 다른 사용자의 경험 또는 세션의 안정성에 영향을 미치지 않아야 합니다.

이러한 요구 사항 중 상당수는 스크립트가 실행 중인 특정 사용자 세션에 세션 스크립트 로직을 집중하여 충족할 수 있습니다.

보안 고려 사항

AppStream 사용자가 스크립트 파일을 세션할 수 있는 쓰기 권한을 허용하도록 2.0 이미지를 구성해서는 안 됩니다. 이렇게 하면 악의적인 사용자가 스크립트 파일을 수정할 수 있는 중요한 공격 벡터가 도입됩니다. 그런 다음 구성에 따라 이러한 파일을 SYSTEM 또는 다른 사용자로 실행할 수 있습니다.

중요

AppStream 2.0 이미지가 안전하게 구성되었는지 확인하는 것은 사용자의 책임입니다. 이는 여러 사용자가 동일한 인스턴스를 사용하는 다중 세션 인스턴스에 특히 중요합니다. 이미지가 안전하게 구성되지 않으면 해당 인스턴스의 모든 사용자에게 보안 위험이 있습니다.

다음은 이미지 및 세션 스크립트 파일에 대한 설명이어야 합니다.

  • 사용자는 세션 스크립트 파일을 수정할 권한이 없습니다.

  • 사용자는 세션 스크립트 config.json을 수정할 권한이 없습니다. 이미지의 기본 동작은 관리자에 대한 액세스를 제한합니다.

세션 스크립트 실행 파일은 런타임 시 수정이 안전한 안전한 안전한 위치에 저장해야 합니다.

서비스에서 세션 스크립트 실행 파일이 수정되었음을 감지하면 해당 인스턴스에서 해당 후크의 후속 실행에 실패하고 Amazon S3에 로그 파일을 업로드하며(Amazon S3 로깅이 활성화된 경우) 다음 메시지가 표시됩니다.

인스턴스 프로비저닝 후 실행 파일이 수정되었기 때문에 세션 스크립트가 실행되지 않았습니다. 보안을 위해 실행을 건너뛰었습니다.

사용 사례에서 런타임 시 세션 스크립트 실행 파일을 수정해야 하는 경우(예: 런타임 시 자동 업데이트 프로세스에 의해 수정된 EXE 파일을 가리키는 경우) 위 확인에 실패합니다. 이 경우 스크립트를 사용하여 실행을 수정된 실행 파일로 리디렉션합니다. 서비스가 보안 검사를 수행할 때 런타임에 스크립트를 수정하지 않은 상태로 둡니다.

세션 스크립트 파일이 과도하게 큰 경우(100MB 초과) 인스턴스 및 세션 프로비저닝이 지연될 수 있으며 보안 검사에 추가 시간이 걸릴 수 있습니다(인스턴스 유형 및 사용 가능한 리소스에 따라 다름). 사용 사례에 대규모 세션 스크립트가 필요한 경우 더 작은 스크립트를 사용하여 실행을 리디렉션하는 것이 좋습니다. 이렇게 하면 인스턴스 및 세션 프로비저닝 경험이 개선됩니다.

서비스는 세션 스크립트 config.json에 정의된 실행 파일만 검사하며, 이는 대체/최상의 노력 메커니즘일 뿐입니다. 세션 스크립트 실행 파일의 모든 코드 경로가 안전하고 최종 사용자가 수정할 수 없도록 하는 것은 사용자의 책임입니다.