def environment_selection_menu(self, environment_names): max_option = self.print_environments(environment_names) option = validations.get_option(0, max_option + 1) if option == 0: exit(0) elif option < max_option: return option
def get_policies(self): redo = True policies = dict() while redo: print("""\ """+self.clear+"""==============================================================\n Informe uma policy para ser adicionada ao token:\n Digite 1 para acesso à secret (default) Digite 2 para acesso ao S3 (Amazon) Digite 3 para acesso ao Dynamo (Amazon) Digite 4 para retornar ao menu principal Digite 0 para sair Policies já adicionadas: """ + ', '.join(list(policies.keys())) + """ """) opt = validations.get_option(0,5) if opt == 0: exit(0) elif opt == 1: if 'read' in policies.keys(): print('Essa policy já foi adicionada!') else: capabilities = self.get_capabilities('read') policies.update({'read': capabilities }) elif opt == 2: if 'aws-s3' in policies.keys(): print('Essa policy já foi adicionada!') # elif aws_s3_role == '': # print('Não existe uma role da aws configurada para essa policy (verifique o arquivo config.yaml)') else: capabilities = self.get_capabilities('aws-s3') policies.update({'aws-s3': capabilities }) elif opt == 3: if 'aws-dynamo' in policies.keys(): print('Essa policy já foi adicionada!') # elif aws_dynamo_role == '': # print('Não existe uma role da aws configurada para essa policy (verifique o arquivo config.yaml)') else: capabilities = self.get_capabilities('aws-dynamo') policies.update({'aws-dynamo': capabilities }) elif opt == 4: # redo = False # main() exit(0) elif opt == 5: exit(0) if not validations.get_yes_or_no('\n\nDeseja adicionar alguma outra policy?', 'n'): redo = False return policies
def x_vault_token_input_method(self): print("""\ """+self.clear+""" ==================================================================\n É necessário buscar o token do Vault para realizar esta operação\n Digite 1 para buscar o token no KeePass Digite 2 para inserir o token manualmente\n""") return validations.get_option(1,3)
def get_capabilities(self, policy_type): capabilities = [] if policy_type == 'read': if not self.get_yes_or_no('\nA policy utilizará alguma permissão além da default (leitura da secret)?', 'n'): capabilities.append('read') else: redo = True while redo: print("""\ """+self.clear+"""==============================================================\n Informe uma permissão para ser adicionada à policy:\n Digite 1 para permissão de leitura (read) Digite 2 para permissão de atualização (update) Digite 3 para permissão de criação (create) Digite 4 para permissão de deleção (delete) Digite 5 para permissão de listagem (list) Permissões já adicionadas: """ + ', '.join(capabilities) + """ """) opt = validations.get_option(1,6) if opt == 1: if 'read' in capabilities: print('Essa policy já foi adicionada!') else: capabilities.append('read') print('Policy adicionada.') elif opt == 2: if 'update' in capabilities: print('Essa policy já foi adicionada!') else: capabilities.append('update') print('Policy adicionada.') elif opt == 3: if 'create' in capabilities: print('Essa policy já foi adicionada!') else: capabilities.append('create') print('Policy adicionada.') elif opt == 4: if 'delete' in capabilities: print('Essa policy já foi adicionada!') else: capabilities.append('delete') print('Policy adicionada.') elif opt == 5: if 'list' in capabilities: print('Essa policy já foi adicionada!') else: capabilities.append('list') print('Policy adiciona da.') if not validations.get_yes_or_no('\n\nDeseja adicionar alguma outra permissão à policy?', 'n'): redo = False else: capabilities.append('update') return capabilities
def update_action_menu(self): print("""\n================================================================== Informe o tipo de atualização a ser realizado: Digite 1 para atualizar um campo Digite 2 para atualizar as policies Digite 3 para remover um campo Digite 0 para voltar ao menu inicial """) opt = validations.get_option(1,5) return opt
def main_menu(self): print("""\ ██╗ ██╗ █████╗ ██╗ ██╗██╗ ████████╗ ██║ ██║██╔══██╗██║ ██║██║ ╚══██╔══╝ ██║ ██║███████║██║ ██║██║ ██║ ╚██╗ ██╔╝██╔══██║██║ ██║██║ ██║ ╚████╔╝ ██║ ██║╚██████╔╝███████╗██║ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ████████╗ ██████╗ ██████╗ ██╗ ╚══██╔══╝██╔═══██╗██╔═══██╗██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ╚██████╔╝╚██████╔╝███████╗ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ v2.0 by Leo Molina ========================================================== Selecione a opção desejada: Digite 1 para criar uma nova secret Digite 2 para consultar uma secret Digite 3 para atualizar uma secret Digite 4 para listar as secrets Digite 5 para recriar um token Digite 6 para renovar um token Digite 7 para consultar um token Digite 8 para revogar um token Digite 9 para operações administrativas Digite 0 para sair Selecione a opção desejada:\n""") min_opt = 0 max_opt = 10 option = None try: option = validations.get_option(min_opt, max_opt) except: print('[DEBUG] - Exceção encontrada, limpando dados da aplicação...') return option