機械学習で SQL Server のセキュリティに関する考慮事項Security considerations for machine learning in SQL Server

この記事は、管理者や設計者は、留意ください machine learning のサービスを使用する場合に、セキュリティの考慮事項を一覧表示します。This article lists security considerations that the administrator or architect should bear in mind when using machine learning services.

適用されます: SQL Server 2016 の R Services、SQL Server 2017 機械学習のサービスApplies to: SQL Server 2016 R Services, SQL Server 2017 Machine Learning Services

ファイアウォールを使用して、R によるネットワーク アクセスを制限します。Use a firewall to restrict network access by R

既定インストールでは、Windows ファイアウォールの規則は、R ランタイム プロセスからのすべての発信ネットワーク アクセスをブロックするために使用します。In a default installation, a Windows firewall rule is used to block all outbound network access from the R runtime processes. R ランタイム プロセスによって、パッケージのダウンロード、および悪意のある可能性があるその他のネットワーク呼び出しが実行されないように、ファイアウォール ルールを作成する必要があります。Firewall rules should be created to prevent the R runtime process from downloading packages or from making other network calls that could potentially be malicious.

別のファイアウォール プログラムを使用している場合にも、ローカル ユーザー アカウント用、またはユーザー アカウント プールによって表されるグループ用のルールを設定することで、R ランタイムの送信ネットワーク接続をブロックするためのルールを作成できます。If you are using a different firewall program, you can also create rules to block outbound network connection for the R runtime, by setting rules for the local user accounts or for the group represented by the user account pool.

R、または Python ランタイムによって設けるネットワーク アクセスを防ぐために Windows ファイアウォール (または別のファイアウォール) を有効にすることを強くお勧めします。We strongly recommend that you turn on Windows Firewall (or another firewall of your choice) to prevent unfettered network access by the R or Python runtimes.

リモート計算コンテキストでサポートされる認証メソッドAuthentication methods supported for remote compute contexts

R Services (In-Database)R Services (In-Database)間の接続を作成するときに、Windows 統合認証と SQL の両方のログインをサポートしている SQL ServerSQL Serverとリモート データ サイエンス クライアント。 supports both Windows Integrated Authentication and SQL logins when creating connections between SQL ServerSQL Server and a remote data science client.

たとえば、ノート PC で R ソリューションを開発し、SQL Server コンピューターで計算を実行する場合は、rx 関数を使用し、Windows 資格情報に基づいて接続文字列を定義することによって、SQL Server データ ソースを R で作成します。For example, if you are developing an R solution on your laptop and want to perform computations on the SQL Server computer, you would create a SQL Server data source in R, by using the rx functions and defining a connection string based on your Windows credentials.

変更すると、計算コンテキスト、SQL Server コンピューターにラップトップから使用する Windows アカウントに必要なアクセス許可がある場合すべて R コードが実行される SQL Server コンピューターにします。When you change the compute context from your laptop to the SQL Server computer, if your Windows account has the necessary permissions, all R code is executed on the SQL Server computer. さらに、R コードの一部として実行された SQL クエリは、管理者の資格情報も実行されます。Moreover, any SQL queries executed as part of the R code are run under your credentials as well.

このシナリオでは、混合モード認証を許可する SQL Server インスタンスを構成することが必要では、SQL ログインの使用はサポートされても。The use of SQL logins is also supported in this scenario, which requires that the SQL Server instance be configured to allow mixed mode authentication.

暗黙の認証Implied authentication

一般に、 SQL Server Trusted LaunchpadSQL Server Trusted Launchpad外部スクリプトの実行時を起動し、独自のアカウント下でスクリプトを実行します。In general, the SQL Server Trusted LaunchpadSQL Server Trusted Launchpad starts the external script runtime and executes scripts under its own account. ただし、外部のランタイムは、ODBC 呼び出しを行う場合、 SQL Server Trusted LaunchpadSQL Server Trusted Launchpad ODBC 呼び出しが異常終了しないようにするコマンドを送信したユーザーの資格情報の権限を借用します。However, if the external runtime makes an ODBC call, the SQL Server Trusted LaunchpadSQL Server Trusted Launchpad impersonates the credentials of the user that sent the command to ensure that the ODBC call does not fail. これは暗黙の認証と呼ばれます。This is called implied authentication.


暗黙の認証が正常に行われるには、ワーカー アカウント (既定では SQLRUser) を含む Windows ユーザー グループがインスタンスのマスター データベースにアカウントを持ち、このアカウントにインスタンスへの接続許可が付与されている必要があります。For implied authentication to succeed, the Windows users group that contains the worker accounts (by default, SQLRUser) must have an account in the master database for the instance, and this account must be given permissions to connect to the instance.

グループSQLRUser Python スクリプトを実行しているときにも使用します。The group SQLRUser is also used when running Python scripts.

保存時の暗号化はサポートされていませんNo support for encryption at rest

データを送信または受信外部スクリプトの実行時からに、透過的なデータ暗号化はサポートされていません。Transparent Data Encryption is not supported for data sent to or received from the external script runtime. その結果、保存時の暗号化R または Python スクリプト、ディスク、または任意の保存された中間結果を保存されるデータで使用する任意のデータに適用されます。As a consequence, encryption at rest is not be applied to any data that you use in R or Python scripts, any data saved to disk, or any persisted intermediate results.


詳細については、サービスの管理、および R スクリプトを実行するために使用するユーザー アカウントをプロビジョニングする方法について、次を参照してください。構成 Advanced Analytics Extensions を管理およびです。For more information about managing the service, and about how to provision the user accounts used to execute R scripts, see Configure and manage Advanced Analytics Extensions.

セキュリティ アーキテクチャの説明を参照してください。For a description of the security architecture, see: