Node.js 스크립트에서 AWS 액세스 키 오류 커밋 방지

개시하다


이 기사는 노드다.js의 스크립트를 사용하여git의pre-commiit 갈고리 단계에서 AWS 액세스 키가 섞여 있는지 확인하고 제출을 강제로 정지하는 수법을 확인합니다.

문제.


AWS의 액세스 키를 감지하고 커밋을 방지하는 방법git-secrets이 있습니다.이 소프트웨어는 액세스 키의 검출과 유출을 방지하기 위해 코드를 고속으로 스캔할 수 있다.AWS-Labs에서 개발한 제품으로 안정성도 높습니다.

가져오기 어려움


git-secrets는 조개 스크립트로 구성되어 있습니다.mac는 Homebrew로 통일적으로 설치할 수 있지만 패키지로 구성되어 있습니다.제이슨 안 남았어.각 구성원이 설정해야 합니다.
GUI 응용 프로그램에서git-secrets를 조작할 때 내장된 응용 프로그램의git에 대해 기호 링크를 하거나 사용하는git를 시스템으로 전환해야 합니다.
  • SourceTree(Macintosh)에서 git-secrets를 사용하려면
  • Git-secrets에서도 git-secrets를 사용하고 싶어요.
  • 또한 전 세계에 설치할 때 해제할 때 주의해야 한다.
  • git secrets 삭제 시 고려 사항
  • 창고에서 복제yarn를 해달라는 말 한마디로 끝난 환경을 설명하는 것보다 가져오는 시간이 많다.

    고스키와 공을 치다


    husky는 간단한 패키지입니다.json에서 정의할 수 있는 패키지입니다.
    ▼package.json
    {
      "husky": {
        "hooks": {
          "pre-commit": "npm test",
          "...": "..."
        }
      }
    }
    
    git의 다양한 훅을 이렇게 정의해서 패키지를 만듭니다.json 내의 스크립트를 호출할 수 있습니다.
    예를 들어 pretty-quick와 함께 사용하면 제출하기 전에 스테이지의 파일Prettier을 성형한 후 제출할 수 있다.
    하지만 이 포장은git-secrets와 함께 공을 칠 것이다.git hook 파일이 설치할 때 다시 쓰기 때문에
    git secrets --install
    
    생성된 파일을 덮어씁니다.이 문제는 허스키뿐만 아니라 훅 파일을 다시 쓰는 모든 패키지에서 발생한다.
    물론 훅 파일을 수동으로 합치면 두 가지 기능을 동시에 사용할 수 있지만 포장을 다시 설치할 때 파괴되기 때문에 사용하기가 어렵다.

    대책안


    상술한 문제의 대책으로 삼다
  • node.js에서 실행되는 스크립트(husky와 공존)
  • pre-commiit 연결 단계에서 AWS의 접근 키를 검출
  • 키가 있으면 디버깅 처리를 강제로 중지합니다
  • 나는 이 조건만 충족하면 문제를 해결할 수 있다고 생각한다.

    확인


    그래서 나는 각본을 짜 보았다.
    작업을 검증하려면 로컬 클론 웨어하우스 npm install 또는 yarn을 통해 의존 패키지 가져오기 AWS 키가 포함된 텍스트 파일 로드 제출 후 pre-commiit에 의해 차일 수 있습니다 pretty-quick과 공존 동작 나는 이런 일련의 동작이 확인할 수 있을 것이라고 생각한다. CLI 모듈로 가져오기 방법 2018/09/12 검증 스크립트를 CLI 모듈로 수정하고 업데이트하려면 이 문서를 참조하십시오.감사합니다.
  • 3분이면 완성되는 npm 모듈
  • 명령줄에서 실행되는 npm 라이브러리 만들기
  • npm 또는 yarn으로 모듈을 읽을 GiitHub의 URL을 지정합니다.
    yarn add https://github.com/MasatoMakino/node-secrets -D
    
    node-secrets 명령은 npm-Sripts 또는 husky에서 호출할 수 있습니다.
    ▼package.json
    "scripts": {
      "secrets": "node-secrets"
    },
    "husky": {
      "hooks": {
        "pre-commit": "pretty-quick --staged && node-secrets"
      }
    }
    

    시험 시 주의사항


    테스트에서 진정한 열쇠를 사용하는 것을 절대 피하세요.
    git-secrets를 사용하여 클라우드 파산을 피하다
    본고에서 말한 바와 같이git-secrets는 우리에게 테스트용 가짜 열쇠를 준비했습니다. 그 위에 걸려 있는지 시험해 보세요.

    검증되지 않은 부분


    이 스크립트에서 다음 사항을 확인하지 못했습니다:.
  • 오류 감지/검출 누락 가능성
  • 대규모 창고 성능 문제
  • 바이너리를 정상적으로 분할할 수 있는지 여부
  • 제안을 검증하기 위해서일 뿐이니 주의하세요.

    좋은 웹페이지 즐겨찾기