9장. 대시보드 서비스 강화
이 장에서는 OpenStack 대시보드(horizon)를 사용하는 Red Hat OpenStack Platform 배포의 보안 강화 고려 사항에 대해 설명합니다.
대시보드는 사용자에게 자체 리소스를 프로비저닝할 수 있는 셀프 서비스 포털을 제공합니다(관리자가 설정한 제한 내에서). 예를 들어 대시보드를 사용하여 인스턴스 플레이버를 정의하고, VM(가상 시스템) 이미지를 업로드하고, 가상 네트워크를 관리하고, 보안 그룹을 생성하고, 인스턴스를 시작하고, 관리 콘솔을 통해 인스턴스에 원격으로 액세스할 수 있습니다.
클라우드 리소스 및 구성에 대한 액세스 권한을 부여할 수 있으므로 대시보드는 OpenStack API와 동일한 민감도로 처리해야 합니다.
9.1. 계획 대시보드 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 대시보드(horizon) 서비스를 배포하기 전에 고려해야 할 보안 측면에 대해 설명합니다.
9.1.1. 도메인 이름 선택 링크 복사링크가 클립보드에 복사되었습니다!
대시보드를 공유 하위 도메인(예: https://openstack.example.org 또는 https://horizon.openstack.example.org )에 배포하는 대신 두 번째 수준 도메인(예: https://example.com)에 배포하는 것이 좋습니다. 또한 https://horizon/ 과 같은 베어 내부 도메인에 대시보드를 배포하지 않는 것이 좋습니다. 이러한 권장 사항은 same-origin-policy 브라우저의 제한 사항을 기반으로 합니다.
이 접근 방식을 사용하면 콘텐츠를 완전히 제어하지 못할 수 있는 다른 도메인에서 쿠키 및 보안 토큰을 격리할 수 있습니다. 하위 도메인에 배포되는 경우 대시보드의 보안은 동일한 두 번째 수준 도메인에 배포된 최소의 보안 애플리케이션과 동일합니다.
쿠키 지원 세션 저장소를 피하고 HTS(HTTP Strict Transport Security)(이 가이드에 설명됨)를 구성하여 이러한 위험을 추가로 완화할 수 있습니다.
9.1.2. ALLOWED_HOSTS 구성 링크 복사링크가 클립보드에 복사되었습니다!
웹 서비스는 거짓 HTTP 호스트 헤더와 연결된 위협에 취약할 수 있습니다. 이 문제를 완화하려면 OpenStack 대시보드에서 제공하는 FQDN을 사용하도록 ALLOWED_HOSTS 설정을 구성하는 것이 좋습니다.
구성되고 나면 들어오는 HTTP 요청의 Host: 헤더 값이 이 목록의 값과 일치하지 않으면 오류가 발생하고 요청자가 진행되지 않습니다.
Horizon은 python Django 웹 프레임워크를 기반으로 구축되어 잠재적으로 HTTP 호스트: 헤더를 조작하지 않도록 ALLOWED_HOSTS 를 설정해야 합니다. 이 값을 에서 대시보드에 액세스할 수 있어야 하는 FQDN으로 설정합니다. director의 경우 이 설정은 HorizonAllowedHosts에서 관리합니다.