yml파일에 aws 시크릿 키가 그대로 적여있는걸 까먹고 커밋을 해버려서 GitHub Push Protection에 의해 push가 차단되는 문제가 발생되었다. 해당 이슈는 GitHub의 보안 기능으로, 소스 코드에 포함된 민감한 정보가 푸쉬되는 것을 막아줍니다.
- GitHub Push Protections이란?:
GitHub Push Protection은 비밀번호, API 키, 암호화 키 등 민감한 데이터를 GitHub에 실수로 푸시하는 것을 방지하기 위한 보안 기능입니다. GitHub는 이러한 민감한 데이터를 탐지하여 사용자에게 알리고, 푸시를 차단하여 보안을 강화합니다.
해결 방법
환경 변수로 AWS 키 관리
키를 소스 코드에 직접 포함하는 것은 보안상 매우 위험합니다. 이를 해결하기 위한 대안으로 환경 변수를 사용하는 방법이 있습니다. 예를 들어, application.yml 파일에서 키를 직접 작성하지 않고, 다음과 같이 환경 변수를 참조합니다.
aws:
access-key: ${AWS_ACCESS_KEY}
secret-key: ${AWS_SECRET_KEY}
그리고 로컬 환경에서는 .bashrc 또는 .zschrc 파일에 추가하여 환경변수를 설정하면 됩니다.
export AWS_ACCESS_KEY=your-access-key
export AWS_SECRET_KEY=your-secret-key
그러면 이미 커밋되어 버린 기록을 삭제할려면?
git reset --hard HEAD~<최근에 커밋한 부분 삭제>
git reset --hard <커밋 해시를 이용하여 보안에 문제되었던 커밋 기록 삭제>
가장 최근에 커밋한게 문제가 되었으면 git rest --hard HEAD~1를 입력하면 된다.
git push -f origin main
변경된 커밋 기록을 github에 적용할려면 해당 명령어를 입력하면된다.
그리고 AWS에서 키를 제거 하고 새로운 키를 다시 발급받아야 한다.
root 계정에서 엑세스 키가 문제있는 IAM 유저에 접속하여 기존에 있는 엑세스키를 삭제하고 새로운 엑세스 키를 발급받아야 합니다.
문제를 해결하고 나면 해당 이메일과 함께 손상된 AWS 엑세스 키를 삭제해줘서 감사하다는 이메일이 날라오면 끝입니다.
'GitHub 오류 및 명령어 정리' 카테고리의 다른 글
git config pull.rebase true (0) | 2024.09.25 |
---|---|
git pull을 해야하는데 오류가 난다면? (0) | 2024.08.06 |
git branch, switch,checkout, merge (0) | 2024.08.01 |
다른 사람의 파일을 받아 내 git에다가 push하기(Mac 기준) (1) | 2024.07.24 |
(gitHub)On branch main nothing to commit, working tree clean 해결 (0) | 2024.07.17 |