AI 支援ツールの使用によるセキュリティへの影響を解釈する

完了

データベース開発環境で AI 支援ツールを有効にする前に、セキュリティへの影響を理解する必要があります。 GitHub Copilot と Fabric Copilot は、コード、データベース スキーマ、および潜在的に機密性の高いデータ パターンを処理するため、責任ある導入のためにセキュリティ意識が不可欠になります。

AI アシスタントがデータを処理する方法

GitHub Copilot または Fabric Copilot を使用すると、プロンプトとコード コンテキストがクラウドベースの AI モデルに送信されて処理されます。 これらのサービスに対するデータ フローを理解することは、AI アシスタンスを使用する場所と方法に関する情報に基づいた意思決定を行う際に役立ちます。

GitHub Copilot は、次のデータを送信して提案を生成します。

  • 現在作成または編集中のコード
  • コンテキストを提供するエディターで開いているファイルのコンテンツ
  • データベースに接続するときのデータベース スキーマ情報
  • 自然言語のプロンプトと質問

Fabric Copilot は、Lakehouse、Warehouse、セマンティック モデルに関するメタデータなど、Fabric ワークスペースのコンテキスト内で同様のデータを処理します。

GitHub Copilot と Fabric Copilot はどちらも、データを保護するように設計されています。 プロンプトと応答は、基になる AI モデルのトレーニングには使用されず、データは転送中および保存時に暗号化されます。

組織のポリシーに関する考慮事項

組織は、特に機密データを操作する場合に、AI ツールの使用に関する特定のポリシーを持っている場合があります。 AI 支援ツールを有効にする前に、次の質問を検討してください。

データ分類: データベースには、個人を特定できる情報 (PII)、財務記録、医療データ、またはその他の規制された情報が含まれていますか? 一部の組織では、機密データ分類を含むデータベースの AI ツールの使用を制限しています。

コンプライアンス要件: コンプライアンス フレームワークの対象ですか? クラウドベースの AI サービスを使用して、コンプライアンスの義務と一致するかどうかを確認します。

知的財産: 組織には、外部 AI サービスによって処理されるコードまたはスキーマ情報に関するポリシーがありますか? 一部の独自のデータベース設計は、企業秘密と見なされる場合があります。

アクセス制御: 組織内の誰が AI 支援ツールにアクセスできる必要がありますか? AI ツールのライセンスを既存のデータベース アクセス許可に合わせる必要がある場合があります。

GitHub Copilot のセキュリティ機能

GitHub Copilot には、組織の保護に役立ついくつかのセキュリティ機能が含まれています。

コンテンツ フィルタリング: Copilot は、SQL インジェクションの脆弱性やその他のセキュリティ対策パターンなど、潜在的に有害なコード パターンを生成しないように提案をフィルター処理します。

組織ポリシー: エンタープライズ管理者は、Copilot を使用できるリポジトリや、提案にパブリック リポジトリに一致するコードを含めることができるかどうかなど、組織全体での Copilot の使用方法を制御するポリシーを構成できます。

監査ログ: GitHub Enterprise Cloud を使用している組織は、監査ログを使用して Copilot の使用状況を追跡でき、ツールの使用状況を可視化できます。

GitHub Copilot のセキュリティプラクティスの詳細については、 SSMS ドキュメントの GitHub Copilot の公式ドキュメントを参照してください

資格情報と接続文字列の保護

重要なセキュリティプラクティスの 1 つは、AI ツールでデータベースの資格情報が直接表示されないようにすることです。 次のガイドラインに従ってください。

  • 資格情報をプロンプトに貼り付けない: 実際のパスワードまたはキーを含む接続文字列を支援するように AI アシスタントに依頼しないでください
  • 環境変数を使用する: AI で確認できるファイルにハードコーディングするのではなく、環境変数に接続情報を格納する
  • コミット前に確認する: ソース管理にコミットする前に、AI によって生成されたコードに誤って含まれている機密情報がないか確認します
-- AVOID: Hardcoded credentials in AI-visible files
-- This pattern should never appear in your code
-- CREATE LOGIN username WITH PASSWORD = 'actual_password';

-- RECOMMENDED: Use parameterized approaches
-- CREATE LOGIN username WITH PASSWORD = $(password);

AI の提案を批判的に評価する

AI によって生成されるコードには、データベース環境に入るコードと同じセキュリティ レビューが必要です。 次のプラクティスを検討してください。

アクセス許可を確認する: Copilot が GRANT ステートメントまたは REVOKE ステートメントを提案する場合は、アクセス許可が最小特権セキュリティ モデルと一致するかどうかを確認します。

動的 SQL を検証する: AI によって生成された動的 SQL は、適切にパラメーター化されていない場合、インジェクションに対して脆弱である可能性があります。 パラメーターで sp_executesql が適切に使用されているかどうかを常に確認してください。

データの公開を確認する: SELECT ステートメントを確認して、特にアプリケーションで使用される可能性があるビューやストアド プロシージャで、意図したよりも多くのデータが誤って公開されないようにします。

ヒント

AI によって生成されたコードを、人間によるレビューを必要とする最初のドラフトとして扱います。 アシスタントは機能と一般的なパターンを最適化しますが、特定のセキュリティ要件はわかっています。

MCP サーバーのセキュリティに関する考慮事項

モデル コンテキスト プロトコル (MCP) サーバーを構成する場合は、AI アシスタントとデータベースの間に直接接続を確立します。 これには、セキュリティに注意する必要があります。

認証: MCP 接続では、最小特権の原則を使用する必要があります。 AI がスキーマ情報のクエリのみを実行する必要がある場合は、読み取り専用アクセス権を持つ専用サービス アカウントを作成します。

ネットワーク セキュリティ: MCP トラフィックがパブリック ネットワークを経由する必要があるかどうかを検討します。 機密性の高い環境では、プライベート エンドポイントまたは VPN 接続が必要になる場合があります。

データ サンプリング: 一部の MCP 構成では、サンプリング データを使用して提案を改善できます。 送信される可能性のあるデータと、これがデータ処理ポリシーと一致するかどうかを理解します。

これらのセキュリティに関する考慮事項を理解すると、組織のセキュリティ体制に合わせて AI 支援ツールを実装する準備が整います。 次のユニットでは、セキュリティのベスト プラクティスを念頭に置いて GitHub Copilot と Fabric Copilot を有効にする実際のプロセスについて説明します。