機械翻訳について

HDFS透過的暗号化の使用

HDFS Transparent Encryptionは、ディスク上にあるHadoopデータを保護します。 クラスタで暗号化が有効になると、ディスク上の暗号化されたzones(HDFSディレクトリ)上のデータの書き込みと読み取り操作が自動的に暗号化され、解読されます。 このプロセスは、データを扱うアプリケーションからは見えないため、透過的です。 HDFS Transparent Encryptionは、Hadoopデータへのユーザー・アクセスには影響しませんが、パフォーマンスにはほとんど影響しません。

前提条件

HDFS透過的暗号化を使用するクラスタでは、Kerberosを有効にする必要があります。

重要:

クラスタを作成するときは、セキュリティ設定を有効にする必要があります。 クラスタを作成する人は、「クラスタの作成」で説明されているように、Create ClusterウィザードのSecurityページで「セキュリティ設定: 有効」オプションを選択する必要があります。 クラスタを作成した後は、Kerberosを有効にすることはできません。

セキュリティ設定を有効にしてクラスタを作成すると、次の処理が行われます:

  • HDFS透過暗号化はクラスタで有効になっています。 これを確認するには、コマンドラインで次のように入力します:

    bdacli getinfo cluster_hdfs_transparent_encryption_enabled

  • MIT Kerberos、Sentry、ネットワーク・ファイアウォール、ネットワーク暗号化、および監査もクラスタで有効になります。

  • Kerberos構成の一部として、2つのプリンシパルが作成されます:

    • hdfs/clustername@BDACLOUDSERVICE.ORACLE.COM - このプリンシパルを認証するためのパスワードはClouderaの管理パスワードです。

    • oracle/clustername@BDACLOUDSERVICE.ORACLE.COM - このプリンシパルを認証するためのパスワードは、Oracleオペレーティング・システムのパスワードです。

    どちらの場合も、clusternameはクラスタの名前で、BDACLOUDSERVICE.ORACLE.COMOracle Big Data Cloud MachineのKerberosレルムです。

  • サーバーがクラスタにインストールされ、構成されます。 このサーバーは、HDFS透過暗号化の鍵と証明書を管理するために使用されます。 このサーバーの詳細については、「Cloudera Navigatorサーバー」を参照してください。 (定期的にKey Trustee Serverのデータベースと構成ファイルをバックアップする必要があります。 Clouderaのドキュメント・トピック「サーバーのバックアップとリストア」を参照してください。)

HDFSでの暗号化ゾーンの作成

暗号化ゾーンは、コンテンツが書き込み操作で暗号化され、読み取り操作で復号化されるHDFSディレクトリです。

関連項目:

Cloudera documentation 「暗号化キーとゾーンの管理」

前提条件:

  1. Cloudera Managerでサービスが正常であることを確認してください。 特に、Key Trusteeサービスが健全であることを確認してください。

  2. 2台のKMSホストが同期していることを確認します。

    各KMSホストで、以下のコマンドをrootユーザーとして実行します。 出力は各ホストで同じにする必要があります。 そうでない場合は、Oracle Supportでサービス・リクエスト(SR)を開きます。これは、2つの鍵管理サーバーを同期させる際に問題があることを示しているためです。

    # ls -l /var/lib/kms-keytrustee/keytrustee/.keytrustee 
    # cksum /var/lib/kms-keytrustee/keytrustee/.keytrustee/* 
    # gpg --homedir /var/lib/kms-keytrustee/keytrustee/.keytrustee --fingerprint;
    

特に指定しないかぎり、クラスタの任意のノードでrootユーザーとして次のステップを実行します。

暗号化ゾーンを作成するには:
  1. ゾーンの暗号化キーを作成します:
    1. Clouderaパスワードを使用してhdfs/clustername@BDACLOUDSERVICE.ORACLE.COMプリンシパルを認証します。たとえば、次のようになります:
      # kinit -p hdfs@BDACLOUDSERVICE.ORACLE.COM
      Password for hdfs@BDACLOUDSERVICE.ORACLE.COM: ****
      
    2. 次のコマンドを使用して暗号化キーを作成します::
      hadoop key create keyname
      

      次に例を示します。

      # hadoop key create bdakey
      bdakey has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=128, description='null', 
      attributes=null}. 
      org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@4145bad8 has been updated.
      
  2. 新しい空のディレクトリを作成し、上記で生成されたキーを使用して次の2つのコマンドで暗号化ゾーンにします:
    # hadoop fs -mkdir path
    # hdfs crypto -createZone -keyName keyname -path path 
    

    次に例を示します。

    # hadoop fs -mkdir /zone 
    # hdfs crypto -createZone -keyName bdakey -path /zone
    Added encryption zone /zone
    

    注意:

    暗号化ゾーンはスーパーユーザーとして作成する必要がありますが、その後は暗号化されたファイル・データとメタデータへのアクセスは通常のHDFSファイルシステムのアクセス許可で制御されます。
  3. -listZonesコマンドを実行して新しい暗号化ゾーンの作成を確認します。例えば:
    # hdfs crypto -listZones  
    /zone bdakey  
    

暗号化ゾーンへのファイルの追加

暗号化ゾーンにファイルを追加するには、hadoop fs -putコマンドを使用します。

次に例を示します。

# hadoop fs -put helloWorld /zone

暗号化ゾーンでのキーの表示

暗号化ゾーン内のキーを表示するには、hadoop key listコマンドを使用します。

次に例を示します。

# hadoop key list
Listing keys for KeyProvider: org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@xxxxxx 
MYKEY1 
MYKEY2