不適切なシークレット管理(SMPs)は、どの企業にとっても重大なリスクを伴います。特に顧客データの保管と保護を担う企業では、このリスクはより深刻です。これは一般的な問題であり、多くの企業のリスク登録簿の中心に位置しています。シークレットの漏洩は機密性の喪失を引き起こし、場合によってはデータ漏洩につながります。このようなインシデントは、企業に大きな財務的損失をもたらし、顧客からの信頼を失う原因となり得ます。
多くの企業において、不適切なシークレット管理は、専門知識の不足や、この問題を解決するためのツールや戦略に対する認識不足から生じていることがあります。適切なシークレット管理を実施することで、リスクの軽減が可能となり、組織のシークレット管理戦略に対する信頼が向上します。この記事では、シークレット管理のベストプラクティス、GitLabがそれをサポートする方法、そしてDevSecOpsプラットフォームのネイティブシークレット管理機能を改善するための戦略について説明します。
暗号戦略の策定
どの企業にも、デベロッパーが標準化された方法で作業し、すべてのアプリケーションおよびそのコンポーネントが企業の暗号要件に従って開発されることを保証するための基盤として、暗号戦略が不可欠です。
企業が処理するデータやリスク許容度、脅威の状況を理解することが、効果的な暗号戦略の策定につながります。
シークレット生成
アクセストークンやSSHキーなどのシークレットは、ハードウェアセキュリティモジュール(HSM)などの暗号デバイスで生成することが推奨されます。これにより、強力な暗号シークレットを生成し、改ざんや侵入に耐性のある方法で安全に保存できます。
物理デバイスに依存することはコストがかかり、企業にとって運用上の制約となる場合がありますが、主要なクラウドサービスプロバイダーはクラウドHSMサービスを提供しています。たとえば、AWS CloudHSMやGCP Cloud HSMなどがあります。
シークレット保存
シークレットの保存は生成と同様に重要です。 生成されたシークレットは、安全に長期間保存でき、必要なときに安全に取り出して使用できる方法で保存する必要があります。
HashiCorpなどのセキュリティ企業や主要なクラウドサービスプロバイダーは、シークレットを安全に保存し、取り出すためのクラウドベースのサービスを提供しています。これらのサービスを活用すれば、シークレットをハードコードする手間が省け、プロセスやコード内でシークレットを簡単に活用できます。
GitLabによるシークレットの保存サポート
GitLabは、以下のシークレット管理プロバイダーをネイティブサポートしています。
- Vault by HashiCorp
- Google Cloud Secret Manager
- Azure Key Vault
GitLabをシークレット管理プロバイダーに接続するように設定すると、CIジョブが必要なときにのみシークレットをリクエストできます。シークレットが必要ない場合、それらはシークレット管理サービス内で安全に保存され、リスクが大幅に減少します。上記のシークレット管理プロバイダーに加え、GitLabはOIDC認証を通じて、AWS Secret Managerなど他のプロバイダーへの認証もサポートします。これにより、CI/CD変数としてシークレットを保存してマスクする方法と比べ、シークレット保存がはるかに安全になります。
シークレットの使用
シークレットは、1つの目的のみに使用することが推奨されます。 なるアプリケーションやサービスでシークレットを再利用すると、露出リスクが高まり、侵害時の影響も大きくなります。
シークレットへのアクセスは最小特権の原則を考慮して制御し、業務や運用に必要な個人やサービスのみにアクセスを許可することで、露出や悪意のあるアクティビティのリスクを最小限に抑えます。
GitLabによるシークレット使用のサポート
GitLabは、管理者に強力なロールベースのアクセス制御モデルを提供し、カスタムロールを作成する機能も提供しています。これにより、管理者はアクセス権のプロファイルを組織の標準やリスク許容度に合わせて調整できます。
GitLabでは、意図せずにコミットされたシークレットや 認証情報を確認するために、シークレット検出を実行することもできます。GitLab Ultimateのユーザーは、流出した認証情報の影響を軽減するために、シークレットの取り消しなどの流出したシークレットへの自動応答を強制することができます。
可監査性
シークレットのアクセスと使用は監査可能かつ追跡可能であるべきです。理想的には、個人がプレーンテキストでシークレットを表示できることはないはずですが、企業の運用状況は必ずしも理想的ではありません。
監査可能で追跡可能なシークレット管理により、セキュリティチームは異常または悪意のある行動を監視し、自動または手動で迅速に対応できます。
GitLabによる可監査性のサポート
GitLabの監査イベントは、GitLab内で作成されたトークンやキーに関連するアクティビティを詳細に記録します。以下はその一部です。
- パーソナルアクセストークンイベント
- デプロイトークンイベント
- クラスターエージェントトークンイベント
これらのアクティビティはデータベースに保存されます。GitLab Ultimateユーザーは監査イベントストリーミングを通じてアクセス可能です。
近日公開:GitLabシークレットマネージャー
GitLabは、2024年後半にネイティブなシークレット管理機能をリリース予定です。GitLabシークレットマネージャーは、複数のテナントをサポートするクラウドベースのソリューションで、GitLab.comおよびSelf-Managedのお客様はCloud Connectorサービスを通じて利用できるようになります。この新しいサービスは、現在のCI/CD変数インターフェースと一貫性のある使いやすいインターフェースを提供し、サードパーティ製品よりも学習コストを最小限に抑え、導入を容易にします。GitLabシークレットマネージャーは、CIパイプライン内での機密情報のセキュリティと保護を確保します。
GitLabシークレットマネージャーについての詳細やご質問は、MVC epicにコメントをお寄せください。
次のステップ
デジタル時代のアプリケーション・セキュリティ
世界各地のDevSecOpsの専門家5,000名を対象に行った調査結果を読み、組織がアタックサーフェス(攻撃対象領域)の増加にどのように取り組んでいるか、またセキュリティとAIに対する姿勢がどのように変化しているかをご覧ください。
レポートを読む世界各地のDevSecOpsの専門家5,000名を対象に行った調査結果を読み、組織がアタックサーフェス(攻撃対象領域)の増加にどのように取り組んでいるか、またセキュリティとAIに対する姿勢がどのように変化しているかをご覧ください。
Frequently asked questions
主要なポイント
- シークレット管理の不備がデータ漏洩の原因に。GitLabのネイティブインテグレーションがセキュリティを強化します。
- 監査と帰属が可能なシークレット管理により、セキュリティチームは異常や悪意のあるアクティビティを即座に発見し対応できます。
- GitLabは強力なアクセス制御と検出ツールにより、シークレットの保存と利用を徹底サポートします。