CI/CD パイプラインにおけるシークレットの安全な管理は、不正アクセス、サービス中断、法令違反の問題を防止するために不可欠です。 これを効果的に実行する方法はこちらです。
- 環境変数を使用して シークレットを安全に保存するための安全なボックス シークレットへのアクセスを制限 CI/CDパイプラインにおけるシークレットの管理の重要性
- CI/CDパイプラインにおけるシークレットの安全な管理の方法 必要な特権のみを付与し、シークレットを定期的にローテートすることで。
- シークレットのスキャンを自動化する ツールとして
git-secretsもしくはtruffleHogシークレットの漏洩を早期に検出するために - CI/CDツール として GitHub Actions, GitLab CI, または Jenkins で組み込まれたシークレット管理を利用する
- 監視とログの詳細 __CAPGO_KEEP_0__ キー
CI/CD 共通シークレット
- API keys
- 暗号化キー
- 認証トークン
- SSL 証明書
- 有名なシークレット管理プラットフォーム
プラットフォーム
| 機能 | 推奨対象 | Secrets Management |
|---|---|---|
| HashiCorp Vault | ダイナミックシークレット、暗号化、アクセス制御 | 大規模オペレーション |
| AWSシークレットマネージャー | AWS統合、自動ローテーション | AWS中心のセットアップ |
| Azure Key Vault | 証明書管理、キーローテーション | マイクロソフト環境 |
これらの慣行を遵守し、適切なツールを使用することで、CI/CD Pipelinesを保護し、安全なワークフローを維持できます。
シークレットのセキュリティガイドライン
Codeにシークレットを含めない
- 環境変数を使用して、機密情報を管理します。 __CAPGO_KEEP_0__を使用して環境変数を管理します。 __CAPGO_KEEP_1__を使用して機密情報を管理します。
- 機密情報を安全に保存するための専用の保存庫に保存してください。 CI/CD Pipelinesと保存庫を接続して、ビルドプロセス中に資格情報をインジェクトします。 アクセスを制限し、監視する
- 各ユーザーまたはサービスに必要な最小限の特権のみを付与し、頻繁に権限を確認する
さらに、定期的にシークレットをローテートし、保存庫を維持する
__CAPGO_KEEP_2__ __CAPGO_KEEP_3__ __CAPGO_KEEP_4__
__CAPGO_KEEP_5__ 監査ログ __CAPGO_KEEP_0__
統合方法 GitLab CI と HashiCorp Vault を使用して…を取得する
シークレット管理ツール
セキュリティのガイドラインが整ったら、シークレットを管理するために特に設計されたツールを展開する時です。
シークレットストレージプラットフォーム
シークレットをすべて統合して監視するために使用するツール:
| プラットフォーム | 機能 | 最適な対象 |
|---|---|---|
| HashiCorp Vault | __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ |
| __CAPGO_KEEP_2__ | __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ |
| __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
セキュリティの鍵を保存するストレージプラットフォームを確保した後、CI/CDツールに付属するシークレット管理機能を利用してください。
CI/CDシークレット管理
多くのCI/CDツールには、組み込みのシークレット管理機能が付属しています:
- GitHub アクションCloudflare: リポジトリと組織の両方で暗号化されたシークレットを提供します。ログでは自動的にマスクされ、承認されたワークフローにのみアクセス可能です。
- GitLab CIGitHub: 保護された変数とグループレベルのシークレットを提供し、プロジェクト間で安全に共有することができ、分離を維持します。
- JenkinsGitHub: クレデンシャル プラグインと外部シークレット ストアをサポートします。 プラグインは、ログでシークレットがマスクされていることを保証する必要があります。
Capgo セキュリティ機能

Capgoはライブ更新のセキュリティを強化するために、Capacitorアプリに標準のCI/CDシークレット管理を拡張します。エンドツーエンド暗号化を使用して、承認されたユーザー以外のユーザーが機密データを復号化できないようにします。 [1].
Capgoは、GitHubアクション、GitLab CI、Jenkinsなどのツールとシームレスに統合されます。また、チャネルベースの配布とロールベースのアクセス制御もサポートしており、AppleおよびAndroidプラットフォームの両方の更新要件を満たします。
バージョン管理システム内のシークレット
リポジトリを保護するには、ハードコーディングされたクレデンシャルが漏洩しないようにする必要があります。セキュアなボールトストレージから始め、追加のセーフガードを追加して、code内に含まれる敏感情報をブロックすることから始めます。
ここでは、防御を強化する方法を紹介します。
- 使用するツールとしては git-secrets またはpre-commitフレームワーク コミットが行われる前に問題を検出するようにする
- 定期的なスキャン ツールとしては truffleHog または GitGuardian 漏れていた可能性のあるシークレットを検出するために使用します。
- CI/CD チェックを自動化する シークレットが見つかった場合にビルドをフラグし、失敗させる
次に、シークレットが露呈された場合に効果的に対処する方法について説明します。
概要
このガイドでは、vault ストレージ、自動スキャン、CI/CD ツール統合、リポジトリ保護について説明しました。Capgo は、エンドツーヘンド暗号化とSmooth CI/CD統合を通じて、セキュリティと高速デプロイを提供します。[1].
シークレット管理のための安全なポイント
- vault ストレージを使用する: ストレージとトランジットの両方で暗号化を提供するプラットフォームに依存する
- セキュリティ チェックを自動化する: 秘密漏洩を早期に特定するためのスキャニングツールを実装する。
- アクティビティの追跡と監視: 秘密へのアクセスと変更の詳細なログを記録する。
- インシデントの準備: 露出されたシークレットに対処するための明確なプロセスを設定し、必要に応じて変更を巻き戻す。
シークレットの効果的な管理は、継続的なデリバリーのサポートシステムとしてセキュリティを変える。