

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# git-secrets를 사용하여 Git 리포지토리에서 민감한 정보 및 보안 문제 검사하기
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets"></a>

*Saurabh Singh, Amazon Web Services*

## 요약
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-summary"></a>

이 패턴은 AWS Labs의 오픈 소스 [git-secrets](https://github.com/awslabs/git-secrets) 도구를 사용하여 Git 소스 리포지토리를 스캔하고 사용자 암호 또는 AWS 액세스 키와 같은 민감한 정보가 포함될 수 있거나 기타 보안 문제가 있는 코드를 찾는 방법을 설명합니다.

`git-secrets`는 커밋, 커밋 메시지, 병합을 검사하여 보안 암호와 같은 민감한 정보가 Git 리포지토리에 추가되지 않도록 합니다. 예를 들어 커밋, 커밋 메시지 또는 병합 기록의 커밋이 구성되거나 금지된 정규 표현식 패턴 중 하나와 일치하면 커밋이 거부됩니다.

## 사전 조건 및 제한 사항
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-prereqs"></a>

**사전 조건 **
+ 활성 AWS 계정
+ 보안 스캔이 필요한 Git 리포지토리
+ Git 클라이언트(버전 2.37.1 이상)가 설치됨

## 아키텍처
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-architecture"></a>

**대상 아키텍처 **
+ Git
+ `git-secrets`

![\[git-secrets 도구를 사용하여 Git 소스 리포지토리에서 민감한 정보를 스캔합니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/4a18e0c8-0935-4ee2-86bf-c1dfcfbc1bcb/images/e4813a76-83c2-4254-b5f4-aafe2b8f2127.png)


 

## 도구
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-tools"></a>
+ [git-secrets](https://github.com/awslabs/git-secrets)는 민감한 정보를 Git 리포지토리에 커밋하지 못하도록 하는 도구입니다.
+ [Git](https://git-scm.com/)은 오픈 소스 분산 버전 제어 시스템입니다.

## 모범 사례
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-best-practices"></a>
+ 모든 수정 내용을 포함하여 항상 Git 저장소를 검사합니다.

  ```
  git secrets --scan-history
  ```

## 에픽
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-epics"></a>

### Amazon EC2 인스턴스에 연결
<a name="connect-to-an-ec2-instance"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| SSH를 사용하여 EC2 인스턴스에 연결합니다. | SSH와 키 쌍 파일을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 연결합니다.로컬 시스템에서 리포지토리에 대해 검사하는 경우 이 단계를 건너뛸 수 있습니다. | 일반 AWS | 

### Git 설치
<a name="install-git"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Git을 설치합니다. | 다음 명령을 사용하여 Git을 설치합니다.<pre>yum install git -y</pre>로컬 컴퓨터를 사용하는 경우, 특정 OS 버전용 Git 클라이언트를 설치할 수 있습니다. 자세한 내용은 [Git 웹 사이트](https://git-scm.com/downloads/guis)를 참조하세요. | 일반 AWS | 

### 소스 리포지토리를 복제하고 git-secrets를 설치합니다.
<a name="clone-the-source-repository-and-install-git-secrets"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Git 소스 리포지토리를 복제합니다. | 검사하려는 Git 리포지토리를 복제하려면 홈 디렉터리에서 **Git 복제** 명령을 선택합니다. | 일반 AWS | 
| git 시크릿을 복제합니다. | `git-secrets` Git 리포지토리를 복제합니다.<pre>git clone https://github.com/awslabs/git-secrets.git</pre>`git-secrets` 실행 시 Git이 `git-secrets`을 픽업하도록 `PATH ` 내부 어딘가에 배치합니다. | 일반 AWS | 
| git-secrets을 설치합니다. | **Unix 및 기타 변종(Linux/macOS)의 경우:**(`git-secrets` 리포지토리에 제공된) `Makefile`의 `install` 대상을 사용하여 도구를 설치할 수 있습니다. `PREFIX` 및 `MANPREFIX` 변수를 사용하여 설치 경로를 사용자 지정할 수 있습니다.<pre>make install</pre>**Windows의 경우:**`git-secrets` 리포지토리에 제공된 PowerShell `install.ps1` 스크립트를 실행합니다. 이 스크립트는 설치 파일을 설치 디렉터리(기본값은 `%USERPROFILE%/.git-secrets`)에 복사하고 디렉터리를 현재 사용자 `PATH`에게 추가합니다.<pre>PS > ./install.ps1</pre>**Homebrew (macOS 사용자)의 경우:**실행합니다.<pre>brew install git-secrets</pre> | 일반 AWS | 

### git 코드 리포지토리 검사
<a name="scan-git-code-repository"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 소스 리포지토리로 이동합니다. | 검사하려는 Git 리포지토리의 디렉터리로 전환합니다.<pre>cd my-git-repository</pre> | 일반 AWS | 
| AWS 규칙 세트(Git 후크)를 등록합니다. | 커밋할 때마다 Git 리포지토리를 검사하도록 `git-secrets`을 구성하려면 다음 명령을 실행합니다.<pre>git secrets --register-aws</pre> | 일반 AWS | 
| 리포지토리를 검사합니다. | 리포지토리 검사를 시작하려면 다음 명령을 실행합니다.<pre>git secrets -–scan</pre> | 일반 AWS | 
| 출력 파일을 검토합니다. | 이 도구는 Git 리포지토리에서 취약점을 발견하면 출력 파일을 생성합니다. 예제:<pre>example.sh:4:AWS_SECRET_ACCESS_KEY = *********<br /><br />[ERROR] Matched one or more prohibited patterns<br /><br />Possible mitigations:<br />- Mark false positives as allowed using: git config --add secrets.allowed ...<br />- Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory<br />- List your configured patterns: git config --get-all secrets.patterns<br />- List your configured allowed patterns: git config --get-all secrets.allowed<br />- List your configured allowed patterns in .gitallowed at repository's root directory<br />- Use --no-verify if this is a one-time false positive</pre> | 일반 AWS | 

## 관련 리소스
<a name="scan-git-repositories-for-sensitive-information-and-security-issues-by-using-git-secrets-resources"></a>
+ [git-secrets 도구](https://github.com/awslabs/git-secrets)