Configurações de Importação e Exportação do Ranger

Existem funções auxiliares de bootstrap de importação e exportação do Ranger para importar e exportar configurações do Ranger no Big Data Service.

As funções auxiliares de inicialização de importação e exportação do Ranger são úteis para resiliência de cluster, operações de recuperação e movimentação de políticas do Ranger de um cluster para outro e são úteis em vários cenários.

Disaster Recovery
Crie um novo cluster e usando a função auxiliar import_ranger_policies, você pode importar todas as políticas do Ranger presentes em um cluster antigo para um novo cluster.
Ambientes de Teste ou Desenvolvimento
Para criar um ambiente de teste ou desenvolvimento usando qualquer política existente do Ranger do cluster, você pode usar a função auxiliar export_ranger_policies para exportar todas as políticas do Ranger presentes no cluster de origem para um arquivo JSON. Usando a função auxiliar import_ranger_policies, você pode importar todas as políticas para um cluster de destino.
Observação

Para executar operações de importação e exportação do Ranger, as credenciais de administrador do Ambari e do Ranger devem ser iguais.

Para executar um script de inicialização, consulte Executando o Script de Bootstrap.

Observação

Para importar políticas antigas do Ranger antes do Big Data Service 3.1.1, certifique-se de que todos os usuários da lista na política estejam disponíveis.

Para obter mais informações sobre as funções auxiliares de importação e exportação do Ranger, consulte:

Funções Auxiliares de Importação e Exportação do Ranger

Para obter mais informações sobre configurações de script de bootstrap de importação e exportação do Ranger, consulte Configurações de Importação e Exportação do Ranger.

Para exemplos de funções auxiliares de importação e exportação do Ranger, consulte Exemplos de Configuração de Importação e Exportação do Ranger.

Para executar um script de inicialização, consulte Executando o Script de Bootstrap.

Função Auxiliar Funcionalidade
export_ranger_policies(ranger_config_dict)

Esta função auxiliar exporta políticas de ranger em vários formatos. (JSON, CSV, EXCEL). Mas só há suporte para o formato JSON no ranger-policies-import. Você pode criar e informar o objeto ranger_config_dict que tem parâmetros necessários para executar a operação export_ranger_policies.

Exemplo:

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: O caminho da pasta em que o arquivo de política do Ranger será exportado.

Parâmetros Opcionais:

  • service_list: Um parâmetro opcional usado para exportar políticas apenas da lista de serviços mencionada, por exemplo, "hdfs, kafka". Por padrão, o Ranger exporta políticas de todos os serviços do Ranger.
  • output_file_format: Um parâmetro opcional usado para exportar políticas em um formato de arquivo específico, por exemplo, "json". Por padrão, o Ranger exporta políticas no formato JSON. Os formatos suportados são JSON, CSV, EXCEL.
  • exported_policies_file_name: Um parâmetro opcional usado para exportar políticas para um nome de arquivo específico, por exemplo, "Ranger_policies_file". Por padrão, o Ranger exporta políticas para o arquivo Ranger_policies.
  • zone_name: Um parâmetro opcional usado para exportar políticas de uma zona de segurança específica. Por padrão, o Ranger não se refere a nenhuma zona de segurança.
  • ssl_cert_path: Um parâmetro opcional usado para informar um caminho de certificado SSL específico. Por padrão, o Ranger refere-se ao caminho do certificado SSL padrão presente no cluster.

Quando o job bootstrap-script para exportar políticas do Ranger for bem-sucedido, o Ranger exportará políticas em um arquivo de formato especificado no local output_folder_path.

import_ranger_policies(ranger_config_dict)

Esta função auxiliar importa políticas do Ranger usando o arquivo de entrada JSON fornecido. Você pode criar e informar o objeto ranger_config_dict que tem parâmetros obrigatórios para executar a operação import_ranger_policies.

Exemplo:

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: O caminho para o arquivo Ranger_policies.json, criado pela função Ranger-policy-export no cluster de origem. O arquivo JSON exportado pode ser colocado no caminho local do cluster de destino ou no local do Armazenamento de Objetos (URL PAR)

Parâmetros Opcionais:

  • override_policies: Um parâmetro opcional usado para substituir políticas existentes. O valor default é Verdadeiro. Se houver alguma política existente no cluster de destino, com override_policies=True, o Ranger excluirá todas as políticas existentes no cluster de destino e criará políticas usando o arquivo JSON importado.
  • service_list: Um parâmetro opcional usado para importar políticas apenas da lista mencionada de serviços, por exemplo, "hdfs, kafka". Por padrão, o Ranger importa todas as políticas presentes no arquivo JSON importado.
  • backup_policies: Um parâmetro opcional usado para fazer backup das políticas existentes antes de executar a operação de importação. O valor padrão é Verdadeiro. Portanto, o Ranger faz o backup das políticas existentes antes de executar a operação de importação
  • backup_directory_path: Um parâmetro opcional, caminho que é usado para armazenar todos os arquivos de backup. O caminho padrão é {user}/Ranger_Backup_Policy_Files.
  • zonemap_json_dict: Um parâmetro opcional, para fornecer zone-mapping-json a fim de importar políticas para uma zona de segurança especificada. Por exemplo:
    zonemap_json = {}
                        zonemap_json['zone1']='zone1'
                        
                        ranger_config_dict = {
                        "zonemap_json_dict": zonemap_json,
                        ......
                        
                        }

Quando o job bootstrap-script para importar políticas do Ranger for bem-sucedido, o Ranger importará políticas do input-json-file fornecido.

restore_ranger_policies(ranger_config_dict)

Esta função auxiliar restaura políticas do Ranger usando o arquivo de backup. Você pode informar qual arquivo de backup usar para restaurar as políticas do Ranger. Por padrão, esta função restaura políticas do Ranger usando o arquivo de backup mais recente presente no diretório de arquivos de backup. Você pode criar e informar o objeto ranger_config_dict que tem parâmetros necessários para executar a operação restore_ranger_policies.

Exemplo

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

Ranger-Restore-Config-Info:

restore_policies_input_file_path: Um parâmetro opcional, input-file-path, usado para restaurar políticas do Ranger. Se não for fornecido, restore-function restaurará as políticas do Ranger usando o arquivo de backup mais recente presente no diretório de arquivos de backup.

Quando o job de bootstrap-script para restaurar políticas do Ranger é bem-sucedido, o Ranger restaura políticas usando o input-file fornecido ou o backup-file mais recente.

cleanup_ranger_policy_backup_files(ranger_config_dict)

Esta função auxiliar exclui os arquivos de backup da política do Ranger usando a lista de arquivos ou o padrão. Você pode criar e informar o objeto ranger_config_dict que tem os parâmetros necessários para executar a operação cleanup_ranger_policy_backup_files .

Exemplo:

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: Padrão de arquivo ou lista de arquivos que precisam ser excluídos.

Exemplo:

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

'Ranger_Policies_*': Exclui todos os arquivos que começam com o prefixo Ranger_Policies_

'*': Exclui todos os arquivos de backup presentes no diretório de arquivos de backup.

'Ranger_policies_1.json': Exclui o arquivo Ranger_policies_1.json.

Exemplos de Configuração de Importação e Exportação do Ranger

Para obter mais informações sobre as funções auxiliares de importação e exportação do Ranger, consulte Funções Auxiliares de Importação e Exportação do Ranger.

Exemplo: Script de bootstrap personalizado com funções de ajuda para importar políticas do 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)
Exemplo: Script de bootstrap personalizado com funções de ajuda para exportar políticas do 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)
Exemplo: Script de bootstrap personalizado com funções de ajuda para restaurar políticas do 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)
Exemplo: Script de bootstrap personalizado com funções de ajuda para limpar arquivos de backup de políticas do 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)