GIT - 실수로 자격 증명 푸시 방지
5802 단어 gitsecuritycollaborationsecrets
요약
때때로 실수로 사람들이 실수로 자격 증명이나 기타 민감한 정보를 git 저장소에 푸시합니다. 예를 들어 AWS_SECRET_ACCESS_KEY 및 AWS_ACCESS_KEY_ID입니다.
분명히 나쁜 사람들은 e.q에 사용하여 git 저장소 또는 기록에서 해당 비밀을 찾을 수 있습니다. 해당 계정에서 크립토마이너를 시작합니다. 그것은 실수로 그 비밀을 퍼뜨린 가난한 사람에게 매우 높은 비용과 청구서로 이어집니다.
이러한 실수를 방지할 수 있는 도구가 있습니다: git-secrets
설치
자신의 OSgit secrets installation를 확인하십시오. 여기서는 Linux용 설치를 보여줍니다.
다음 명령을 입력하십시오.
git clone [email protected]:awslabs/git-secrets.git
cd git-secrets
[sudo] make install
make test
비고
docker run -v <local_git_repo>:/home/git-secrets/ andyaugustin/git-secrets:main git-secrets
rm /usr/local/bin/git-secrets
rm /usr/local/share/man/man1/git-secrets.1
재미있는 부분
이제 git-secrets의 기능을 확인하겠습니다.
모든 리포지토리에 대해 도구를 활성화해야 한다는 점을 명심하십시오. 로컬 저장소에 설치됩니다git hooks.
turorial의 경우 먼저 git repo를 초기화하고 git-secrets를 부트스트랩합니다.
mkdir git-secrets-example
cd git-secrets-example
git init
echo "# git-secrets-example" >> README.md
git add .
git commit [-S] -m "doc(): initial commit :star:"
git-secrets --install
출력에 명시된 바와 같이 로컬 git 저장소에 3개의 새 파일이 추가되었습니다. 그것들은 우리가 실수로 git 데이터베이스에 비밀을 커밋하는 것을 방지할 것입니다. 그 파일 중 하나를 확인하자
$ cat .git/hooks/pre-commit
#!/usr/bin/env bash
git secrets --pre_commit_hook -- "$@"
이 후크는 커밋이 데이터베이스에 추가되기 전에 로컬 git repo에서 매번 실행됩니다. 즉, 언급된 명령에 오류가 있으면 커밋이 로컬 데이터베이스에 추가되지 않습니다.
이제 좀 더 자세한 내용을 이해합시다. 이를 위해 가짜 AWS_ACCESS_KEY_ID 및 AWS_SECRET_ACCESS_KEY를 마크다운 파일에 추가하고 커밋을 시도합니다.
그 열쇠는 정말 가짜입니다. 시도할 수 있습니다 😈
$ git secrets --register-aws
OK
$ echo "This is fake aws key id AKIAIOSFODNN7EXAMPLA" >> README.md
$ git add .
$ git commit -S -m "doc(): accidentally add keys :alien:"
README.md:4:This is fake aws key id AKIAIOSFODNN7EXAMPLA
[ERROR] Matched one or more prohibited patterns
Possible mitigations:
- Mark false positives as allowed using: git config --add secrets.allowed ...
- Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory
- List your configured patterns: git config --get-all secrets.patterns
- List your configured allowed patterns: git config --get-all secrets.allowed
- List your configured allowed patterns in .gitallowed at repository's root directory
- Use --no-verify if this is a one-time false positive
보시다시피 변경 사항에 AWS KEY가 있기 때문에 변경 사항을 git 기록에 커밋할 수 없습니다.
경우에 따라 해당 키를 커밋하려고 합니다. 튜토리얼이나 다른 것에 대한 예제이기 때문일 수 있습니다.
이것은 설정하기가 매우 쉽습니다. .gitallowed라는 파일에 키를 추가하기만 하면 됩니다.
echo "AKIAIOSFODNN7EXAMPLA" >> .gitallowed
git add .
git commit [-S] -m "doc(): now we are able to establish the commit :star:"
Reference
이 문제에 관하여(GIT - 실수로 자격 증명 푸시 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andreasaugustin/git-pretend-accidentally-pushing-git-credentials-11hh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)