secure logger
v0.2.1
편집되고 멋지게 형식화 된 로그 항목을 생성하는 파이썬 데코레이터. 클래스, 클래스 메소드, 파이썬 모듈 함수 : 모든 콜블 즈에서 작동합니다. 커스터마이징 가능한 케이스 감수성 키 목록을 기반으로 Python Dictionary 키 값을 재귀 적으로 수정합니다. 클라우드 제공 업체 키 페어와 같은 민감한 응용 프로그램 데이터가 응용 프로그램 로그로 유출되는 것을 방지합니다.
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 )로그 출력 :
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 ))산출:
{
" not_a_sensitive_key " : " you-can-see-me " ,
" aws-access-key-id " : " *** -- secure_logger() -- *** " ,
" aws-secret-access-key " : " *** -- secure_logger() -- *** "
}Secure_Logger는 BASH 환경 변수 또는 프로젝트 루트에있는 .env 파일로 구성 할 수있는 선택적 매개 변수를 수락합니다.
또한 맞춤 매개 변수로 데코레이터의 개별 호출을 재정의 할 수 있습니다.
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' 풀 요청을 환영하고 권장합니다!
연락처 : 로렌스 맥다니엘.