データ アクセス セキュリティを実装する
HDInsight は PaaS サービスであり、最も実装されているパターンは、コンピューティングをストレージから完全に分離することです。 このようなパターンの場合、データ アクセス セキュリティにより、保存データをセキュリティで保護し、HDInsight とデータ レイヤー間のトラフィックをセキュリティで保護することができます。 これらのセキュリティ領域は、HDInsight 固有のセキュリティ機能の管理範囲から外れており、Azure ストレージとネットワーク サービスで使用できるセキュリティ機能によって実現されます。 HDInsight クラスター上でデータ アクセス セキュリティを実現する方法に関する推奨事項の一覧を次に示します。 ユース ケースに基づいて、これらの推奨事項の一部またはすべてを実装することができます。
セキュリティで保護された接続からのストレージへの要求のみを許可する
安全な転送を使用すると、セキュリティで保護された接続 (https) からの要求が許可され、http からのすべての接続は拒否されます。 クラスターを作成する前に、安全な転送を有効にしてください。 [安全な転送が必須] スライダー ボタンをクリックして [有効] を選択します。 安全な転送など、ADLSG2 に関するベスト プラクティスのセキュリティ推奨事項を確認してください。
ADLS Gen2 に アクセス制御リスト (ACL) を実装する
ADLS Gen2 アクセス制御モデルは、Azure ロールベースのアクセス制御 (RBAC) と POSIX のようなアクセス制御 (ACL) の両方をサポートします。 HDInsight に POSIX レベルの ACL モデルを実装し、ファイルとフォルダーのパススルー認証を設定することもできます。 ADLS Gen2 上のすべてのファイルまたはディレクトリには、これらの ID に対する個別のアクセス許可があります。
- 所有ユーザー
- 所有グループ
- 名前付きユーザー
- 名前付きグループ
- 名前付きサービス プリンシパル
- 名前付きマネージド ID
- そのため、ADLS Gen2 ファイルおよびフォルダーに対する他のすべてのユーザーの POSIX レベル アクセス制御を、HDInsight ドメインのユーザーおよびグループに付与することができます。これらの承認は、アクセス時にすべての HDInsight サービスに適用されます。 詳細については、Azure Data Lake Storage Gen2 上のアクセス制御に関するページを参照してください。
Azure Storage のファイアウォール
許可リストに登録されたエンティティのみがストレージ アカウントにアクセスできるように、Azure ストレージのファイアウォールには "すべて拒否、例外による許可" のネットワーク ポリシーが使用されています。 固定の信頼済み IP アドレスまたは事前に定義された信頼済み IP 範囲からのアカウント アクセスを有効にするように、ストレージのファイアウォールを構成することができます。 信頼済み Microsoft サービスからストレージ アカウントにアクセスできることを確認して、ログ記録などの機能を有効にしてください。 次に示すように、[ファイアウォールと仮想ネットワーク] ブレードからストレージ アカウントで Azure Firewall を有効にすることができます。
HDInsight クラスター外にあるストレージ クライアントのトランスポート層セキュリティ (TLS)
ストレージ アカウントで TLS を有効にすると、ストレージ アカウントとの間で送受信されるデータが確実に暗号化されます。 Azure Storage では、パブリック HTTPS エンドポイントに対して TLS 1.2 が使用されますが、下位互換性のために TLS 1.0 と TLS 1.1 もまだサポートされています。 Azure Storage に対するセキュリティで保護され、コンプライアンスに準拠した接続を確保するには、クライアント側で TLS 1.2 以降を有効にしてから Azure Storage サービスを操作する要求を送信する必要があります。 この場合、ストレージ アカウントが HDInsight とデータを交換するときに、TLS 1.2 は既定で既に有効になっているため、有効にするために特別な操作は必要はありません。 詳細については、Azure Storage クライアントのセキュリティで保護された TLS に関するページを参照してください。
仮想ネットワーク サービス エンドポイント
HDInsight は、Azure Blob Storage、Azure Data Lake Storage Gen2、Cosmos DB、および SQL Database に対して VNet サービス エンドポイントをサポートしています。 HDInsight のセキュリティの観点から言うと、HDInsight サブネットからのアクセスのみを許可するように、ストレージ アカウント、クラスター メタストア、および Cosmos DB に VNet サービス エンドポイントを設定することができます。 これらのエンティティと HDInsight 間を移動するトラフィックは、常に Azure のバックボーンに残ります。 ストレージ アカウントで、VNet サービス エンドポイントを有効にするには、[ファイアウォールと仮想ネットワーク] ブレードから、[既存の仮想ネットワークを追加] または [新しい仮想ネットワークを追加] をクリックし、[許可するアクセス元] のオプション ボタンを [選択したネットワーク] に選択し、アクセスを許可する VNet 情報を指定します。 この場合、このストレージ アカウントにアクセスする HDInsight VNet とサブネットを入力します。 次の例では、ストレージ アカウントから、明示的に指定された 3 つの HDInsight サブネットからのトラフィックにのみアクセスできます。
SQL データベースの場合、VNet サービス エンドポイントは [ファイアウォールと仮想ネットワーク] ブレードから設定できます。
詳細については、Azure での VNet サービス エンドポイントに関するページを参照してください。
カスタマー マネージド キー
大規模なデータ ランドスケープの場合、セキュリティの重要な要件には保存データの暗号化があります。 Azure Storage の既定では、Microsoft マネージド キーを使用して、ストレージ アカウント内のすべてのデータが暗号化されます。 ただし、データをさらに制御するために、お客様が独自のキーを使用することもできます。 ポータルから、ストレージ アカウントの [暗号化] ブレードを使用して、ストレージ アカウントのキー設定を決定します。 [独自のキーを使用する] を選択し、キー URI を選択するか、Azure キー コンテナーからキーを選択します。 詳細については、Azure Storage のカスタマー マネージド キーに関するページを参照してください。
同様に、Kafka クラスターの場合、クラスターを作成するときに独自のキーを使用して、保存されているすべてのブローカー データを暗号化することができます。