CI/CD パイプラインでシークレットを安全に保つことは、情報漏洩やサービス障害、コンプライアンス上の問題を防ぐうえで不可欠です。 効果的に行う方法はこちら:
- 環境変数を使用する と セキュアなボルト シークレットを安全に保存するために。
- アクセス制限 必要な権限のみを付与し、シークレットを定期的にローテーションすることで。
- シークレットスキャンの自動化 などのツールを使って
git-secretsまたはtruffleHogリークを早期に検出するために。 - CI/CD ツールの活用 など GitHub アクション, GitLab CI、または Jenkins 内蔵のシークレット管理に。
- シークレットの監視と監査 詳細なログで利用状況を把握。
一般的なCI/CDシークレット
- API のキー
- データベース認証情報
- 暗号化キー
- 認証トークン
- SSL証明書
人気のシークレット管理プラットフォーム
| プラットフォーム | 機能 | 最適なケース |
|---|---|---|
| HashiCorp Vault | 動的シークレット、暗号化、アクセス制御 | 大規模運用 |
| AWS Secrets Manager | AWS連携、自動ローテーション | AWS中心の構成 |
| Azure Key Vault | 証明書管理、キーローテーション | Microsoft環境 |
これらのプラクティスに従い適切なツールを活用することで、CI/CDパイプラインを保護し、安全なワークフローを維持できます。
シークレットのセキュリティガイドライン
Codeからシークレットを除外する
- 使用する 環境変数 で機密情報を管理します。
- シークレットは セキュアなボルト に保存します。
- CI/CDパイプラインをボルトに接続し、ビルド時に認証情報を注入します。
アクセスの制限と監視
各ユーザーやサービスには 最小限の権限のみを付与し 権限を定期的にレビューしてください。
さらに、シークレットを定期的にローテーションし、 監査ログ を維持して、潜在的な侵害を追跡・特定できるようにしましょう。
統合する方法 GitLab CI を使用して HashiCorp Vault …を取得するには
シークレット管理ツール
セキュリティガイドラインが整ったら、次はシークレット管理に特化したツールを導入しましょう。
シークレットストレージプラットフォーム
これらのツールを使用して、すべてのシークレットを一元管理・監視します:
| プラットフォーム | 機能 | 最適なケース |
|---|---|---|
| HashiCorp Vault | 動的シークレット、暗号化サービス、IDベースのアクセス制御 | 大規模運用 |
| AWS Secrets Manager | シームレスなAWS統合、自動ローテーション、細粒度の権限管理 | AWS中心の構成 |
| Azure Key Vault | HSM、証明書管理、キーローテーション | Microsoft クラウド環境 |
ストレージプラットフォームでシークレットを保護した後は、CI/CDツールに備わっているシークレット管理機能を活用しましょう。
CI/CD シークレット管理
多くの CI/CD ツールには、標準でシークレット管理機能が組み込まれています:
- GitHub アクション: リポジトリおよび組織レベルの両方で暗号化されたシークレットを提供します。シークレットはログ内で自動的にマスクされ、許可されたワークフローのみがアクセス可能です。
- GitLab CI: 保護された変数やグループレベルのシークレットを提供し、分離を維持しながらプロジェクト間での安全な共有を可能にします。
- Jenkins: Credentials プラグインと連携し、外部のシークレットストアをサポートします。ログ内でシークレットをマスクするにはプラグインが必要です。
Capgo セキュリティ機能

Capgo は、標準的な CI/CD シークレット管理を拡張することで、Capacitor アプリのライブアップデートのセキュリティを強化します。エンドツーエンド暗号化により、承認されたユーザーのみが機密データを復号化できるようにします。 [1].
Capgo は、GitHub Actions、GitLab CI、Jenkins などのツールとシームレスに統合されます。また、チャネルベースの配布とロールベースのアクセス制御をサポートし、Apple および Android プラットフォームの両方のアップデート要件を満たします。
バージョン管理におけるシークレット
ハードコードされた認証情報が漏洩するのを防ぎ、リポジトリを保護します。まず安全なボルトストレージから始め、code 内の機密情報をブロックするための追加の保護策を追加します。
防御を強化する方法は以下の通りです:
- デバッグには、 git-secrets または pre-commit フレームワーク コミット前に問題を検出するため。
- 定期スキャンを実行 などのツールを使って truffleHog または GitGuardian すり抜けた可能性のあるシークレットを検出するため。
- CI/CD チェックを自動化 シークレットが見つかったらフラグを立ててビルドを失敗させるため。
次は、露出したシークレットの効果的な対処法について説明します。
まとめ
本ガイドでは、Vault ストレージ、自動スキャン、CI/CD ツール統合、リポジトリ保護について解説しました。Capgo は、エンドツーエンド暗号化とスムーズな CI/CD 統合により、セキュリティと高速デプロイを両立します。[1].
シークレット管理のセキュリティ強化のポイント:
- Vaultストレージの利用: 保存時と転送時の両方で暗号化を提供するプラットフォームに依存します。
- セキュリティチェックの自動化: スキャンツールを導入し、シークレットの漏洩を早期に検知します。
- アクティビティの追跡と監視: シークレットへのアクセスや変更に関する詳細な監査ログを保持します。
- インシデントへの備え: シークレット漏洩時の対応フローや、必要に応じたロールバック手順を確立します。
効果的なシークレット管理により、セキュリティは継続的デリバリーの障害ではなく、それを支える仕組みへと変わります。
Managing Secrets in CI/CD Pipelines の続きはこちら
使用している場合 CI/CD パイプラインでのシークレット管理 セキュリティとコンプライアンスを計画するには、これを以下と連携させてください 暗号化 暗号化の実装詳細について コンプライアンス コンプライアンスの実装詳細について Capgo セキュリティスキャナー Capgo Security Scanner のプロダクトワークフローについて Capgo のセキュリティ Capgo Security のプロダクトワークフロー向け、および Capgo トラストセンター Capgo Trust Center のプロダクトワークフロー向け。