Rangerインポートおよびエクスポートの構成

Big Data ServiceでRanger構成をインポートおよびエクスポートするためのRangerインポートおよびエクスポート・ブートストラップ・ヘルパー機能が存在します。

Rangerインポートおよびエクスポートのブートストラップ・ヘルパー関数は、クラスタの回復性、リカバリ操作、およびRangerポリシーをあるクラスタから別のクラスタに移動する場合に役立ち、いくつかのシナリオで役立ちます。

障害回復
新しいクラスタを作成し、import_ranger_policiesヘルパー関数を使用して、古いクラスタに存在するすべてのRangerポリシーを新しいクラスタにインポートできます。
テスト環境または開発環境
既存のクラスタRangerポリシーを使用してテスト環境または開発環境を作成するには、export_ranger_policiesヘルパー関数を使用して、ソース・クラスタに存在するRangerポリシーをすべてJSONファイルにエクスポートします。import_ranger_policiesヘルパー・ファンクションを使用すると、すべてのポリシーを宛先クラスタにインポートできます。
ノート

Rangerのインポートおよびエクスポート操作を実行するには、AmbariとRangerの管理資格証明が同じである必要があります。

ブートストラップ・スクリプトを実行するには、「ブートストラップ・スクリプトの実行」を参照してください。

ノート

ビッグ・データ・サービス3.1.1より前に古いRangerポリシーをインポートするには、ポリシー内のすべてのリスト・ユーザーが使用可能であることを確認してください。

Ranger importおよびexportヘルパー関数の詳細は、次を参照してください。

レンジャーのインポートおよびエクスポート・ヘルパー関数

Rangerインポートおよびエクスポートのブートストラップ・スクリプト構成の詳細は、「Rangerインポートおよびエクスポートの構成」を参照してください。

Rangerインポートおよびエクスポート・ヘルパー関数の例は、Rangerインポートおよびエクスポート構成の例を参照してください。

ブートストラップ・スクリプトを実行するには、「ブートストラップ・スクリプトの実行」を参照してください。

Helper関数 機能
export_ranger_policies(ranger_config_dict)

このヘルパー関数は、複数の形式でレンジャー・ポリシーをエクスポートします。(JSON、CSV、EXCEL)。ただし、ranger-policies-importではJSON形式のみサポートされます。export_ranger_policies操作の実行に必要なパラメータを持つranger_config_dictオブジェクトを作成して渡すことができます。

例:

ranger_config_dict = {
                  "output_folder_path": "/tmp",  
                  # Mandatory param for export operation
                  "output_file_format": "json", 
                  # optional param
                  "service_list": "hdfs, kafka", 
                  # optional param
                  "exported_policies_file_name": 
                  "Ranger_policies_file", # optional param
                  "zone_name": "security_zone1", 
                  # optional param
                  "ssl_cert_path": "/tmp/ssl_cert.crt"  
                  # optional param
                  }

Ranger-Export-Config-Info:

output_folder_path: Rangerポリシー・ファイルをエクスポートするフォルダ・パス。

オプションのパラメータ:

  • service_list: 前述のサービス・リストからのみポリシーをエクスポートするために使用されるオプションのパラメータ( "hdfs, kafka"など)。デフォルトでは、RangerはすべてのRangerサービスからポリシーをエクスポートします。
  • output_file_format: 特定のファイル形式でポリシーをエクスポートするために使用されるオプションのパラメータ("json"など)。デフォルトでは、RangerはポリシーをJSON形式でエクスポートします。サポートされている形式は、JSON、CSV、EXCELです。
  • exported_policies_file_name: ポリシーを特定のファイル名にエクスポートするために使用するオプションのパラメータ("Ranger_policies_file"など)。デフォルトでは、RangerはポリシーをRanger_policiesファイルにエクスポートします。
  • zone_name: 特定のセキュリティ・ゾーンからポリシーをエクスポートするために使用されるオプションのパラメータ。デフォルトでは、Rangerはセキュリティ・ゾーンを参照しません。
  • ssl_cert_path: 特定のSSL証明書パスを渡すために使用されるオプションのパラメータ。デフォルトでは、Rangerはクラスタに存在するデフォルトのSSL証明書パスを示します。

Rangerポリシーをエクスポートするbootstrap-scriptジョブが成功すると、Rangerはoutput_folder_pathの場所にある指定されたフォーマット・ファイルにポリシーをエクスポートします。

import_ranger_policies(ranger_config_dict)

このヘルパー関数は、指定されたJSON入力ファイルを使用してRangerポリシーをインポートします。import_ranger_policies操作の実行に必要なパラメータを持つranger_config_dictオブジェクトを作成して渡すことができます。

例:

ranger_config_dict = {
    "input_file_path": "/tmp/Ranger_policies.json",  
# Mandatory param for import operation
    "service_list": "hdfs, kafka" # optional param  
}

Ranger-Import-Config-Info:

input_file_path: ソース・クラスタでRanger-policy-export関数によって作成されたRanger_policies.jsonファイルへのパス。エクスポートされたJSONファイルは、ターゲット・クラスタのローカル・パスまたはオブジェクト・ストアの場所に配置できます。(PAR URL)

オプションのパラメータ:

  • override_policies: 既存のポリシーをオーバーライドするために使用されるオプションのパラメータ。デフォルト値はTrueです宛先クラスタ内の既存のポリシーがoverride_policies=Trueの場合、Rangerは宛先クラスタ内の既存のポリシーをすべて削除し、インポートされたJSONファイルを使用してポリシーを作成します。
  • service_list: 前述のサービス・リストからのみポリシーをインポートするために使用されるオプションのパラメータ("hdfs, kafka"など)。デフォルトでは、RangerはインポートされたJSONファイルに存在するすべてのポリシーをインポートします。
  • backup_policies: インポート操作を実行する前に既存のポリシーのバックアップを取得するために使用されるオプションのパラメータ。デフォルトの値はTrueです。したがって、Rangerはインポート操作を実行する前に既存のポリシーのバックアップを取得します
  • backup_directory_path: オプションのパラメータで、すべてのバックアップ・ファイルの格納に使用されるパス。デフォルトのパスは{user}/Ranger_Backup_Policy_Filesです。
  • zonemap_json_dict: zone-mapping-jsonを指定して、指定したセキュリティ・ゾーンにポリシーをインポートするためのオプションのパラメータ。例:
    zonemap_json = {}
                        zonemap_json['zone1']='zone1'
                        
                        ranger_config_dict = {
                        "zonemap_json_dict": zonemap_json,
                        ......
                        
                        }

Rangerポリシーをインポートするbootstrap-scriptジョブが成功すると、Rangerは指定されたinput-json-fileからポリシーをインポートします。

restore_ranger_policies(ranger_config_dict)

このヘルパー関数は、バックアップ・ファイルを使用してRangerポリシーをリストアします。Rangerポリシーのリストアに使用するバックアップ・ファイルを渡すことができます。デフォルトでは、このファンクションは、バックアップ・ファイル・ディレクトリに存在する最新のバックアップ・ファイルを使用してRangerポリシーをリストアします。restore_ranger_policies操作を実行するために必要なパラメータを持つranger_config_dictオブジェクトを作成して渡すことができます。

ranger_config_dict = {
                "restore_policies_input_file_path": 
"/tmp/Ranger_policies.json"  # Optional
                }

Ranger-Restore-Config-Info:

restore_policies_input_file_path: Rangerポリシーのリストアに使用するオプションのパラメータinput-file-path。指定しない場合、restore-functionは、バックアップ・ファイル・ディレクトリに存在する最新のバックアップ・ファイルを使用してRangerポリシーをリストアします。

Rangerポリシーをリストアするbootstrap-scriptジョブが成功すると、Rangerは指定されたinput-fileまたは最新のbackup-fileを使用してポリシーをリストアします。

cleanup_ranger_policy_backup_files(ranger_config_dict)

このヘルパー・ファンクションは、ファイル・リストまたはパターンを使用してRangerポリシー・バックアップ・ファイルを削除します。cleanup_ranger_policy_backup_files 操作を実行するために必要なパラメータを持つranger_config_dictオブジェクトを作成して渡すことができます。

例:

ranger_config_dict = {
                  "ranger_backup_files_tobe_removed": 
['Ranger_Policies_*']  # Mandatory param for cleanup operation
                  }

Ranger-Policy-Cleanup-Config-Info:

ranger_backup_files_tobe_removed: ファイル・パターンまたは削除する必要があるファイルのリスト。

例:

 "ranger_backup_files_tobe_removed":
                    ['Ranger_Policies_*', '*', 
Ranger_policies_1.json]

'Ranger_Policies_*': 接頭辞Ranger_Policies_で始まるすべてのファイルを削除します

'*': バックアップ・ファイル・ディレクトリに存在するすべてのバックアップ・ファイルを削除します。

'Ranger_policies_1.json': Ranger_policies_1.jsonファイルを削除します。

Rangerのインポートおよびエクスポート構成の例

Rangerインポートおよびエクスポートのヘルパー関数の詳細は、Rangerインポートおよびエクスポートのヘルパー関数を参照してください。

例: Rangerポリシーをインポートするためのヘルプ関数を含むカスタム・ブートストラップ・スクリプト
#!/usr/bin/env python2.7
        
        def execute(ranger_policy_helper):
        logger = ranger_policy_helper.getLogger()
        
        logger.info('Testing Ranger export-import functions')
        
        ranger_config_dict = {
        "input_file_path": "<Ranger_Policies.json_input_filepath>",  # Mandatory param, Input file to import policies.
        "service_list": "hdfs,hive"  # Optional param, imports policies only from hdfs and hive services.
        }
        
        ranger_policy_helper.import_ranger_policies(ranger_config_dict)
例: Rangerポリシーをエクスポートするためのヘルプ関数を含むカスタム・ブートストラップ・スクリプト
#!/usr/bin/env python2.7
        
        def execute(ranger_policy_helper):
        logger = ranger_policy_helper.getLogger()
        
        logger.info('Testing Ranger export-import functions')
        
        ranger_config_dict = {
        "output_folder_path": "/tmp",  # Mandatory param, exports output file to /tmp folder
        "service_list": "hdfs,hive"  # Optional param, exports policies only from hdfs and hive services.
        }
        
        ranger_policy_helper.export_ranger_policies(ranger_config_dict)
例: Rangerポリシーをリストアするためのヘルプ関数を含むカスタム・ブートストラップ・スクリプト
#!/usr/bin/env python2.7
 
def execute(ranger_policy_helper):
    logger = ranger_policy_helper.getLogger()
 
    logger.info('Testing Ranger export-import functions')
 
# Restores Ranger policies from the provided input file. If User don't provide this param, restore-function restores Ranger policies using latest backup file present in the backup files directory.
     ranger_config_dict = {
        "restore_policies_input_file_path": "/tmp/Ranger_Policies.json"  # Optional param
 
    }
 
    ranger_policy_helper.restore_ranger_policies(ranger_config_dict)
例: Rangerポリシー・バックアップ・ファイルをクリーンアップするためのヘルプ関数を含むカスタム・ブートストラップ・スクリプト
#!/usr/bin/env python2.7
 
def execute(ranger_policy_helper):
    logger = ranger_policy_helper.getLogger()
 
    logger.info('Testing Ranger export-import functions')
 
     ranger_config_dict = {
        "ranger_backup_files_tobe_removed": ['Ranger_Policies_*','*','Ranger_Policies.json']  # File-list or pattern to delete Ranger-policy backup files.
 
    }
 
    ranger_policy_helper.cleanup_ranger_policy_backup_files(ranger_config_dict)