基本的なTravisCI情報

Reading time: 7 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

アクセス

TravisCIは、Github、Bitbucket、Assembla、Gitlabなどの異なるgitプラットフォームと直接統合されます。ユーザーにTravisCIが統合したいリポジトリにアクセスするための権限を与えるよう求めます。

例えば、Githubでは以下の権限を求めます:

  • user:email(読み取り専用)
  • read:org(読み取り専用)
  • repo:公開およびプライベートリポジトリと組織のコード、コミットステータス、コラボレーター、およびデプロイメントステータスへの読み取りおよび書き込みアクセスを付与します。

暗号化された秘密

環境変数

TravisCIでは、他のCIプラットフォームと同様に、リポジトリレベルで秘密を保存することが可能で、これらは暗号化されて保存され、ビルドを実行するマシンの環境変数に復号化されてプッシュされます

秘密が利用可能になるブランチを指定することが可能です(デフォルトではすべて)し、またTravisCIがログに表示された場合にその値を隠すべきか(デフォルトでは隠します)も指定できます。

カスタム暗号化された秘密

各リポジトリに対してTravisCIはRSAキーペアを生成し、プライベートキーを保持し、リポジトリにアクセスできる人々にリポジトリの公開鍵を提供します

リポジトリの公開鍵にアクセスするには、次のようにします:

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

このセットアップを使用して、秘密を暗号化し、それを .travis.yaml に追加できます。秘密は ビルドが実行されるときに復号化され環境変数でアクセス可能になります。

この方法で暗号化された秘密は、設定の環境変数にリストされないことに注意してください。

カスタム暗号化ファイル

以前と同様に、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を使用すると、あなたが望むように構成およびセキュリティを設定できる環境で、使いやすい継続的インテグレーション/継続的デプロイメント(CI/CD)システムを有効にすることができます。

Travis CI Enterpriseは2つの主要な部分で構成されています:

  1. TCI サービス(またはTCIコアサービス)は、バージョン管理システムとの統合、ビルドの承認、ビルドジョブのスケジューリングなどを担当します。
  2. TCI ワーカーおよびビルド環境イメージ(OSイメージとも呼ばれます)。

TCIコアサービスには以下が必要です:

  1. PostgreSQL11(またはそれ以降)のデータベース。
  2. Kubernetesクラスターをデプロイするためのインフラストラクチャ;必要に応じてサーバークラスターまたは単一のマシンにデプロイできます。
  3. セットアップに応じて、RabbitMQなどのコンポーネントを自分でデプロイおよび構成することを検討するかもしれません - 詳細についてはTravis CI Enterpriseの設定を参照してください。

TCIワーカーには以下が必要です:

  1. ワーカーとリンクされたビルドイメージを含むdockerイメージをデプロイできるインフラストラクチャ
  2. 特定のTravis CIコアサービスコンポーネントへの接続 - 詳細についてはワーカーの設定を参照してください。

デプロイされたTCIワーカーおよびビルド環境OSイメージの数は、あなたのインフラストラクチャにおけるTravis CI Enterpriseデプロイメントの総同時容量を決定します。

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする