Basic TravisCI Information

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Access

TravisCI는 Github, Bitbucket, Assembla, Gitlab과 같은 다양한 git 플랫폼과 직접 통합됩니다. 사용자가 TravisCI와 통합하려는 저장소에 접근할 수 있도록 TravisCI 권한을 부여하도록 요청합니다.

예를 들어, Github에서는 다음 권한을 요청합니다:

  • user:email (읽기 전용)

  • read:org (읽기 전용)

  • repo: 공개 및 비공개 저장소와 조직에 대한 코드, 커밋 상태, 협력자 및 배포 상태에 대한 읽기 및 쓰기 권한을 부여합니다.

Encrypted Secrets

Environment Variables

TravisCI에서는 다른 CI 플랫폼과 마찬가지로 저장소 수준의 비밀을 저장할 수 있으며, 이는 암호화되어 저장되고 빌드를 실행하는 머신의 환경 변수에 복호화되어 푸시됩니다.

비밀이 사용될 브랜치를 지정할 수 있으며(기본값은 모두), 또한 로그에 나타날 경우 TravisCI가 값을 숨겨야 하는지 여부도 지정할 수 있습니다(기본값은 숨김).

Custom Encrypted Secrets

각 저장소에 대해 TravisCI는 RSA 키 쌍을 생성하고, 개인 키는 유지하며, 저장소에 접근 권한이 있는 사람들에게 공개 키를 제공합니다.

한 저장소의 공개 키에 접근하려면:

travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test

그런 다음, 이 설정을 사용하여 비밀을 암호화하고 .travis.yaml에 추가할 수 있습니다. 비밀은 빌드가 실행될 때 복호화되어 환경 변수에서 접근할 수 있습니다.

이 방식으로 암호화된 비밀은 설정의 환경 변수 목록에 나타나지 않는다는 점에 유의하세요.

Custom Encrypted Files

이전과 마찬가지로, TravisCI는 파일을 암호화하고 빌드 중에 복호화할 수 있습니다:

travis encrypt-file super_secret.txt -r carlospolop/t-ci-test

encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d

Pro Tip: You can add it automatically by running with --add.

Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.

파일을 암호화할 때 2개의 환경 변수가 레포지토리 내부에 구성된다는 점에 유의하십시오:

TravisCI Enterprise

Travis CI Enterprise는 Travis CI의 온프레미스 버전으로, 귀하의 인프라에 배포할 수 있습니다. Travis CI의 '서버' 버전이라고 생각하면 됩니다. Travis CI를 사용하면 환경에서 사용하기 쉬운 Continuous Integration/Continuous Deployment (CI/CD) 시스템을 활성화할 수 있으며, 이를 원하는 대로 구성하고 보안할 수 있습니다.

Travis CI Enterprise는 두 가지 주요 부분으로 구성됩니다:

  1. 버전 관리 시스템과의 통합, 빌드 승인, 빌드 작업 예약 등을 담당하는 TCI 서비스(또는 TCI 코어 서비스).

  2. TCI Worker 및 빌드 환경 이미지(운영 체제 이미지라고도 함).

TCI 코어 서비스는 다음을 필요로 합니다:

  1. PostgreSQL11 (또는 그 이상) 데이터베이스.

  2. Kubernetes 클러스터를 배포할 인프라; 필요에 따라 서버 클러스터나 단일 머신에 배포할 수 있습니다.

  3. 설정에 따라 일부 구성 요소를 직접 배포하고 구성할 수 있습니다. 예를 들어, RabbitMQ - 자세한 내용은 Travis CI Enterprise 설정을 참조하십시오.

TCI Worker는 다음을 필요로 합니다:

  1. Worker와 연결된 빌드 이미지를 포함하는 도커 이미지를 배포할 인프라.

  2. 특정 Travis CI 코어 서비스 구성 요소와의 연결성 - 자세한 내용은 Worker 설정을 참조하십시오.

배포된 TCI Worker 및 빌드 환경 운영 체제 이미지의 양은 인프라 내 Travis CI Enterprise 배포의 총 동시 용량을 결정합니다.

AWS 해킹 학습 및 연습:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 학습 및 연습: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원

Last updated