The Bitwarden Blog

シークレットマネージャーとは?

authored by:Kasey Babcock
posted :
  1. Blog
  2. シークレットマネージャーとは?

シークレットマネージャーは、開発ライフサイクル全体にわたりインフラのシークレットを管理・共有・保存し、自動化するためのソフトウェアソリューションです。高額なデータ漏洩を防ぐことで、現代のサイバーセキュリティにおいて重要な役割を果たします。通常はDevOps、開発、またはITの専門家が利用し、主要な機能の一つとして、開発プロジェクトや業務内のシークレットに対するプログラムによるマシンアクセスを実現します。

シークレットマネージャーは通常、次のようなシークレットを保存します:

  • 認証情報 - ユーザー名、パスワード、APIトークン、SSH鍵。

  • データベース認証情報 - 接続文字列、データベースのユーザー名、パスワード。

  • 暗号鍵 - データの暗号化・復号に使用する鍵。

  • 証明書 - SSL/TLS証明書および秘密鍵。

  • アプリケーション設定のシークレット - 環境変数、設定ファイル、アプリケーション固有のシークレット。

なぜシークレットマネージャーを使うのですか?

セキュリティ

シークレットマネージャーは、シークレットを暗号化された単一の場所で保護することで、シークレットの漏洩や、ひいてはビジネスインフラが露出するリスクを大幅に低減します。アクセス制御、監査ログ、シークレットのローテーションといった追加のセキュリティ機能により、機密性の高いシークレットを扱う際の人的ミスの可能性も減らせます。

シークレットの散在を解消

開発チームは業務で多様なマイクロサービス、アプリケーション、エコシステムを利用するため、重要なシークレットが中央で管理されないまま、組織内に分散しやすくなります。シークレットマネージャーは、これらのシークレットへのアクセスを単一の信頼できる情報源(ソース・オブ・トゥルース)から管理できるよう、組織を支援します。

コスト削減

データ漏洩後の事後対応ではなく、開発者セキュリティに先手を打って対処できるシークレット管理ソリューションを活用することで、企業はコスト削減を実現できます。Forbesによると、2024年には「世界のサイバー犯罪による被害コストが15%増加」し、「2025年までに年間10.5兆米ドルに達する見込み」です。シークレットマネージャーを利用すれば、認証情報に起因する侵害に伴うこうした被害コストを防ぐことができます。

コンプライアンス

シークレットマネージャーが提供する詳細な監査およびレポート機能により、ISO/IEC 27001などのデータ保護規制への準拠を支援します。

開発者の生産性

シークレットマネージャーを使えば、開発チームはシークレットを手動で管理・保護する必要がなくなり、代わりにプログラムでシークレットを取得できます。これにより、コード品質の改善や、本当に重要なことに集中するための時間をより多く確保できます。

開発エコシステム

シークレットマネージャーの仕組みを学ぶ前に、開発チームがどのように業務を進め、どのようなエコシステム、環境、ツールを利用しているのかを理解することが重要です。

一般的な開発エコシステムは、次の要素で構成されます:

環境

環境とは、エンジニアがソフトウェアシステムやアプリケーションを構築するための作業空間です。ソフトウェア開発ライフサイクルにおける一般的な環境には、開発、ステージング、本番などがあります(これらに限りません)。各環境が機能するには、それぞれ異なる一連のシークレットが必要です。Azure、AWS、Googleなどのクラウドプロバイダーも、データの保存や共有のためにこれらの環境と連携する場合があります。

CI/CDツール

CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインは、ソフトウェアのデリバリープロセスを自動化し、フィードバックループを標準化するために使用されます。この自動化を支援するCI/CDツールには、GitHub Actions、GitLab Runners、Jenkins、Circle CI、Bambooなど、多くの選択肢があります。

GIT

GIT(global information tracker)は、ソフトウェア開発でよく使用されるバージョン管理システムで、エンジニアがソースコードのパッケージやプロジェクトで同時に作業できるようにします。代表的なGITツールとして、GitHub、GitLab、Bitbucketがあります。

ローカル開発

ローカル開発とは、環境のコードベースにプッシュする前に、ローカルマシン(パソコンなどのデバイス)で行うソフトウェア開発作業のことです。

エンジニアリングチーム

一般的なエンジニアリング組織は、開発者、DevOps、品質保証(QA)、IT管理者で構成されます。

シークレットマネージャー

シークレットマネージャーは、各種ツール、マシン、クラウドプロバイダーが相互に連携し、認証できるようにするために必要なシークレットを保管します。

エコシステム全体

開発エコシステム全体は、以下の図をご覧ください。

開発エコシステム
開発エコシステム

シークレットマネージャーはどのように動作しますか?

シークレットを安全に保管

まず、シークレットをシークレットマネージャーにインポートするか、手動で追加します。追加されたシークレットは暗号化により、未承認のアクセスから保護されます。ヒント:最も強固なセキュリティのため、エンドツーエンド暗号化を採用するソリューションを選択してください。シークレットを追加すると、シークレットマネージャーは開発およびインフラの認証情報における、組織の信頼できる唯一の情報源(ソース・オブ・トゥルース)になります。

特権を持つ従業員とマシンにアクセスを制限

次に、最小権限の原則に従い、開発者、DevOpsエンジニア、IT管理者など適切な従業員に、シークレットへのアクセス権限と編集権限を付与します。多くのシークレットマネージャーでは、従業員グループまたは個人に対して、シークレットのグループまたは個別のシークレットへのアクセス/編集の権限を割り当てられます。貴社の事業とユースケースに適した権限構造を選択してください。

対象のシークレットと連携するデータベース、アプリケーション、Webサイト、インフラなど、関連するマシンにもアクセス権限と編集権限を割り当てます。

開発ワークフローにシークレットを注入

最後に、シークレットマネージャーで生成された安全なシークレットIDを、envファイルやスクリプト内の平文のシークレットの代わりに使用します。ユーザーとマシンが対象のシークレットへのアクセス権限を持っていれば、シークレット値がシークレットマネージャーから安全に取得され、すぐに利用できます。

シークレットマネージャーCLI

シークレットマネージャーに含まれる追加機能

シークレットマネージャーには、セキュリティの強化やデプロイの柔軟性向上のための機能が含まれる場合があります。

  • 監査証跡- すべてのシークレット管理アクションのタイムスタンプ付き記録を取得し、不審な活動の可能性を調査できます。

  • 追加の認証オプション- 標準的なユーザー名とパスワードに加え、シングルサインオン、2要素認証、パスキー、生体認証、ディレクトリ連携などの認証オプションが含まれる場合があります。

  • 複数のホスティングオプション- クラウドでシークレット管理ソリューションをホストするか、より高いコントロールを得るために自社インフラ上でセルフホストできます。

  • 連携- 既製の連携機能により、さまざまなマシン、CI/CDパイプライン、自動化ツール、クラウドプロバイダー間の連携を容易に構築できます。

  • SDK- インストール可能なパッケージとして、言語別の開発ツールでカスタム操作を作成できます。

Bitwarden Secrets Managerで開発およびインフラのシークレットを保護

シークレット管理を始める準備はできましたか?チームや企業の規模を問わず信頼される、エンドツーエンド暗号化とオープンソースのシークレットマネージャー、Bitwarden Secrets Managerで重要なシークレットを保護しましょう。

Bitwarden Secrets Managerは、明確な料金体系で、どのプランでもシークレットを無制限に保管できます。Bitwarden Secrets Managerが提供するビジネス向け機能をすべてお試しいただくには、無料でサインアップするか、7日間のビジネストライアルを選択して、Bitwarden Secrets Managerが提供するエンタープライズ機能をご確認ください。個別のご相談をご希望の場合は、営業までお問い合わせください。

Bitwardenの実際の動作をご覧になりますか?