git-secrets로 git을 통한 정보 유출 방지
8181 단어 git-secretsGitAWS
배웠습니다. 잊지 않도록 정리해 둡니다.
git-secrets란?
Prevents you from committing passwords and other sensitive information to a git repository.
비밀번호 및 기타 민감한 정보를 커밋으로부터 귀하를 보호합니다.
커밋시나 임의의 타이밍에서, 커밋 내용이나 message에 기밀 정보가 포함되어 있지 않은지를 체크할 수 있습니다.
정보 유출이 무엇인가와 문제에 오르는 요즘, 이런 툴로 관리하는 것은 중요하네요.
설치
$brew install git-secrets
명령 개요 (Synopsis)
git secrets --scan [-r|--recursive] [--cached] [--no-index] [--untracked] [<files>...]
git secrets --scan-history
git secrets --install [-f|--force] [<target-directory>]
git secrets --list [--global]
git secrets --add [-a|--allowed] [-l|--literal] [--global] <pattern>
git secrets --add-provider [--global] <command> [arguments...]
git secrets --register-aws [--global]
git secrets --aws-provider [<credentials-file>]
AWS용 초기 설정
AWS에 적합한 설정을 제공하는 전용 명령이 있으므로 이를 입력합니다.
$ git secrets --register-aws --global
실제로 어떤 검사 패턴이 되었습니까?
현재 검사 패턴을 알려면
git secret --list
명령으로 확인할 수 있습니다.$ git secrets --list
secrets.providers git secrets --aws-provider
secrets.patterns (A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}
secrets.patterns ("|')?(AWS|aws|Aws)?_?(SECRET|secret|Secret)?_?(ACCESS|access|Access)?_?(KEY|key|Key)("|')?\s*(:|=>|=)\s*("|')?[A-Za-z0-9/\+=]{40}("|')?
secrets.patterns ("|')?(AWS|aws|Aws)?_?(ACCOUNT|account|Account)_?(ID|id|Id)?("|')?\s*(:|=>|=)\s*("|')?[0-9]{4}\-?[0-9]{4}\-?[0-9]{4}("|')?
secrets.allowed AKIAIOSFODNN7EXAMPLE
secrets.allowed wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
secrets.patterns
로 검사된 것은 연주되고 secrets.allowed
로 지정된 것은 특별히 허가한다, 라고 하는 것이 되어 있습니다.자세한 설정 내용은 이쪽·AWS Access Key ID라고 생각되는 것 (A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}
· AWS Secret Access Key의 할당으로 간주되는 것. 임의의 따옴표로 묶인 ":"또는 "="
· AWS 계정 ID 할당으로 간주되는 것. 임의의 따옴표로 묶인 ":"또는 "="
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)
· ~/.aws/credentials로 지정된 것
연주,
· 샘플로 할당 된 AWS 키의 패턴 허용 (AKIAIOSFODNN7EXAMPLE 및
가 허용되는 설정입니다.
--global
를 붙이는 것으로, 사용자의 공통 설정이 됩니다.$ git secrets --install ~/.git-templates/git-secrets
리포지토리 용 git hooks를
~/.git-templates/git-secrets
에 설치합니다.$ git config --global init.templatedir '~/.git-templates/git-secrets'
설치한 템플릿을 config에서 설정합니다.
이제 AWS에 관해서는 기본적인 부분은 커밋해도 연주할 수 있게 됩니다. 🎉
기타 명령
스캔
지정한 파일/폴더를 검사해 줍니다.
commit은 하지 않지만 체크하고 싶다고 하는 경우에 유효하네요.
$ git secrets --scan test.txt // ファイルの検査
$ git secrets --scan testDir // ディレクトリの検査
$ git secrets --scan -r testDir // 再帰的にディレクトリを検査
scan하는 파일은
git ls-files
로 리스트 업 되는 것만이 대상이므로,대상외입니다. 편리.
덧붙여서
--no-index
옵션을 붙이면(자), git 파일이 아니어도 검사해 줍니다.scan-history
과거의 커밋 이력을 검사해 줍니다.
도중에 git-secrets를 도입한 경우 등에 활약합니다.
$ git secrets --scan-history
add
금지, 허용할 정규식 패턴을 추가할 수 있습니다.
$git secrets --add "secret\s*=\s*"
SourceTree에서 작업
【추기】
SourceTree에서 git-secrets를 설치 한 상태에서 무언가를 조작하려고하면,
git: 'secrets' is not a git command. See 'git --help'.
라는 오류가 나옵니다.
이 문제를 해결하려면,
에서 해결할 수 있습니다.
#gitの場所
$ which git
/usr/bin/git
#git-secretsの場所
$ which git-secrets
/usr/local/bin/git-secrets
in #実行プログラムを同じ階層にコピー
cp /usr/bin/git /usr/local/bin
* Mac에서 권한 오류 등이 발생하면 SIP가 활성화되었을 수 있습니다.
【상급자용】System Integrity Protection(SIP)를 무효로 하는 방법
그리고, SourceTree의 【환경 설정】->【Git】->【시스템의 Git를 사용한다】로,
git의 경로를 지정합시다. (여기에서는/usr/bin/git)
참고문헌
실천 Terraform AWS의 시스템 설계 및 모범 사례 b 임프레스 R&D 삼성당 서점 온디맨드
git-secrets 시작했습니다.
AWS 액세스 키를 Git 리포지토리에 포함시키지 않기 위해 git-secrets를 도입했습니다.
클라우드 파산을 방지하기 위해 git-secrets 사용
Reference
이 문제에 관하여(git-secrets로 git을 통한 정보 유출 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/irico/items/01a36be74fb26148b8e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)