2 Oracle Big Data Applianceのセキュリティ

Oracle Big Data Applianceの開発は、非常にセキュアなエンジニアド・システムを提供することに重点を置いています。これは製品のあらゆる側面を対象としています(強い認証(Kerberos)、認可、ネットワーク暗号化、使用されていないデータの暗号化、監査および系統/影響分析)。

2.1 概要

Oracle Big Data Applianceではソフトウェアやデータの不正利用を防ぐために、この項で説明する予防策を取ることができます。

関連項目:

Oracle Big Data Applianceの開発は、Oracleの包括的なOSSA (Oracle Software Security Assurance)標準に従っています。

https://www.oracle.com/corporate/security-practices/assurance/

2.2 事前定義済のユーザーおよびグループについて

Oracle Big Data Applianceにインストールされるオープンソース・パッケージごとに、1つ以上のユーザーおよびグループが作成されます。このようなユーザーのほとんどは、ログイン権限、シェル、またはホーム・ディレクトリを持っていません。これらはデーモンによって使用され、各ユーザー向けのインタフェースとしては設計されていません。たとえば、Hadoopはhdfsユーザーとして、MapReduceはmapredとして、Hiveはhiveとしてそれぞれ動作します。

Oracle Big Data Applianceソフトウェアのインストール直後にHadoopおよびHiveジョブを実行するには、oracle IDを使用できます。このユーザー・アカウントは、ログイン権限、シェル、およびホーム・ディレクトリを保持しています。

Oracle NoSQL DatabaseおよびOracle Data Integratorはoracleユーザーとして実行します。プライマリ・グループはoinstallです。

ノート:

インストール時に作成されたユーザーは、ソフトウェアの操作に必要なため、削除、再作成および変更はしないでください。

次の表に、Oracle Big Data Applianceソフトウェアのインストール時に自動的に作成され、CDHコンポーネントおよびその他のソフトウェア・パッケージによって使用されるオペレーティング・システム・ユーザーおよびグループを示します。

表2-1 オペレーティング・システム・ユーザーおよびグループ

ユーザー名 グループ 使用者 ログイン権限

flume

flume

Apache Flume親およびノード

なし

hbase

hbase

Apache HBaseプロセス

なし

hdfs

hadoop

NameNodeDataNode

なし

hive

hive

Hiveメタストアおよびサーバー・プロセス

なし

hue

hue

Hueプロセス

なし

mapred

hadoop

ResourceManager、NodeManager、Hive Thriftデーモン

あり

mysql

mysql

MySQLサーバー

あり

oozie

oozie

Oozieサーバー

なし

oracle

dbaoinstall

Oracle NoSQL Database、Oracle Loader for Hadoop、Oracle Data IntegratorおよびOracle DBA

あり

puppet

puppet

Puppet親(rootとして実行されるpuppetノード)

なし

sqoop

sqoop

Apache Sqoopメタストア

なし

svctag

自動サービス・リクエスト

なし

zookeeper

zookeeper

ZooKeeperプロセス

なし

2.3 ユーザー認証について

Oracle Big Data Applianceは、ソフトウェア・インストールのオプションとしてKerberosセキュリティをサポートしています。Kerberosで保護されているクラスタにアクセスするためのクライアントとユーザーの設定の詳細は、「Oracle Big Data Applianceへのユーザー・アクセスのサポート」を参照してください。

2.4 ファイングレイン認証について

Hadoop上の通常の認可モデルはHDFSファイル・レベルであり、ユーザーはファイル内のすべてのデータへのアクセス権を持っているか、またはまったく持っていないかのどちらかです。対照的に、Apache SentryはHiveおよびImpala SQL問合せエンジンと統合され、Hadoopに格納されているデータに対するファイングレイン認証の機能を備えています。

Mammothユーティリティ・バージョン2.5より、Oracle Big Data Applianceは、ソフトウェアのインストール中にSentryを自動的に構成します。

2.5 HDFSでの透過的暗号化について

HDFSでの透過的暗号化では、ディスク上に保存されているHadoopデータを保護します。HDFSでの透過的暗号化をOracle Big Data Appliance上のクラスタについて有効化すると、ディスク上の暗号化されたゾーン(HDFSディレクトリ)に対するデータ書込みとデータ読取りが、自動的に暗号および復号化されます。このプロセスは、そのデータを処理しているアプリケーションには表示されないため、透過的です。

HDFSでの透過的暗号化は、パフォーマンスに若干影響する可能性はありますが、Hadoopデータへのユーザー・アクセスには影響しません。

HDFSでの透過的暗号化は、Mammothユーティリティによるソフトウェアの初期インストール時に選択できるオプションです。また、bdacliユーティリティを使用して、いつでもHDFSでの透過的暗号化を有効または無効にすることもできます。HDFSでの透過的暗号化は、Kerberosで保護されたクラスタ上にのみインストールできることに注意してください。

Navigator Key Trustee (キーおよび証明書を管理するサービス)をOracle Big Data Appliance外部の別のサーバー上に設定することをお薦めします。

HDFS透過的暗号化のインストールおよび有効化の手順は、My Oracle Supportの次のMOSドキュメントを参照してください。

タイトル MOSドキュメントID
How to Setup Highly Available Active and Passive Key Trustee Servers on BDA V4.4 Using 5.5 Parcels 2112644.1

パッケージベースのインストールよりも、このMOSドキュメントで説明されているパーセルを使用したインストールをお薦めします。パーセルに関するClouderaのコメントを参照してください。

How to Enable/Disable HDFS Transparent Encryption on Oracle Big Data Appliance V4.4 with bdacli 2111343.1
How to Create Encryption Zones on HDFS on Oracle Big Data Appliance V4.4 2111829.1

ノート:

HDFSでの透過的暗号化またはKerberosのいずれかが無効化されている場合、クラスタ内のHDFSでの透過的暗号化ゾーンに格納されているデータは暗号化されたままとなるため、アクセス不可です。データへのアクセスを復元するには、同じキー・プロバイダを使用してHDFS透過的暗号化を再度有効にします。

関連項目:

暗号化ゾーンにおけるファイルの管理の詳細は、HDFSによる休止状態での暗号化に関するClouderaドキュメント(http://www.cloudera.com)を参照してください。

2.6 HTTPS/ネットワーク暗号化について

Big Data ApplianceでのHTTPSネットワーク/暗号化には、次の2つのコンポーネントがあります。

  • Web Interface Encryption

    WebインタフェースCloudera Manager、OozieおよびHUEについてHTTPSを構成します。この暗号化は、新しいMammothインストールでは自動的に有効化されるようになりました。現在のインストールでは、bdacliユーティリティを介して有効化できます。この機能ではKerberosが有効化されている必要はありません。

  • Encryption for Data in Transit and Services

    この機能には、2つのサブコンポーネントがあります。どちらも、インストール時に構成ユーティリティで有効にしたり、いつでもbdacliユーティリティを使用して有効化/無効化することができるオプションです。どちらの場合もKerberosが有効化されている必要があります。
    • Encrypt Hadoop Services

      これには、HDFS、MapReduceおよびYARNの各Webインタフェース用のSSL暗号化やMapReduceとYARN用の暗号化シャッフルが含まれます。また、これにより、MapReduceおよびYARNロールのWebコンソールへのアクセスの認証も有効化されます。

    • Encrypt HDFS Data Transport

      このオプションにより、DataNodeとクライアントとの間およびDataNode間で転送されるデータの暗号化が有効化されます。

HTTPS/ネットワーク暗号化は、クラスタごとに有効化および無効化されます。『Oracle Big Data Applianceオーナーズ・ガイド』構成ユーティリティの説明には、クラスタを作成するときに、HadoopサービスおよびHDFSデータ・トランスポートの暗号化を有効化するための設定が含まれています。bdacliユーティリティのリファレンス・ページ(または『Oracle Big Data Applianceオーナーズ・ガイド』)には、HTTPS/ネットワーク暗号化コマンドライン・オプションについて記載されています。

関連項目:

CDHクラスタを保護するためにKerberosを使用する方法の概要は、「Oracle Big Data Applianceへのユーザー・アクセスのサポート」 を参照してください。

保存されているHadoopデータを対象としたOracle Big Data Applianceセキュリティの詳細は、「HDFSでの透過的暗号化について」を参照してください。

Cloudera ManagerにおけるHTTPS通信およびCDHにおけるネットワークレベルの暗号化の詳細は、Clouderaドキュメント(http://www.cloudera.com)を参照してください。

2.6.1 Kerberos認証を使用するためのWebブラウザの構成

Webインタフェース暗号化が有効化されている場合、HDFS、MapReduceまたはYARNで暗号化されたWebインタフェースにアクセスする各Webブラウザを、Kerberosを使用して認証するように構成する必要があります。これは、Kerberosを必要としないCloudera Manager、OozieおよびHueの各Webインタフェースでは不要であることに注意してください。

Mozilla Firefox脚注 1、Microsoft Internet Explorer脚注 2およびGoogle Chrome脚注 3でKerberos認証を構成するステップは、次のとおりです。

Mozilla Firefoxを構成するには、次の手順を実行します。

  1. ロケーション・バーにabout:configと入力します。

  2. about:configページの「検索」ボックスに、network.negotiate-auth.trusted-urisと入力します

  3. 「設定名」の下の、network.negotiate-auth.trusted-urisをダブルクリックします。

  4. 「文字列を入力してください」ダイアログで、Kerberosによって保護するWebサーバーのホスト名またはドメイン名を入力します。複数のドメインおよびホスト名は、カンマで区切ります。

Microsoft Internet Explorerを構成するには、次の手順を実行します。

  1. ローカル・イントラネット・ドメインを構成します。

    1. Microsoft Internet Explorerを開き、右上隅にある「設定」歯車アイコンをクリックします。「Internet options」を選択します。

    2. 「セキュリティ」タブを選択します。

    3. 「ローカル イントラネット」ゾーンを選択して、「サイト」をクリックします。

    4. 最初の2つのオプション「ほかのゾーンにないローカル (イントラネット) のサイトをすべて含める」および「プロキシ サーバーを使用しないサイトをすべて含める」を選択します。

    5. 「ローカル イントラネット」ダイアログ・ボックスで「詳細設定」をクリックし、一度に1つずつ、Kerberosで保護されたドメインの名前をWebサイトのリストに追加します。

    6. 「Close」をクリックします。

    7. 「OK」をクリックして構成変更を保存してから、もう一度「OK」をクリックし、「インターネット オプション」パネルを終了します。

  2. Microsoft Internet Explorer用のイントラネット認証を構成します。

    1. 右上隅にある「設定」歯車アイコンをクリックします。「Internet Options」を選択します。

    2. 「セキュリティ」タブを選択します。

    3. 「ローカル イントラネット」ゾーンを選択して、「レベルのカスタマイズ...」ボタンをクリックし、「セキュリティ設定 - ローカル イントラネット ゾーン」ダイアログ・ボックスを開きます。

    4. 「ユーザー認証」オプションまで下方向にスクロールして、「イントラネット ゾーンでのみ自動的にログオンする」を選択します。

    5. 「OK」をクリックして、変更内容を保存します。

Google Chromeを構成するには、次の手順を実行します。

Microsoft Windowsを使用している場合、「コントロール パネル」を使用して、「インターネット オプション」ダイアログ・ボックスに移動します。必要な構成変更は、Microsoft Internet Explorerについて前述した内容と同じです。

脚注 4またはLinuxでは、 --auth-server-whitelistパラメータをgoogle-chromeコマンドに追加します。たとえば、ChromeをLinuxプロンプトから実行するには、google-chromeコマンドを次のように実行します

 google-chrome --auth-server-whitelist = "hostname/domain"

ノート:

Microsoft Windowsでは、WindowsユーザーはKerberosレルムのユーザーである必要があり、有効なチケットを処理する必要があります。これらの要件が満たされない場合は、Kerberosで保護されたWebインタフェースにアクセスしようとすると、ブラウザにHTTP 403が表示されます。

2.7 Puppetのセキュリティについて

Puppetノード・サービス(puppetd)は、すべてのサーバー上でrootとして継続的に実行されます。Puppetマスターに対する更新リクエストのトリガーとなるキック・リクエストを、ポート8139上でリスニングします。このポート上で更新は受信しません。

Puppetマスター・サービス(puppetmasterd)は、Oracle Big Data Applianceのプライマリ・ラックの第1サーバー上で、Puppetユーザーとして継続的に実行されます。ポート8140上で、Puppetノードに更新をプッシュするリクエストをリスニングします。

Puppetノードは、ソフトウェアのインストール時に初期登録するため、証明書を生成してPuppetマスターに送信します。ソフトウェアのアップデートの場合は、PuppetマスターからPuppetノードに信号(キック)が送信され、そこから登録先のPuppetマスター・ノードに対して、すべての構成変更がリクエストされます。

Puppetマスターは、既知の有効な証明書を保持しているPuppetノードに対してのみ更新を送信します。Puppetノードは、初期登録されたPuppetマスターのホスト名からの更新のみを受け付けます。Oracle Big Data Applianceでは、ラック内の通信に内部ネットワークを使用するため、Puppetマスターのホスト名は、/etc/hostsを使用して、内部のプライベートIPアドレスに解決されます。

2.8 Oracle Big Data Applianceで使用されるポート番号

次の表に、CDH用のポート番号の他に使用される可能性のあるポート番号を示します。

特定のサーバー上で使用されるポート番号を確認するには、次の手順を実行します。

  1. Cloudera Managerで、ページ上部にある「Hosts」タブをクリックして、「Hosts」ページを表示します。

  2. 「Name」列でサーバーのリンクをクリックすると、その詳細ページが表示されます。

  3. 「Ports」セクションまで下方向にスクロールします。

関連項目:

CDHコンポーネントのポート番号の詳細なリストは、次に示すClouderaのWebサイトを参照してください。

https://www.cloudera.com/documentation/enterprise/6/6.1/topics/cdh_ports.html#cdh_ports

表2-2 Oracle Big Data Applianceのポート番号

サービス ポート

自動サービス・モニター(ASM)

30920

MySQL Database

3306

Oracle Data Integratorエージェント

20910

Oracle NoSQL Database管理

5001

Oracle NoSQL Databaseプロセス

5010から5020

Oracle NoSQL Database登録

5000

ポート・マップ

111

Puppetマスター・サービス

8140

Puppetノード・サービス

8139

rpc.statd

668

ssh

22

xinetd (サービス・タグ)

6481

Key Management Server (アプライアンスでホストされている場合) 16000

2.9 クラスタの保護に関する追加のガイダンス

クラスタのセキュリティをさらに強化する方法を学習するには、次のリソースを使用します。

Oracleブログ



脚注の凡例

脚注1: Mozilla FirefoxはMozilla Foundationの登録商標です。
脚注2: Microsoft Internet ExplorerはMicrosoft社の登録商標です。
脚注3: Google ChromeはGoogle社の登録商標です
脚注4: Mac OSはApple社の登録商標です。