2017-03-01 7 views
1

트래비스 docs은 키를 암호화하는 가장 쉬운 방법을 말한다. S3에 업로드하려면 명령 행 도구를 사용하는 것입니다.트래비스 키를 암호화하는 방법

명령 줄 도구를 사용하기 위해 Ruby 설치 등을 포함하지 않는 다른 방법이 있습니까?

답변

3

Javascript 메서드가 있으며 here과 해당 github repo가 ​​here 인 경우 사용할 수 있습니다.

암호화 된 S3 키를 사용하는 것은 트래비스 문서에서 원리가 잘 설명되지 않았기 때문에 다소 혼란 스럽습니다.

위에서 언급 한 양식의 왼쪽 상단 필드에 Travis-CI userid/repo-name을 입력하면 스크립트가 Travis에서 작성한 저장소의 공개 키를 풀다운 할 수 있습니다. 우측 상단 필드에서

, 입력 :

AWS_ACCESS_KEY_ID:...the..access..string..from..Amazon.IAM... 

클릭 암호화암호화 된 데이터 우측 상단 필드에서 다음

아래에 생성 된 문자열을 복사, 당신은 입력 :

AWS_SECRET_ACCESS_KEY:...the.very.secret.string.from.Amazon.IAM... 

그리고 암호화 된 문자열을 다시 복사하십시오. 암호화 된 문자열은 임의의 데이터가 암호화 된 문자열에 포함되므로 매번 변경됩니다.

이러한 암호화 된 키 쌍은 Travis에 의해 암호 해독되고 환경 변수로 내보내집니다. 이 같은 .travis.yml 파일에 입력 :

global: 
     # travis encrypt AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID 
     - secure: "--first-very--long-encrypted-string--=" 
     # travis encrypt AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY 
     - secure: "--second--very-long-encrypted-string--=" 
     - AWS_S3_BUCKET_NAME: yourbucketname 

은 이제 배포 섹션에서, 당신은 당신이 암호화 쌍

deploy: 
    provider: s3 
    # these are set up in the global env 
    access_key_id: $AWS_ACCESS_KEY_ID 
    secret_access_key: $AWS_SECRET_ACCESS_KEY 
    bucket: $AWS_S3_BUCKET_NAME 
    skip_cleanup: true 
    upload-dir: travis-builds 

에 사용되는 이름을 사용하여이를 참조하면 사용했다면 전역 env에서 암호화 된 ACCESS_ID 이름은 배포시 $ ACCESS_ID로 참조합니다.

이름이 지정된 버킷에 upload-dir이 만들어집니다.

빌드가 트래비스에서 실행되면 해독 된 키가 노출되지 않습니다. 대신 표시되는 내용은 다음과 같습니다.

See https://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details. 
Setting environment variables from .travis.yml 
$ export AWS_ACCESS_KEY_ID=[secure] 
$ export AWS_SECRET_ACCESS_KEY=[secure] 
$ export AWS_S3_BUCKET_NAME=yourbucketname