通信おわりにこんにちは。IT基盤部の片山です。DeNAが提供するヘルスケア系サービスのインフラを担当しています。今回は機密データを扱う機械学習環境の構築について紹介します。はじめにあるプロジェクトにおいて、提供されるデータの機密性が非常に高く、十分なセキュリティを担保した環境を構築したいという相談を受けました。要件は以下の通りです。用意し、本プロジェクトで利用するサーバへのアクセスは、セキュリティルーム内の専用端末からssh,httpsのみ許可する。セキュリティルームとは、プロジェクトメンバーのみが入室でき、外部との通信が制限されたネットワークのある部屋の事を指します要件に対する対応案サーバ側はヘルスケア系サービスで実績がある構成で対応できそうでしたが、クライアント環境はどのようにして要件を担保するか色々と方法を検討しました。要件を以下のように落とし込みました。セキュリティルームとそれ以外のアクセスを区別できるようにする。部屋の外で使えないようにPCが持ち出せない状況を作る。無線LANを使えなくする。専用端末に専用アカウントしかログインできないようにする。意図しないデータの持ち込み、持ち出しが出来ないようにする。出来る場合は証跡が残るようにする。インストールするどの様に解決したか全体の構成図は以下のようになりました。クライアント、サーバ環境それぞれ見ていきます。セキュリティルーム(クライアント環境)まず、セキュリティルームはスマートロックを導入し、プロジェクトのメンバーのみが解錠可能としました。セキュリティルーム内のネットワークは、他のDeNAスタッフと分ける必要があるため専用のVLANを割り当て、別のIPレンジとなるようにしました。VLANの割り当て方法は後述します。端末の管理番号とMACアドレスを元にIPを固定化しており、ファイアウォールでソースIPと特定のポートのみを開放するアクセス制御を可能にしました。専用端末(Windows,Mac共通)次に専用端末についてです。端末はWindows、MacともにノートPCを利用するため、セキュリティルームから持ち出しが出来ないようワイヤーロックによる固定をしました。管理者権限は端末を管理する別部門にて所有し、初期セットアップはしていただきます。無線LANはADアカウントのステータスで無効化されるため、ネットワークの利用を有線LANに限定します。他にもリムーバブルデバイスの利用は不可にしています。端末へのログイン可能なアカウントについても専用のアカウントを発行します。これはアカウントと所属VLANがADにて紐付けられているためです。専用アカウントのログインにはAD認証と生体認証を併用しています。これにより、専用アカウントは専用端末にのみログインできることを担保します。専用アカウントに専用VLANが降ってくる仕組みはダイナミックVLANを使用しています。アカウントに紐付いたクライアント証明書を用いて、802.1X認証によってVLANが決定します。証跡を残す仕組みは2つの方法を導入しています。sshの証跡を残します。sshはgatewayを必ず経由する必要があるため、gateway側でttyrecを実行しています。こちらはgatewayを経由しないhttps通信の証跡を残すのに使います。Windows専用のため、httpsを利用できるのはWindows端末に限定しています。専用端末は用途にあわせて3種類あります。Zoneのサーバへアクセスできます。使わないためMacにしていますが、Windowsを使っても構いません。データ受領用端末(Windows)暗号化されたデータをダウンロードし、サーバへ配置する役割に用います。この端末のみインターネットへの接続を許可されています。proxyが設定されており、アクセス可能なFQDNが決められています。(Windows)その名の通り、開発者用の端末になります。Windowsとなりました。これまでの情報をまとめると、専用部屋の専用の端末から、専用のアカウントを使い、専用のVLANを割り当て、機械学習環境へアクセスすることができます。サーバ環境サーバはオンプレミスで構成しており、データセンターにあるため物理的にアクセスできるのは一部のインフラ担当者だけです。サーバ側は用途にあわせて2つのZoneに分けています。DMZDMZには外部ネットワークへアクセスが必要なサーバを配置します。外部へ接続するためのproxyサーバを立ててます。proxyサーバを経由する理由は、外部ネットワークへの通信ログを取得するのが目的です。この環境へのアクセスはインフラ担当のみが可能なため、開発者が外部へのアクセスに手を加えることは出来ません。ZoneこのZoneにはプロジェクトで使用する機密データの保管と機械学習用のサーバを配置します。Zoneのサーバのrootアカウントは開発側で管理しており、インフラ担当は必要なコマンドだけ実行権限を与えられています。これにより、インフラの担当者が機密データにアクセス出来ない様にしています。通信ネットワーク機器にてこのZoneからの通信はすべて不可にしているため、意図しない外部への通信は発生しません。他のZoneとの通信はDMZにあるproxyサーバを経由して外部接続できます。Notebookを利用できるようにセキュリティルームからのhttpsは許可しています。ポートは443のみ開放しているため、そのままでは1つしか起動できません。好きなように使える様にしました。おわりに今回はバックアップ体制や冗長化、監視について触れていませんが、スタンダードな構成なため割愛しています。対応できますので、参考になれば幸いです。