[api] travis-ci에서 비밀 API 키 사용

프로젝트 중 하나에 travis-ci 를 사용하고 싶습니다 .

프로젝트는 API 래퍼이므로 대부분의 테스트는 비밀 API 키 사용에 의존합니다. 로컬에서 테스트하기 위해 환경 변수로 저장합니다. Travis에서 이러한 키를 안전하게 사용하는 방법은 무엇입니까?



답변

Travis에는 환경 변수를 암호화하는 기능이 있습니다 ( “Encrypting environment variables” ). 이는 비밀 API 키를 보호하는 데 사용할 수 있습니다. Heroku API 키에 성공적으로 사용했습니다.

travis gem을 설치하고 원하는 문자열을 암호화 한 다음 암호화 된 문자열을 .travis.yml. 암호화는 하나의 저장소에만 유효합니다. 이 travis명령은 리포지토리에 대한 공개 키를 가져온 다음 빌드 중에 문자열을 해독 할 수 있습니다.

gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo

그러면 다음과 같은 출력이 제공됩니다.

Please add the following to your .travis.yml file:

  secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="


답변

travis ci 문서 에 따르면 다음 과 같이 말합니다.

Heroku 및 Travis CI 명령 줄 클라이언트가 모두 설치되어있는 경우 프로젝트 디렉터리에서 다음 명령을 실행하여 키를 가져 와서 암호화 한 다음 .travis.yml에 추가 할 수 있습니다.

travis encrypt $(heroku auth:token) --add deploy.api_key

OS에 따라 heroku 클라이언트를 설치하려면 다음 자습서를 참조하십시오.


답변

저장소 설정에서 비밀 변수를 정의 할 수도 있습니다 .

저장소 설정에 정의 된 변수는 모든 빌드에서 동일하며 이전 빌드를 다시 시작하면 최신 값을 사용합니다. 이러한 변수는 포크에서 자동으로 사용할 수 없습니다.

리포지토리 설정에서 다음과 같은 변수를 정의합니다.

  • 저장소마다 다릅니다.
  • 타사 자격 증명과 같은 민감한 데이터를 포함합니다.

리포지토리 설정에서 변수를 정의하려면 로그인했는지 확인하고 해당 리포지토리로 이동 한 다음 톱니 바퀴 메뉴에서 “설정”을 선택하고 “환경 변수”섹션에서 “새 변수 추가”를 클릭합니다.


답변

다른 API 키 세트를 사용하고 동일한 방식으로 수행하십시오. 트래비스 박스는 빌드 실행을 위해 설정되고 빌드가 완료된 후 다시 완전히 해체됩니다. 빌드 중에 상자에 대한 루트 액세스 권한이 있으므로 원하는 모든 작업을 수행 할 수 있습니다.


답변