Azure AI サービスのセキュリティ

すべてのアプリケーションの開発ではセキュリティを最優先に考える必要があり、人工知能対応のアプリケーションが拡大すると、セキュリティはさらに重要になります。 この記事では、Azure AI サービスで使用できるさまざまなセキュリティ機能について説明します。 各機能は特定の責任に対処するため、同じワークフローで複数の機能を使用できます。

Azure サービスのセキュリティに関する推奨事項の包括的な一覧については、Azure AI サービスのセキュリティ ベースラインに関する記事を参照してください。

セキュリティ機能

機能 説明
トランスポート層セキュリティ (TLS) HTTP 経由で公開されるすべての Azure AI サービス エンドポイントでは、TLS 1.2 プロトコルが適用されます。 セキュリティ プロトコルが適用されている場合、Azure AI サービス エンドポイントを呼び出そうとするコンシューマーは、次のガイドラインに従う必要があります。
  • クライアント オペレーティング システム (OS) では、TLS 1.2 がサポートされている必要があります。
  • HTTP の呼び出しに使用される言語 (およびプラットフォーム) では、要求の一部として TLS 1.2 を指定する必要があります 言語とプラットフォームに応じて、TLS の指定は暗黙的または明示的に行われます。
  • .NET ユーザーの場合は、トランスポート層セキュリティに関するベスト プラクティスを検討してください
認証オプション 認証とは、ユーザーの ID を検証することです。 それに対し、認可とは、特定の ID に対してリソースへのアクセス権と特権を指定することです。 ID は、プリンシパルに関する情報のコレクションであり、プリンシパルは個々のユーザーまたはサービスのいずれかになります。

既定では、提供されたサブスクリプション キーを使用して、Azure AI サービスへの独自の呼び出しを認証します。これは最も簡単な方法ですが、最も安全というわけではありません。 最も安全な認証方法は、Microsoft Entra ID のマネージド ロールを使うことです。 この認証オプションとその他の認証オプションについては、「Azure AI サービスに対する要求の認証」を参照してください。
キーのローテーション 各 Azure AI サービス リソースには、シークレットのローテーションを有効にする 2 つの API キーがあります。 これはセキュリティ上の予防措置であり、サービスにアクセスできるキーを定期的に変更することで、キーが漏洩した場合にサービスのプライバシーを保護します。 これとその他の認証オプションについては、キーのローテーションに関するページを参照してください。
環境変数 環境変数は名前と値のペアであり、特定の開発環境内に格納されます。 環境変数は、コード内にハードコードされた値を使用するよりも安全です。 コードで環境変数を使用する方法については、環境変数のガイドに関する記事を参照してください。

ただし、環境が侵害されると、環境変数も侵害されるため、これは最も安全な方法ではありません。 最も安全な認証方法は、Microsoft Entra ID のマネージド ロールを使うことです。 この認証オプションとその他の認証オプションについては、「Azure AI サービスに対する要求の認証」を参照してください。
カスタマー マネージド キー (CMK) この機能は、顧客の保存データを (48 時間より長く) 格納するサービスを対象としています。 このデータは Azure サーバーで既に二重に暗号化されていますが、ユーザーは自分で管理するキーを使ってさらに暗号化レイヤーを追加することで、セキュリティを強化できます。 サービスを Azure Key Vault にリンクし、そこでデータ暗号化キーを管理できます。

使用するサービスで CMK がサポートされているかどうかを、カスタマー マネージド キーのドキュメントで確認します。
仮想ネットワーク 仮想ネットワークを使うと、リソースに対する API 呼び出しを行うことができるエンドポイントを指定できます。 Azure サービスは、ネットワークの外部にあるデバイスからの API 呼び出しを拒否します。 許可されるネットワークの式ベースの定義を設定することも、許可するエンドポイントの完全な一覧を定義することもできます。 これはセキュリティのもう 1 つのレイヤーであり、他と組み合わせて使用できます。
データ損失の防止 データ損失防止機能を使うと、管理者は、Azure リソースが入力として受け取ることのできる URI の種類を決定できます (入力として URI を受け取る API 呼び出しの場合)。 これを行うことで、会社の機密データが流出する可能性を防ぐことができます。会社が URL パラメーターに機密情報 (顧客のプライベート データなど) を格納している場合、社内の不適切なアクターが機密 URL を Azure サービスに送信し、そのデータを社外に公開する可能性があります。 データ損失防止を使うと、到着した特定の URI フォームを拒否するようにサービスを構成できます。
カスタマー ロックボックス カスタマー ロックボックス機能は、お客様がデータ アクセス要求をレビューして承認または拒否するためのインターフェイスを提供します。 これは、Microsoft のエンジニアがサポート リクエストの際に顧客データにアクセスする必要がある場合に使用されます。 カスタマー ロックボックスの要求がどのように開始、追跡され、後のレビューや監査のために保存されるかについては、カスタマー ロックボックスのガイドに関する記事を参照してください。

カスタマー ロックボックスは次のサービスで使用できます。
  • Azure OpenAI
  • Translator
  • 会話言語理解
  • カスタム テキスト分類
  • カスタム固有表現認識
  • オーケストレーション ワークフロー
BYOS (ストレージ持ち込み) Speech サービスでは、現在、カスタマー ロックボックスはサポートされていません。 ただし、BYOS (ストレージ持ち込み) を使って、サービス固有のデータが独自のストレージ リソースに格納されるようにすることができます。 BYOS を使うと、カスタマー ロックボックスと似たデータ コントロールを実現できます。 Azure Cognitive Service for Speech サービスのデータは、Azure Cognitive Service for Speech リソースが作成された Azure リージョンで保持されて処理されることに注意してください。 これは、保存データと転送中のデータに適用されます。 Custom Speech や Custom Voice などのカスタマイズ機能では、お客様のすべてのデータは、Azure Cognitive Service for Speech サービス リソースと BYOS リソース (使っている場合) が存在しているのと同じリージョンで転送、格納、処理されます。

音声で BYOS を使用するには、保存データの音声暗号化のガイドに従ってください。

Microsoft は、音声モデルを改善するために顧客データを使用しません。 また、エンドポイントのログが無効になっていて、カスタマイズが使われていない場合、お客様のデータが Azure Cognitive Service for Speech によって格納されることはありません。

次のステップ