Configuraciones de importación y exportación de Ranger

Existen funciones de ayuda de inicialización de datos de Ranger para importar y exportar configuraciones de Ranger en Big Data Service.

Las funciones de ayuda de inicialización de datos de importación y exportación de Ranger son útiles para la resiliencia del cluster, las operaciones de recuperación y el movimiento de políticas de Ranger de un cluster a otro, y son útiles en varios escenarios.

Disaster Recovery
Cree un nuevo cluster y, mediante la función de ayuda import_ranger_policies, puede importar todas las políticas de Ranger presentes en un cluster antiguo a un nuevo cluster.
Entornos de prueba o desarrollo
Para crear un entorno de prueba o desarrollo mediante cualquier política de Ranger de cluster existente, puede utilizar la función de ayuda export_ranger_policies para exportar todas las políticas de Ranger presentes en el cluster de origen a un archivo JSON. Con la función de ayuda import_ranger_policies, puede importar todas las políticas a un cluster de destino.
Nota

Para realizar operaciones de importación y exportación de Ranger, las credenciales de administrador de Ambari y Ranger deben ser las mismas.

Para ejecutar un script de inicialización de datos, consulte Running the Bootstrap Script.

Para obtener más información sobre las funciones auxiliares de importación y exportación de Ranger, consulte:

Funciones de ayuda de importación y exportación de Ranger

Para obtener más información sobre las configuraciones de script de inicialización de datos de importación y exportación de Ranger, consulte Configuraciones de importación y exportación de Ranger.

Para ver ejemplos de funciones auxiliares de importación y exportación de Ranger, consulte Ejemplos de configuración de importación y exportación de Ranger.

Para ejecutar un script de inicialización de datos, consulte Running the Bootstrap Script.

Función Helper Funcionalidad
export_ranger_policies(ranger_config_dict)

Esta función auxiliar exporta políticas de ranger en varios formatos. (JSON, CSV, EXCEL). Pero solo está soportado el formato JSON para ranger-policies-import. Puede crear y transferir el objeto ranger_config_dict que tiene los parámetros necesarios para realizar la operación export_ranger_policies.

Ejemplo:

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
                  }

Información de configuración de Ranger-Export:

output_folder_path: ruta de la carpeta en la que se va a exportar el archivo de política de Ranger.

P parámetros opcionales:

  • service_list: parámetro opcional que se utiliza para exportar políticas solo de la lista de servicios mencionada, por ejemplo, "hdfs, kafka". Por defecto, Ranger exporta políticas de todos los servicios de Ranger.
  • output_file_format: parámetro opcional que se utiliza para exportar políticas en un formato de archivo específico, por ejemplo, "json". Por defecto, Ranger exporta políticas en formato JSON. Los formatos soportados son JSON, CSV, EXCEL.
  • exported_policies_file_name: parámetro opcional que se utiliza para exportar políticas a un nombre de archivo específico, por ejemplo, "Ranger_policies_file". Por defecto, Ranger exporta políticas al archivo Ranger_policies.
  • zone_name: parámetro opcional que se utiliza para exportar políticas de una zona de seguridad específica. Por defecto, Ranger no hace referencia a ninguna zona de seguridad.
  • ssl_cert_path: parámetro opcional que se utiliza para transferir una ruta de certificado SSL específica. Por defecto, Ranger hace referencia a la ruta de certificado SSL por defecto presente en el cluster.

Cuando el trabajo bootstrap-script para exportar políticas de Ranger es correcto, Ranger exporta políticas en un archivo de formato especificado en la ubicación output_folder_path.

import_ranger_policies(ranger_config_dict)

Esta función de ayuda importa las políticas de Ranger mediante el archivo de entrada JSON proporcionado. Puede crear y transferir el objeto ranger_config_dict que tiene los parámetros necesarios para realizar la operación import_ranger_policies.

Ejemplo:

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

Información de configuración de Ranger-Import:

input_file_path: ruta de acceso al archivo Ranger_policies.json, creada por la función Ranger-policy-export en el cluster de origen. El archivo JSON exportado se puede colocar en la ruta local del cluster de destino o en la ubicación del almacén de objetos. (URL de PAR)

Parámetros opcionales:

  • override_policies: parámetro opcional que se utiliza para sustituir las políticas existentes. El valor por defecto es True. Si hay alguna política existente en el cluster de destino, con override_policies=True, Ranger suprime todas las políticas existentes en el cluster de destino y crea políticas mediante el archivo JSON importado.
  • service_list: parámetro opcional que se utiliza para importar políticas solo de la lista de servicios mencionada, por ejemplo, "hdfs, kafka". Por defecto, Ranger importa todas las políticas presentes en el archivo JSON importado.
  • backup_policies: parámetro opcional que se utiliza para realizar la copia de seguridad de las políticas existentes antes de realizar la operación de importación. El valor por defecto es Verdadero. Por lo tanto, Ranger realiza la copia de seguridad de las políticas existentes antes de realizar la operación de importación
  • backup_directory_path: parámetro opcional, ruta de acceso que se utiliza para almacenar todos los archivos de copia de seguridad. La ruta por defecto es {user}/Ranger_Backup_Policy_Files.
  • zonemap_json_dict: parámetro opcional, que proporciona zone-mapping-json para importar políticas a una zona de seguridad especificada. Por ejemplo:
    zonemap_json = {}
                        zonemap_json['zone1']='zone1'
                        
                        ranger_config_dict = {
                        "zonemap_json_dict": zonemap_json,
                        ......
                        
                        }

Cuando el trabajo bootstrap-script para importar políticas de Ranger es correcto, Ranger importa políticas de la input-json-file proporcionada.

restore_ranger_policies(ranger_config_dict)

Esta función auxiliar restaura las políticas de Ranger mediante el archivo de copia de seguridad. Puede transferir el archivo de copia de seguridad que desea utilizar para restaurar las políticas de Ranger. Por defecto, esta función restaura las políticas de Ranger mediante el último archivo de copia de seguridad presente en el directorio de archivos de copia de seguridad. Puede crear y transferir el objeto ranger_config_dict que tiene los parámetros necesarios para realizar la operación restore_ranger_policies.

Ejemplo

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

Información de configuración de restauración de gestor:

restore_policies_input_file_path: parámetro opcional, input-file-path, que se utiliza para restaurar políticas de Ranger. Si no se proporciona, restore-function restaura las políticas de Ranger con el último archivo de copia de seguridad presente en el directorio de archivos de copia de seguridad.

Cuando el trabajo bootstrap-script para restaurar las políticas de Ranger se realiza correctamente, Ranger restaura las políticas con el input-file o el backup-file más reciente proporcionado.

cleanup_ranger_policy_backup_files(ranger_config_dict)

Esta función auxiliar suprime los archivos de copia de seguridad de la política de Ranger mediante la lista de archivos o el patrón. Puede crear y transferir el objeto ranger_config_dict que tiene los parámetros necesarios para realizar la operación cleanup_ranger_policy_backup_files .

Ejemplo:

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

Información de configuración de limpieza de política de gestor:

ranger_backup_files_tobe_removed: patrón de archivo o lista de archivos que se deben suprimir.

Ejemplo:

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

'Ranger_Policies_*': suprime todos los archivos que empiezan por el prefijo Ranger_Policies_

'*': suprime todos los archivos de copia de seguridad presentes en el directorio de archivos de copia de seguridad.

'Ranger_policies_1.json': suprime el archivo Ranger_policies_1.json.

Ejemplos de configuración de importación y exportación de Ranger

Para obtener más información sobre las funciones auxiliares de importación y exportación de Ranger, consulte Funciones auxiliares de importación y exportación de Ranger.

Ejemplo: script de inicialización de datos personalizado con funciones de ayuda para importar políticas de 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)
Ejemplo: secuencia de comandos de inicialización de datos personalizada con funciones de ayuda para exportar políticas de 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)
Ejemplo: secuencia de comandos de inicialización de datos personalizada con funciones de ayuda para restaurar políticas de 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)
Ejemplo: secuencia de comandos de inicialización de datos personalizada con funciones de ayuda para limpiar los archivos de copia de seguridad de la política de 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)