secure logger
v0.2.1
Dekorator Python untuk menghasilkan entri log yang diformat dan diformat dengan baik. Bekerja pada semua callable: kelas, metode kelas, fungsi modul Python. Secara rekursif redacts nilai kunci Kamus Python berdasarkan pada daftar kunci yang tidak sensitif. Mencegah data aplikasi sensitif Anda seperti pasangan kunci penyedia cloud dari bocor ke log aplikasi Anda.
pip install secure-logger from secure_logger . decorators import secure_logger
import logging
logging . getLogger ( __name__ )
logging . basicConfig ( level = logging . INFO )
class Foo ( object ):
@ secure_logger ( log_level = 'INFO' )
def bar ( self , dict_data , list_data ):
pass
# call your method, passing some sensitive data
dict_data = {
"not_a_sensitive_key" : "you-can-see-me" ,
"aws-access-key-id" : "i-am-hidden" ,
"aws-secret-access-key" : "so-am-i" ,
}
list_data = [ "foo" , "bar" ]
foo = Foo ()
foo . bar ( dict_data = dict_data , list_data = list_data )Output log:
INFO:secure_logger: __main__.bar() ['<__main__.Foo object at 0x103474ac0>'] keyword args: {
"dict_data": {
"not_a_sensitive_key": "you-can-see-me",
"aws-access-key-id": "*** -- secure_logger() -- ***",
"aws-secret-access-key": "*** -- secure_logger() -- ***"
},
"list_data": [
"foo",
"bar"
] from secure_logger . masked_dict import masked_dict , masked_dict2str
dict_data = {
'not_a_sensitive_key' : 'you-can-see-me' ,
'aws-access-key_id' : conf . AWS_ACCESS_KEY_ID ,
'aws-secret-access-key' : conf . AWS_SECRET_ACCESS_KEY
}
print ( masked_dict2str ( dict_data ))Keluaran:
{
" not_a_sensitive_key " : " you-can-see-me " ,
" aws-access-key-id " : " *** -- secure_logger() -- *** " ,
" aws-secret-access-key " : " *** -- secure_logger() -- *** "
}Secure_logger menerima parameter opsional yang dapat Anda konfigurasi sebagai variabel lingkungan bash atau dengan file .env yang ditempatkan di root proyek Anda
Selain itu, Anda dapat mengganti doa individu dari dekorator dengan parameter khusus:
class MyClass ():
@ secure_logger ( log_level = 'DEBUG' , sensitive_keys = [ "password" , "apikey" , "crown_jewels" ], message = "*** -- TOP SECRET -- ***" , indent = 4 )
def another_function ( self , password : str , apikey : str , crown_jewels : List ( dict )):
pass SECURE_LOGGER_REDACTION_MESSAGE = "*** -- secure_logger() -- ***"
SECURE_LOGGER_INDENTATION = 4
SECURE_LOGGER_SENSITIVE_KEYS = [
"password" ,
"token" ,
"client_id" ,
"client_secret" ,
"Authorization" ,
"secret" ,
"access_key_id" ,
"secret_access_key" ,
"access-key-id" ,
"secret-access-key" ,
"aws_access_key_id" ,
"aws_secret_access_key" ,
"aws-access-key-id" ,
"aws-secret-access-key" ,
]
SECURE_LOGGER_LOG_LEVEL = 'DEBUG' Permintaan tarik disambut dan didorong!
Hubungi: Lawrence McDaniel.