コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
    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)
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
    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