Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第9章 Dashboard サービスの強化

本章では、OpenStack Dashboard(horizon)を使用する Red Hat OpenStack Platform デプロイメントにおけるセキュリティーの強化に関する考慮事項について説明します。

Dashboard により、ユーザーは独自のリソースをプロビジョニングするためのセルフサービスポータルが提供されます(管理者が設定した制限を通じます)。たとえば、Dashboard を使用してインスタンスのフレーバーの定義、仮想マシンのフレーバーのアップロード、仮想ネットワークの管理、セキュリティーグループの作成、インスタンスの起動、管理コンソールを使用してインスタンスをリモートでアクセスすることができます。

Dashboard は、クラウドリソースおよび設定へのアクセス権限を付与できる場合に、OpenStack API と同じ機密性で扱う必要があります。

9.1. Dashboard デプロイメントのプランニング

本項では、Dashboard(horizon)サービスをデプロイする前に考慮すべきセキュリティー要素について説明します。

9.1.1. ドメイン名の選択

Dashboard は、任意のレベルの共有サブドメイン (例: https://openstack.example.org または https://horizon.openstack.example.org) にデプロイするのではなく、2 次レベルのドメインにデプロイすることが推奨されます (例: https://example.com)。また、https://horizon/ などのベア内部ドメインへの Dashboard のデプロイを回避することが推奨されます。これらの推奨事項は、ブラウザーの same-origin-policy の制限に基づいています。

このアプローチは、コンテンツを完全に制御できない他のドメインからクッキーとセキュリティートークンを分離するのに役立ちます。サブドメインにデプロイされる場合、ダッシュボードのセキュリティーは、同じ 2 次ドメインにデプロイされた最も安全ではないアプリケーションと同じです。

クッキーでサポートされるセッションストアを回避し、HTTP Strict Transport Security (HSTS) (本書で説明されている) を設定することにより、このリスクをさらに軽減できます。

9.1.2. ALLOWED_HOSTS の設定

Web サービスは、偽の HTTP ホストヘッダーに関連する脅威に対して脆弱です。これを軽減するために、ALLOWED_HOSTS を設定して OpenStack Dashboard で提供される FQDN を使用することを検討してください。

設定すると、受信 HTTP リクエストの Host: ヘッダーがこの一覧のいずれの値にも一致しない場合、エラーが発生し、要求側は処理を続行できなくなります。

horizon は、python Django web フレームワーク上に構築されています。この場合、HTTP Host: ヘッダーの悪意のある操作から保護するために、ALLOWED_HOSTS を設定する必要があります。この値を、ダッシュボードにアクセスできる FQDN に設定します。director の場合、この設定は HorizonAllowedHosts によって管理されます。