このドキュメントでは、Secure Source Manager の統合データ損失防止(DLP)を使用して機密情報を保護する方法について説明します。
Secure Source Manager の DLP は、リポジトリに push されたすべての commit を分析し、暗号化または削除する必要がある機密情報を積極的にスキャンすることで、コードベースのセキュリティを強化します。このようなデータが検出されると、DLP はプッシュを自動的に拒否し、機密情報が誤ってマージされるのを防ぎます。
Secure Source Manager の DLP は、次のカテゴリの情報を機密情報として扱います。
- 暗号鍵: SSH 公開鍵などのアイテムが含まれます。
- AWS 認証情報: Amazon Web Services のアクセスキーとシークレット キー。
- GCP 認証情報: サービス アカウント キーなどの Google Cloud シークレット。
- OAuth クライアント シークレット: OAuth を使用したアプリケーション認証に使用されるシークレット。
- 秘密鍵: 認証または認可に使用される機密性の高い鍵。
データ損失防止を有効にする
リポジトリで次のロールと設定が有効になっていることを確認します。
必要なロール
データ損失防止を有効にするために必要な権限を取得するには、Secure Source Manager インスタンスに対する Secure Source Manager リポジトリ管理者 (roles/securesourcemanager.repoAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Secure Source Manager のロールの付与については、IAM によるアクセス制御とユーザーにインスタンスへのアクセス権を付与するをご覧ください。
リポジトリ設定を更新する
Secure Source Manager インターフェースを使用して、リポジトリの DLP を有効にできます。
- DLP を有効にするリポジトリに移動します。
- [Settings] アイコンをクリックします。
- [データ損失防止(DLP)] の切り替えスイッチを探します。
- 切り替えボタンをオンの位置にスライドします。
Secure Source Manager での DLP の使用
DLP が有効になると、リポジトリへのコミットが積極的にモニタリングされます。コミットで機密情報が特定された場合、システムはコミットの統合を阻止し、ユーザーのコマンドライン インターフェースに機密データの存在を示すエラー メッセージが表示されます。この時点で、ユーザーには次の 2 つのオプションがあります。
変更を元に戻す
機密情報を削除するには、次のコマンドを使用して問題のある commit を元に戻します。
git reset --soft sha1-commit-id
sha1-commit-id は、実際のコミット ID に置き換えます。
Git はすべてのコミットの履歴を保持するため、機密情報が以前のコミットから復元される可能性があります。これを回避するには、git reset --soft
コマンドを使用します。次に、ファイルを修正して再度コミットし、ブランチの最近の履歴からデータを削除します。
commit を強制的に push する(DLP をバイパスする)
検出された情報が許容されると判断される特定の状況では、適切な権限を持つユーザーは DLP チェックをバイパスして、コミットを強制的にプッシュできます。
git push -o dlpskip=true origin branch-name
branch-name は、統合するブランチの名前に置き換えます。