Azure Data Factory におけるデータ移動のセキュリティに関する考慮事項

適用対象: Azure Data Factory Azure Synapse Analytics

この記事では、Azure Data Factory のデータ移動サービスがデータの保護を容易にするために使用する基本的なセキュリティ インフラストラクチャについて説明します。 Data Factory 管理リソースは、Azure のセキュリティ インフラストラクチャ上に構築されており、Azure が提供する利用可能なすべてのセキュリティ対策を使用します。

Data Factory ソリューションでは、1 つ以上のデータ パイプラインを作成します。 パイプラインは、1 つのタスクを連携して実行するアクティビティの論理的なグループです。 これらのパイプラインは、データ ファクトリが作成されたリージョンに存在します。

Data Factory を利用できるのは少数のリージョンだけですが、データ移動サービスはデータのコンプライアンス、効率性、ネットワーク送信コスト削減のためにグローバルに利用できます

Azure 統合ランタイムとセルフホステッド統合ランタイムを含む Azure Data Factory では、クラウド データ ストアのリンクされたサービスの資格情報 (証明書を使用して暗号化されます) を除き、どの一時データ、キャッシュ データ、またはログも格納されません。 Azure Data Factory を使用すると、データドリブン ワークフローを作成し、サポートされているデータ ストア間でのデータ移動と、他のリージョンまたはオンプレミスの環境にあるコンピューティング サービスを使用したデータ処理を調整できます。 また、SDK と Azure Monitor を使用して、ワークフローを監視および管理することもできます。

Data Factory は、次の認証を取得しています。

CSA STAR 認証
ISO 20000-1:2011
ISO 22301:2012
ISO 27001:2013
ISO 27017:2015
ISO 27018:2014
ISO 9001:2015
SOC 1、2、3
HIPAA BAA
HITRUST

Azure コンプライアンスと、Azure が独自のインフラストラクチャをセキュリティで保護するしくみについて興味がある場合は、Microsoft Trust Center() にアクセスしてください。 すべての Azure コンプライアンス認証の最新の一覧については、「 https://aka.ms/AzureCompliance 」を参照してください。

この記事では、次の 2 つのデータ移動シナリオでセキュリティに関する考慮事項を確認します。

  • クラウド シナリオ:このシナリオでは、ソースと移動先の両方にインターネットを通じてパブリックにアクセスできます。 これには、Azure Storage、Azure Synapse Analytics、Azure SQL Database、Azure Data Lake Store、Amazon S3、Amazon Redshift などのマネージド クラウド ストレージ サービス、Salesforce などの SaaS サービス、FTP や OData などの Web プロトコルが含まれます。 サポートされているデータ ソースの完全な一覧については、「サポートされるデータ ストアと形式」を参照してください。
  • ハイブリッド シナリオ:このシナリオでは、ソースまたは移動先のどちらかが、ファイアウォールの内側またはオンプレミスの企業ネットワーク内にあります。 あるいは、データ ストアがプライベート ネットワークまたは仮想ネットワーク内 (ほとんどの場合はソース) にあり、パブリックにアクセスできません。 仮想マシンでホストされているデータベース サーバーもこのシナリオに該当します。

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。 Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

クラウド シナリオ

データ ストアの資格情報の保護

  • Azure Data Factory で管理されたストアに暗号化された資格情報を格納します。 Data Factory では、データ ストアの資格情報の保護を容易にするために、Microsoft が管理する証明書を使用して暗号化します。 証明書は、2 年ごとに交換されます (証明書の更新と資格情報の移行が行われます)。 Azure Storage のセキュリティの詳細については、「Azure Storage のセキュリティの概要」を参照してください。
  • Azure Key Vault に資格情報を格納します。 データ ストアの資格情報は、Azure Key Vault に格納することもできます。 Data Factory は、アクティビティの実行中に資格情報を取得します。 詳細については、「Azure Key Vault への資格情報の格納」を参照してください。

転送中のデータの暗号化

クラウド データ ストアが HTTPS または TLS をサポートしている場合、Data Factory のデータ移動サービスとクラウド データ ストア間のデータ転送はすべて、セキュリティで保護されたチャネル HTTPS または TLS を介して行われます。

注意

データベースとの間でのデータ転送中は、Azure SQL Database および Azure Synapse Analytics へのすべての接続で暗号化 (SSL/TLS) が必要です。 JSON を使用してパイプラインを作成する場合は、encryption プロパティを追加し、接続文字列で true に設定します。 Azure Storage では、接続文字列で HTTPS を使用できます。

注意

Oracle からデータを移動している間、転送中の暗号化を有効にするには、次のいずれかのオプションを実行します。

  1. Oracle サーバーで Oracle Advanced Security (OAS) に移動し、暗号化の設定を構成します。Triple-DES Encryption (3DES) と Advanced Encryption Standard (AES) がサポートされています。詳細については、こちらをご覧ください。 ADF は暗号化方法を自動的にネゴシエートし、Oracle への接続を確立するときにユーザーが OAS で構成した方法を使用します。
  2. ADF では、(リンクされたサービス内の) 接続文字列に EncryptionMethod=1 を追加できます。 これにより、暗号化方法として SSL/TLS が使用されます。 これを使用するには、Oracle サーバー側の OAS で非 SSL 暗号化の設定を無効にして、暗号化の競合を回避する必要があります。

注意

使用される TLS のバージョンは、1.2 です。

保存データの暗号化

一部のデータ ストアは、保存データの暗号化をサポートしています。 そうしたデータ ストアに対してはデータ暗号化メカニズムを有効にすることをお勧めします。

Azure Synapse Analytics

Azure Synapse Analytics の Transparent Data Encryption (TDE) を使用すると、保存データの暗号化と暗号化解除をリアルタイムで実行することによって、悪意のあるアクティビティの脅威から保護できます。 この動作はクライアントに対して透過的です。 詳細については、Azure Synapse Analytics でのデータベース保護に関する記事を参照してください。

Azure SQL データベース

Azure SQL Database では、Transparent Data Encryption (TDE) もサポートしています。TDE を使用すると、データの暗号化と暗号化解除をリアルタイムで実行することによって、悪意のあるアクティビティの脅威から保護できます。アプリケーションを変更する必要はありません。 この動作はクライアントに対して透過的です。 詳細については、「Azure SQL Database と Data Warehouse の透過的なデータ暗号化」をご覧ください。

Azure Data Lake Store

Azure Data Lake Store では、アカウントに格納されているデータを暗号化することもできます。 暗号化を有効にすると、Data Lake Store によってデータの永続化の前の暗号化と取得前の暗号化解除が自動的に行われるので、データにアクセスするクライアントに対してこの動作が透過的になります。 詳細については、「Azure Data Lake Store のセキュリティ」をご覧ください。

Azure Blob Storage と Azure Table Storage

Azure Blob Storage と Azure Table Storage では、Storage Service Encryption (SSE) をサポートしています。SSE により、データをストレージに永続化する前の暗号化と取得前の暗号化解除が自動的に実行されます。 詳細については、「保存データ向け Azure Storage Service Encryption」をご覧ください。

Amazon S3

Amazon S3 では、保存データのクライアント暗号化とサーバー暗号化の両方をサポートしています。 詳細については、「暗号化を使用したデータの保護」をご覧ください。

Amazon Redshift

Amazon Redshift では、保存データのクラスター暗号化をサポートしています。 詳細については、「Amazon Redshift データベース暗号化」をご覧ください。

Salesforce

Salesforce では、ファイル、添付ファイル、カスタム フィールドをすべて暗号化できる Shield Platform Encryption をサポートしています。 詳細については、「Understanding the Web Server OAuth Authentication Flow (Web サーバーの OAuth 認証フローについて)」をご覧ください。

ハイブリッド シナリオ

ハイブリッド シナリオでは、オンプレミス ネットワーク、仮想ネットワーク (Azure)、または仮想プライベート クラウド (Amazon) 内にセルフホステッド統合ランタイムをインストールする必要があります。 セルフホステッド統合ランタイムは、ローカルのデータ ストアにアクセスできる必要があります。 セルフホステッド統合ランタイムの詳細については、「自己ホスト型統合ランタイムを作成し構成する方法」を参照してください。

セルフホステッド統合ランタイム チャネル

コマンド チャネルは、Data Factory のデータ移動サービスとセルフホステッド統合ランタイム間で通信できるようにします。 通信には、アクティビティに関連する情報が含まれます。 データ チャネルは、オンプレミス データ ストアとクラウド データ ストア間でデータを転送するために使用されます。

オンプレミス データ ストアの資格情報

資格情報は、Data Factory 内に格納することも、Azure Key Vault から実行時に Data Factory によって参照することもできます。 Data Factory 内に資格情報を格納する場合は、常に、セルフホステッド統合ランタイムに暗号化されて格納されます。

  • 資格情報をローカルに保存します。 JSON にインラインで指定されている接続文字列と資格情報を使用して Set-AzDataFactoryV2LinkedService コマンドレットを直接使用すると、リンクされたサービスは暗号化されてセルフホステッド統合ランタイムに格納されます。 この場合、資格情報は、非常に安全な Azure バックエンド サービスを経由してセルフホスティッド統合マシンに送られ、そこで最終的に暗号化されて格納されます。 セルフホステッド統合ランタイムは、Windows DPAPI を使用して機密データと資格情報を暗号化します。

  • Azure Key Vault に資格情報を格納します。 データ ストアの資格情報は、Azure Key Vault に格納することもできます。 Data Factory は、アクティビティの実行中に資格情報を取得します。 詳細については、「Azure Key Vault への資格情報の格納」を参照してください。

  • Azure バックエンドを経由してセルフホステッド統合ランタイムに送らずに、ローカルに資格情報を格納します。 Data Factory バックエンドを経由して資格情報を送らずに、セルフホステッド統合ランタイムでローカルに資格情報を暗号化して格納する場合は、「Azure Data Factory でオンプレミスのデータ ストアの資格情報を暗号化する」の手順に従ってください。 このオプションは、すべてのコネクタでサポートされています。 セルフホステッド統合ランタイムは、Windows DPAPI を使用して機密データと資格情報を暗号化します。

  • リンクされたサービスの資格情報およびリンクされたサービスの機密情報の暗号化には、New-AzDataFactoryV2LinkedServiceEncryptedCredential コマンドレットを使用してください。 それから (接続文字列の EncryptedCredential 要素と共に) 返される JSON を使用して、Set-AzDataFactoryV2LinkedService コマンドレットを使用してリンクされたサービスを作成できます。

セルフホステッド統合ランタイム上のリンクされたサービスの暗号化時に使用されるポート

既定では、イントラネットからのリモート アクセスが有効になっている場合、PowerShell はセキュリティで保護された通信のためにセルフホステッド統合ランタイムを備えたマシン上のポート 8060 を使用します。 このポートは、必要に応じて、Integration Runtime Configuration Manager の [設定] タブから変更できます。

Integration Runtime Configuration Manager の [設定] タブ

ゲートウェイの HTTPS ポート

転送中の暗号化

すべてのデータ転送は、Azure サービスとの通信中に man-in-the-middle 攻撃を防止するために、セキュリティで保護されたチャネル HTTPS および TLS over TCP を介して行われます。

オンプレミス ネットワークと Azure 間の通信チャネルのセキュリティを強化するために、IPSec VPN または Azure ExpressRoute を使用することもできます。

Azure Virtual Network は、クラウド内のユーザーのネットワークを論理的に表したものです。 IPSec VPN (サイト間) または ExpressRoute (プライベート ピアリング) を設定して、オンプレミス ネットワークを仮想ネットワークに接続できます。

次の表には、ハイブリッド データ移動のソースと移動先の場所の異なる組み合わせに基づいたネットワークとセルフホステッド統合ランタイムの構成の推奨事項がまとめてあります。

source 宛先 ネットワーク構成 統合ランタイムのセットアップ
オンプレミス 仮想ネットワークにデプロイされた仮想マシンとクラウド サービス IPSec VPN (ポイント対サイトまたはサイト間) セルフホステッド統合ランタイムは、仮想ネットワークの Azure 仮想マシン上にインストールすることをお勧めします。
オンプレミス 仮想ネットワークにデプロイされた仮想マシンとクラウド サービス ExpressRoute (プライベート ピアリング) セルフホステッド統合ランタイムは、仮想ネットワークの Azure 仮想マシン上にインストールすることをお勧めします。
オンプレミス パブリック エンドポイントが存在する Azure ベースのサービス ExpressRoute (Microsoft ピアリング) セルフホステッド統合ランタイムは、オンプレミスまたは Azure 仮想マシンにインストールできます。

次の図は、オンプレミス データベースと Azure サービス間でのデータの移動に ExpressRoute および IPSec VPN (Azure Virtual Network を使用) を使用した場合のセルフホステッド統合ランタイムの使用方法を示しています。

ExpressRoute

ExpressRoute とゲートウェイの使用

IPSec VPN

IPSec VPN とゲートウェイの使用

IP アドレスに対するファイアウォールの構成と許可リストの設定

注意

各データ ソースで必要な場合は、企業ファイアウォール レベルでドメインに対するポートを管理するか、許可リストを設定することが必要になる場合があります。 この表では、例として Azure SQL Database、および Azure Synapse Analytics、Azure Data Lake Store のみを使用しています。

注意

Azure Data Factory によるデータ アクセス戦略の詳細については、こちらの記事を参照してください。

オンプレミス/プライベート ネットワークのファイアウォール要件

企業では、組織の中央ルーターで企業ファイアウォールが実行されています。 セルフホステッド統合ランタイムがインストールされているローカル コンピューターで Windows ファイアウォールがデーモンとして実行されています。

次の表には、企業ファイアウォールの送信ポートとドメインの要件を示しています。

ドメイン名 送信ポート 説明
*.servicebus.windows.net 443 セルフホステッド統合ランタイムがインタラクティブな作成を行うために必要です。
{datafactory}.{region}.datafactory.azure.net
または *.frontend.clouddatahub.net
443 セルフホステッド統合ランタイムが Data Factory サービスに接続するために必要です。
新しく作成されたデータ ファクトリの場合は、{datafactory}.{region}.datafactory.azure.net という形式のセルフホステッド統合ランタイム キーから FQDN を見つけてください。 古いデータ ファクトリの場合、セルフホステッド統合キーに FQDN が表示されないときは、代わりに *.frontend.clouddatahub.net を使用してください。
download.microsoft.com 443 セルフホステッド統合ランタイムが更新プログラムをダウンロードするために必要です。 自動更新を無効にしている場合は、このドメインの構成をスキップできます。
*.core.windows.net 443 ステージング コピー機能を使用する場合に、セルフホステッド統合ランタイムが Azure ストレージ アカウントに接続するために使用します。
*.database.windows.net 1433 Azure SQL Database または Azure Synapse Analytics との間でコピーするときにのみ必要です。その他の場合は省略可能です。 ポート 1433 を開かずに SQL Database または Azure Synapse Analytics にデータをコピーするには、ステージング コピー機能を使用します。
*.azuredatalakestore.net
login.microsoftonline.com/<tenant>/oauth2/token
443 Azure Data Lake Store との間でコピーするときにのみ必要です。その他の場合は省略可能です。

注意

各データ ソースで必要な場合は、企業ファイアウォール レベルでドメインに対するポートを管理するか、許可リストを設定することが必要になる場合があります。 この表では、例として Azure SQL Database、および Azure Synapse Analytics、Azure Data Lake Store のみを使用しています。

次の表には、Windows ファイアウォールの受信ポートの要件があります。

受信ポート 説明
8060 (TCP) Azure Data Factory でオンプレミスのデータ ストアの資格情報を暗号化する」に説明されているように PowerShell 暗号化コマンドレットと、セルフホステッド統合ランタイムのオンプレミス データ ストアに安全に資格情報を設定するために資格情報マネージャー アプリケーションで必要です。

ゲートウェイのポートの要件

データ ストアでの IP の構成と許可リストの設定

クラウドの一部のデータ ストアでは、ストアにアクセスするコンピューターの IP アドレスを許可する必要もあります。 セルフホステッド統合ランタイム コンピューターの IP アドレスがファイアウォールで適切に許可または構成されていることを確認します。

以下のクラウド データ ストアでは、セルフホステッド統合ランタイム コンピューターの IP アドレスを許可する必要があります。 これらのデータ ストアの中には、既定では、許可する必要がないものもあります。

よく寄せられる質問

セルフホステッド統合ランタイムは別のデータ ファクトリと共有できますか?

はい。 詳細については、こちらをご覧ください。

セルフホステッド統合ランタイムの動作にはどのようなポートの要件がありますか?

セルフホステッド統合ランタイムは、インターネットにアクセスするために HTTP ベースの接続を行います。 セルフホステッド統合ランタイムがこの接続を確立するには、送信ポート 443 を開く必要があります。 資格情報マネージャー アプリケーションのコンピューター レベル (企業のファイアウォール レベルではない) でのみ受信ポート 8060 を開きます。 Azure SQL Database または Azure Synapse Analytics をソースまたは移動先として使用する場合は、ポート 1433 も開く必要があります。 詳細については、「IP アドレスに対するファイアウォールの構成と許可リストの設定」セクションを参照してください。

次のステップ

Azure Data Factory のコピー アクティビティのパフォーマンスについては、「コピー アクティビティのパフォーマンスとチューニングに関するガイド」を参照してください。