本連載は、「ビッグデータプロジェクトの“進め方”」を業務視点/ビジネス視点の両面から理解し、具体的に実践していくためのナレッジアーカイブです。今回は、ビッグデータ基盤における本番環境の設計で考慮すべき「セキュリティ管理」と「データ管理」の項目を解説します。
前編は、非機能要求という観点で見たPoC環境と本番環境の違いと、本番環境の設計で考慮すべき項目の1つ目となる「クラスタ管理」のポイントを解説しました。後編となる今回は、続く「セキュリティ管理」と「データ管理」の項目を解説します。
ビッグデータ基盤は広義のデータベースなので、セキュリティ管理は必須です。セキュリティは、主に「認証」「認可」「監査」「暗号化」の4項目に分類されます。以下1つずつ説明していきます。
認証は、クラスタにアクセスしてきた主体(ユーザーやシステム)が何者であるかを確認するための仕組みです。これにより、クラスタ内にアクセスしてもよいかどうかを確認します。
Hadoopの世界においてはKerberos認証が標準的に用いられています。このKerberos認証の設定はとても複雑で、しかもサーバ1台1台に設定しなければいけないために、何百台とサーバを持つHadoopクラスタに対して手動での設定は極めて困難です。以前はそれしか方法がなかったので手動で設定していましたが、昨今は先述の管理ツールがウィザード形式での一括設定機能を持つようになったので、それを使えば簡単に設定できます。
認可とは、認証済みのユーザーに対して、何をしていいのか、あるいはしてはいけないのかを設定する仕組みです。アクセス制御ともいいます。
2017年現在のHadoopクラスタでは統一的にアクセス制御を管理する仕組みがありません。HDFSの場合は独自で持つACL(Access Control List)を使い、HiveやImpalaなどのSQLエンジンや「Apache Solr(以下、Solr)」などの検索エンジンは「Sentry」と呼ばれるアクセス制御ポリシー管理の仕組みを使って管理していきます。こうした認証機能があることを踏まえた上で、誰にどこをアクセスさせるかを設計する必要があります。
複数のプロジェクトが相乗りするシステムを構想しているのであれば、それらのプロジェクトごとにHDFSのディレクトリやDBを作成し、お互いがアクセスできない、あるいは最低でも書き込みできないように設定しておくとよいでしょう。
データベースのような重要なシステムに対しては、誰がいつどのデータにアクセスしたかを後から確認できる、監査の仕組みが重要です。Clouderaでは「Cloudera Navigator」というソフトウェアの中に監査機能があります。
認証、認可、監査の仕組みはソフトウェアレベルでのセキュリティです。そのために、ディスクを抜かれてしまうなどの物理的なアクセスに対しては無力です。そこで、物理アクセスから守るために暗号化の仕組みが必要になります。
Hadoopは標準で暗号化機能を持っていますが、これはHDFS内部だけの暗号化のみで、しかも単一の復号鍵、要するにマスターキーのみしか管理できません。エンタープライズレベルでの暗号化要件を満たすためには、商用ソフトウェアの助けが必要となります。
Clouderaでは、「Navigator Encrypt」という暗号化の仕組みを提供しています。これにより、HDFSだけではなくメタデータやログファイルを暗号化したり、複数の鍵を管理したりすることができるようになります。
Copyright © ITmedia, Inc. All Rights Reserved.