API 키 및 토큰 재생성
API 키가 노출되었다고 판단되는 경우, 다음 단계에 따라 API 키를 재생성해야 합니다:- Developer Console의 “Apps” 페이지로 이동합니다.
- 해당 App 옆에 있는 “Keys and tokens” 아이콘(🗝)을 클릭합니다.
- 재생성하려는 키 및 토큰 세트 옆에 있는 “Regenerate” 버튼을 클릭합니다.
- Access Token을 재생성하려면 POST oauth/invalidate_token 엔드포인트를 사용하여 토큰을 무효화한 다음 3-legged OAuth flow를 사용하여 토큰을 재생성해야 합니다.
- Bearer Token을 재생성하려면 POST oauth2/invalidate_token 엔드포인트를 사용하여 토큰을 무효화한 다음 POST oauth2/token 엔드포인트를 사용하여 토큰을 재생성해야 합니다.
시크릿을 위한 중앙 파일 사용
시크릿을 포함하기 위해 .ENV 파일이나 다른 종류의 .yaml 파일을 사용하는 것은 도움이 될 수 있는 옵션이지만, 이러한 파일을 실수로 git 저장소에 커밋하는 것을 방지하는 강력한 .gitignore 파일을 반드시 준비해야 합니다.환경 변수
환경 변수를 활용하는 코드를 작성하는 것이 도움이 될 수 있습니다. 다음은 Python으로 작성된 예제입니다:소스 코드 및 버전 관리
개발자가 가장 흔하게 저지르는 보안 실수는 GitHub 및 BitBucket과 같이 접근 가능한 버전 관리 시스템의 소스 코드에 API 키와 토큰을 커밋하는 것입니다. 이러한 코드 저장소 중 상당수는 공개적으로 접근 가능합니다. 이 실수는 공개 코드 저장소에서 매우 자주 발생하기 때문에 API 키를 스크레이핑하는 수익성 있는 봇이 존재할 정도입니다.- 서버 환경 변수를 사용하세요. API 키를 환경 변수에 저장하면 코드와 버전 관리에서 제외됩니다. 또한 환경별로 서로 다른 키를 쉽게 사용할 수 있습니다.
- 소스 관리에서 제외된 구성 파일을 사용하세요. 파일 이름을 .gitignore 파일에 추가하여 파일이 버전 관리에 의해 추적되지 않도록 하세요.
- 버전 관리를 사용한 후 코드에서 API 키를 제거하더라도, 이전 버전의 코드베이스에 액세스하여 API 키에 접근할 수 있을 가능성이 큽니다. 다음 섹션에서 설명한 대로 API 키를 재생성하세요.
데이터베이스
액세스 토큰을 데이터베이스에 저장해야 하는 경우 다음 사항에 유의하세요:- 액세스 토큰이 토큰 소유자만 읽을 수 있도록 데이터베이스에 대한 액세스를 제한하세요.
- 액세스 토큰용 데이터베이스 테이블에 대한 편집/쓰기 권한을 제한하세요 - 이는 키 관리 시스템으로 자동화되어야 합니다.
- 데이터 저장소에 저장하기 전에 액세스 토큰을 암호화하세요.