認証は、ユーザーまたはアプリケーションの ID を検証するプロセスです。 単一ソースの ID プロバイダーを使用して、ID の管理と認証を処理することをお勧めします。 このプロバイダーはディレクトリ サービスと呼 ばれます。 ディレクトリ データを格納する方法を提供し、このデータをネットワーク ユーザーと管理者が使用できるようにします。
Data Lake ソリューションでは、既存のディレクトリ サービスを使用して統合する必要があります。 ほとんどの組織では、ID 関連のすべてのサービスのディレクトリ サービスは Microsoft Entra ID です。 これは、すべてのサービスおよびユーザー アカウントを一元管理するプライマリ データベースです。
クラウドでは、Microsoft Entra ID は、一元化された ID プロバイダーであり、ID 管理の優先ソースです。 ユーザーが特定の場所にいる必要がある条件付きアクセス ポリシーなどの機能を使用するには、認証と承認を Microsoft Entra ID に委任します。 Microsoft Entra ID では多要素認証もサポートされており、アクセス セキュリティのレベルが向上します。 データ サービスは、可能な限り Microsoft Entra ID を統合して構成する必要があります。
データ サービスが Microsoft Entra ID をサポートしていない場合は、アクセス キーまたはトークンを使用して認証を実行する必要があります。 アクセス キーは、Azure Key Vault などのキー管理ストアに格納する必要があります。
クラウド規模の分析の認証シナリオについて説明します。
- ユーザー認証。 このシナリオでは、Microsoft Entra ID は資格情報を使用してユーザーを認証します。
- サービス間認証。 このシナリオでは、Azure リソースは、Azure が自動的に管理するマネージド ID を使用してサービスを認証します。
- アプリケーションからサービスへの認証。 このシナリオでは、アプリケーションはサービス プリンシパルを使用してサービスを認証します。
認証シナリオ
次のセクションでは、ユーザー認証、サービス間認証、アプリケーション間認証の各認証シナリオについて説明します。
ユーザー認証
データ サービスまたはリソースに接続するユーザーは、資格情報を提示する必要があります。 この資格情報は、ユーザーが自分の主張するユーザーであることを証明します。 この後、ユーザーはサービスやリソースにアクセスできるようになります。 認証により、サービスがユーザーの ID を認識することもできます。 サービスでは、ID の検証後にユーザーが表示および実行できることを決定します。
Azure Data Lake Storage、Azure SQL Database、Azure Databricks では、Microsoft Entra ID の統合がサポートされています。 対話型ユーザー認証モードでは、ユーザーはダイアログ ボックスに資格情報を入力する必要があります。
重要
認証のためにユーザー資格情報をアプリケーションにハードコーディングしないでください。
サービス間認証
サービスが人間の操作なしで別のサービスにアクセスする場合は、有効な ID を提示する必要があります。 この ID は、サービスの信頼性を証明し、アクセスするサービスが許可されるアクションを決定できるようにします。
サービス間認証シナリオでは、Azure サービスの認証にマネージド ID を使用することをお勧めします。 Azure リソース用マネージド ID を使用すると、明示的な資格情報を使用することなく、Microsoft Entra 認証をサポートするすべてのサービスに対して認証を行うことができます。 詳細については、「Azure リソース用マネージド ID とは」を参照してください。
マネージド ID は、Azure リソースでのみ使用できるサービス プリンシパルです。 たとえば、Azure Data Factory インスタンスのマネージド ID を作成できます。 Microsoft Entra ID は、このマネージド ID を Data Factory インスタンスを表すオブジェクトとして登録します。 その後、この ID を使用して、コード内の資格情報なしで、Data Lake Storage などの任意のサービスに対する認証を行うことができます。 Azure は、サービス インスタンスが使用する資格情報を管理します。 この ID は、Data Lake Storage 内のフォルダーなどの Azure サービス リソースを認証できます。 Data Factory インスタンスを削除すると、Azure は Microsoft Entra ID の ID を削除します。
マネージド ID を使用するベネフィット
マネージド ID を使用して、別の Azure サービスまたはリソースに対して Azure サービスを認証します。 マネージド ID には、次の利点があります。
- マネージド ID は、これを作成するサービスを表します。 対話ユーザーを表すものではありません。
- マネージド ID の資格情報は、Microsoft Entra ID で保守、管理、格納されます。 ユーザーが保持するパスワードはありません。
- マネージド ID を使用する場合、クライアント サービスはパスワードを使用しません。
- システム割り当てマネージド ID は、サービス インスタンスが削除されると削除されます。
これらの利点は、資格情報の保護が強化され、セキュリティ侵害の可能性が低くなることを意味します。
アプリケーションとサービス間の認証
もう 1 つのアクセス シナリオは、モバイルアプリケーションや Web アプリケーションなどのアプリケーションが Azure サービスにアクセスする場合です。 アプリケーションはその ID を提示する必要があり、検証する必要があります。
Azure サービス プリンシパルは、マネージド ID をサポートしていないアプリケーションとサービスが Azure リソースに対して認証するための代替オプションです。 サービス プリンシパルは、Azure リソースにアクセスするためのアプリケーション、ホストされたサービス、自動化されたツール専用に作成された ID です。 サービス プリンシパルに割り当てられたロールは、そのアクセスを制御します。 セキュリティ上の理由から、ユーザー ID を使用してサインインできるようにするのではなく、自動化されたツールまたはアプリケーションでサービス プリンシパルを使用することをお勧めします。 詳細については、Microsoft Entra ID プラットフォームのアプリケーションとサービス プリンシパルのオブジェクトに関するページを参照してください。
マネージド ID とサービス プリンシパルの違い
| サービス プリンシパル | マネージド ID |
|---|---|
| 特定の Azure リソースにアクセスする必要があるアプリケーション、サービス、ツールの Microsoft Entra ID で手動で作成するセキュリティ ID。 | 特別な種類のサービス プリンシパル。 これは、Azure サービスの作成時に作成される自動 ID です。 |
| 任意のアプリケーションまたはサービスによって使用され、特定の Azure サービスに関連付けられません。 | Azure サービス インスタンス自体を表します。 他の Azure サービスを表すために使用することはできません。 |
| 独立したライフサイクルがあります。 明示的に削除する必要があります。 | Azure サービス インスタンスが削除されるときに自動的に削除されます。 |
| パスワードベースまたは証明書ベースの認証。 | 認証に明示的なパスワードを指定する必要はありません。 |
注釈
マネージド ID とサービス プリンシパルは共に、Microsoft Entra ID で作成され保守されます。
クラウド規模の分析での認証のベスト プラクティス
クラウド規模の分析では、堅牢で安全な認証プラクティスを実装することが最も重要です。 認証のベスト プラクティスは、データベース、ストレージ、分析サービスなど、ソリューションのさまざまなレイヤーに適用されます。 Microsoft Entra ID を使用することで、組織は多要素認証や条件付きアクセス ポリシーなどの機能を使用してセキュリティを強化できます。
| レイヤー | サービス | 勧告 |
|---|---|---|
| データベース | - SQL Database - SQL マネージド インスタンス(SQL 管理対象インスタンス) - Azure Database for MySQL - Azure Database for PostgreSQL |
Azure Database for PostgreSQL、Azure SQL、Azure Database for MySQL などのデータベースでの認証には、Microsoft Entra ID を使用します。 |
| Storage | Data Lake Storage | 共有キーや共有アクセス署名の代わりに Data Lake Storage を使用して、ユーザー、グループ、サービス プリンシパル、マネージド ID などのセキュリティ プリンシパルの認証に Microsoft Entra ID を使用します。 この方法は、多要素認証と条件付きアクセス ポリシーをサポートするため、セキュリティの向上に役立ちます。 |
| Storage | Azure Databricks 用データレイクストレージ | マネージド ID と外部の場所を使用するストレージ資格情報を作成して、直接ストレージ レベルのアクセスではなく、Unity カタログを使用して Data Lake Storage に接続します。 |
| Analytics | Azure Databricks | クロスドメイン ID 管理用システムを使用して、 Microsoft Entra ID のユーザーとグループを同期します。 REST API を使用して Azure Databricks リソースにアクセスするには、 Azure Databricks サービス プリンシパルで OAuth を使用します。 |
重要
Azure Databricks ユーザーに Data Lake Storage への直接ストレージ レベルのアクセス権を付与すると、Unity カタログのアクセス許可、監査、およびアクセス制御や監視などのセキュリティ機能がバイパスされます。 データのセキュリティを強化し、管理するために、Unity Catalog では、Azure Databricks ワークスペース ユーザー向けに Data Lake Storage に格納されているデータへのアクセスを管理する必要があります。