GIT - 실수로 자격 증명 푸시 방지

요약



때때로 실수로 사람들이 실수로 자격 증명이나 기타 민감한 정보를 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 지식이 있는 사용자의 경우: git-secret이 이미 설치된 adocker image를 준비했습니다.
  • docker run -v <local_git_repo>:/home/git-secrets/ andyaugustin/git-secrets:main git-secrets

  • Linux에서 제거하려면 복사한 파일을 다시 제거하면 됩니다.

  • 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:"
    




    좋은 웹페이지 즐겨찾기