デジタル署名を使用してパッケージのソースを特定するIdentify the Source of Packages with Digital Signatures

APPLIES TO: yesSQL Server, including on Linux yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Integration ServicesIntegration Services パッケージは、そのソースを識別するために、デジタル証明書を使用して署名できます。An Integration ServicesIntegration Services package can be signed with a digital certificate to identify its source. パッケージがデジタル証明書を使用して署名されたら、パッケージを読み込む前に Integration ServicesIntegration Services でデジタル署名を確認できます。After a package has been signed with a digital certificate, you can have Integration ServicesIntegration Services check the digital signature before loading the package. Integration ServicesIntegration Services で署名を確認するには、 SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) または dtexec ユーティリティ (dtexec.exe) でオプションを設定するか、オプションのレジストリ値を設定します。To have Integration ServicesIntegration Services check the signature, you set an option in either SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or in the dtexec utility (dtexec.exe), or set an optional registry value.

デジタル証明書を使用してパッケージに署名するSign a package with a digital certificate

デジタル証明書を使用してパッケージに署名する前に、証明書を取得または作成する必要があります。Before you can sign a package with a digital certificate, you first have to obtain or create the certificate. 証明書を用意したら、この証明書を使用してパッケージに署名できます。After you have the certificate, you can then use this certificate to sign the package. 証明書を取得し、その証明書を使用してパッケージに署名する方法の詳細については、「 デジタル証明書を使用してパッケージに署名する」を参照してください。For more information about how to obtain a certificate and sign a package with that certificate, see Sign a Package by Using a Digital Certificate.

パッケージの署名を確認するオプションを設定するSet an option to check the package signature

SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)dtexec ユーティリティの両方に、署名付きパッケージのデジタル署名を確認するように Integration ServicesIntegration Services を構成するオプションがあります。Both SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) and the dtexec utility have an option that configures Integration ServicesIntegration Services to check the digital signature of a signed package. SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)dtexec ユーティリティのどちらを使用するかは、すべてのパッケージを確認するか特定のパッケージだけを確認するかによって決まります。Whether you use SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or the dtexec utility depends on whether you want to check all packages or just specific ones:

  • デザイン時にすべてのパッケージのデジタル署名を確認してからパッケージを読み込むには、 [パッケージの読み込み時にデジタル署名を確認する] SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)チェック ボックスをオンにします。To check the digital signature of all packages before loading the packages at design time, set the Check digital signature when loading a package option in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT). このオプションは、 SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)でのすべてのパッケージに対するグローバルな設定です。This option is a global setting for all packages in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).

  • 個別のパッケージのデジタル署名を確認するには、 dtexec ユーティリティを使用してパッケージを実行するときに /VerifyS[igned] オプションを指定します。To check the digital signature of an individual package, specify the /VerifyS[igned] option when you use the dtexec utility to run the package. 詳細については、「 dtexec Utility」を参照してください。For more information, see dtexec Utility.

パッケージの署名を確認するレジストリ値を設定するSet a Registry value to check package signature

Integration ServicesIntegration Services では、オプションのレジストリ値である BlockedSignatureStatesもサポートされています。このレジストリ値を使用すると、署名付きパッケージと署名がないパッケージの読み込みに関する組織のポリシーを管理できます。also supports an optional registry value, BlockedSignatureStates, that you can use to manage an organization's policy for loading signed and unsigned packages. このレジストリ値により、パッケージが署名されていない場合、または無効な署名や信頼できない署名が含まれている場合に、パッケージが読み込まれないようにすることができます。The registry value can prevent packages from loading if the packages are unsigned, or have invalid or untrusted signatures. このレジストリ値を設定する方法の詳細については、「 レジストリ値を設定して署名ポリシーを実装する」を参照してください。For more information about how to set this registry value, see Implement a Signing Policy by Setting a Registry Value.

注: オプションの BlockedSignatureStates レジストリ値では、 SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) または dtexec コマンド ラインで設定されたデジタル署名オプションよりも制限が厳しい設定を指定できます。NOTE: The optional BlockedSignatureStates registry value can specify a setting that is more restrictive than the digital signature option set in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or at the dtexec command line. この場合、制限が厳しい方のレジストリ設定が他の設定をオーバーライドします。In this situation, the more restrictive registry setting overrides the other settings.

レジストリ値を設定して署名ポリシーを実装するImplement a Signing Policy by Setting a Registry Value

オプションのレジストリ値を使用して、署名付きパッケージまたは署名がないパッケージを読み込む際の組織のポリシーを管理できます。You can use an optional registry value to manage an organization's policy for loading signed or unsigned packages. このレジストリ キーを使用する場合、 Integration ServicesIntegration Services が実行されるコンピューターおよびポリシーを適用するコンピューターごとにこのレジストリ値を作成する必要があります。If you use this registry value, you must create this registry value on each computer on which Integration ServicesIntegration Services packages will run and on which you want to enforce the policy. レジストリ値が設定されると、パッケージを読み込む前に、 Integration ServicesIntegration Services によって署名が確認されます。After the registry value has been set, Integration ServicesIntegration Services will check or verify the signatures before loading packages.

このトピックの手順では、オプションの BlockedSignatureStates DWORD 値をレジストリ キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS に追加する方法について説明します。This procedure in this topic describes how to add the optional BlockedSignatureStates DWORD value to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS registry key. BlockedSignatureStates のデータ値は、署名が信頼できない場合、署名が無効な場合、または署名がない場合に、そのパッケージをブロックするかどうかを決定します。The data value in BlockedSignatureStates determines whether a package should be blocked if it has an untrusted signature, has an invalid signature, or is unsigned. パッケージの署名に使用される署名のステータスについて、 BlockedSignatureStates レジストリ値では以下の定義が適用されます。With regard to the status of signatures used to sign packages, the BlockedSignatureStates registry value uses the following definitions:

  • 有効な署名 とは、正常に読み取ることができる署名のことです。A valid signature is one that can be read successfully.

  • 無効な署名 とは、暗号化解除済みのチェックサム (秘密キーによって暗号化されたパッケージ コードの一方向のハッシュ) が、 Integration ServicesIntegration Services パッケージを読み込むプロセスの一部として計算された暗号化解除済みのチェックサムと一致しない署名のことです。An invalid signature is one for which the decrypted checksum (the one-way hash of the package code encrypted by a private key) does not match the decrypted checksum that is calculated as part of the process of loading Integration ServicesIntegration Services packages.

  • 信頼できる署名 とは、信頼されているルート証明機関により署名されたデジタル証明書を使用して作成される署名のことです。A trusted signature is one that is created by using a digital certificate signed by a Trusted Root Certification Authority. この設定で、署名者は、ユーザーの信頼できる発行元のリストに含まれている必要はありません。This setting does not require the signer to be found in the user's list of Trusted Publishers.

  • 信頼できない署名 とは、信頼されているルート証明機関によって発行されたことを確認できない署名、または最新ではない署名のことです。An untrusted signature is one that cannot be verified as issued by a Trusted Root Certification Authority, or a signature that is not current.

次の表に、DWORD データの有効な値、およびそれらに関連付けられたポリシーを示します。The following table lists the valid values of the DWORD data and their associated policy.

[値]Value DescriptionDescription
00 管理制限はありません。No administrative restriction.
11 署名が無効なパッケージをブロックします。Block invalid signatures.

この設定では、署名がないパッケージはブロックしません。This setting does not block unsigned packages.
22 署名が無効または信頼できないパッケージをブロックします。Block invalid and untrusted signatures.

この設定では、署名がないパッケージをブロックしませんが、自己生成された署名をブロックします。This setting does not block unsigned packages, but blocks self-generated signatures.
33 署名が無効であるか署名が信頼できないパッケージ、および署名がないパッケージをブロックします。Block invalid and untrusted signatures and unsigned packages

この設定では、自己生成された署名もブロックします。This setting also blocks self-generated signatures.

注意

BlockedSignatureStates の推奨設定は 3 です。The recommended setting for BlockedSignatureStates is 3. この設定では、署名されていないパッケージまたは無効な署名や信頼できない署名に対する最大の保護が提供されます。This setting provides the greatest protection against unsigned packages or signatures that are either not valid or untrusted. ただし、推奨される設定がすべての状況に適しているとは限りません。However, the recommended setting may not be appropriate in all circumstances. デジタル アセットの署名の詳細については、MSDN ライブラリの「コード署名の概要」を参照してください。For more information about signing digital assets, see the topic, "Introduction to Code Signing," in the MSDN Library.

パッケージに対する署名ポリシーを実装するにはTo implement a signing policy for packages

  1. [スタート] メニューの [ファイル名を指定して実行] をクリックします。On the Start menu, click Run.

  2. [ファイル名を指定して実行] ダイアログ ボックスで、「 Regedit」と入力し、 [OK] をクリックします。In the Run dialog box, type Regedit, and then click OK.

  3. レジストリ キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS を探します。Locate the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.

  4. [MSDTS] を右クリックし、 [新規] をポイントして、 [DWORD 値] をクリックします。Right-click MSDTS, point to New, and then click DWORD Value.

  5. 新しい値の名前を「 BlockedSignatureStates」に更新します。Update the name of the new value to BlockedSignatureStates.

  6. [BlockedSignatureStates] を右クリックし、 [変更] をクリックします。Right-click BlockedSignatureStates and click Modify.

  7. [DWORD 値の編集] ダイアログ ボックスで、「0」、「1」、「2」、または「3」のいずれかの値を入力します。In the Edit DWORD Value dialog box, type the value 0, 1, 2, or 3.

  8. [OK] をクリックします。Click OK.

  9. [ファイル] メニューの [終了] をクリックします。On the File menu, click Exit.

デジタル証明書を使用してパッケージに署名するSign a Package by Using a Digital Certificate

このトピックでは、デジタル証明書を使用して Integration ServicesIntegration Services パッケージに署名する方法について説明します。This topic describes how to sign an Integration ServicesIntegration Services package with a digital certificate. デジタル署名を他の設定と共に使用して、有効でないパッケージの読み込みや実行を防ぐことができます。You can use a digital signature, together with other settings, to prevent a package that is not valid from loading and running.

Integration ServicesIntegration Services パッケージに署名する前に、次のタスクを実行する必要があります。Before you can sign an Integration ServicesIntegration Services package, you must do the following tasks:

  • 証明書と関連付ける秘密キーを作成または取得して、この秘密キーをローカル コンピューターに格納します。Create or obtain a private key to associate with the certificate, and store this private key on the local computer.

  • 信頼できる証明機関からコード署名用の証明書を入手します。Obtain a certificate for the purpose of code signing from a trusted certification authority. 証明書を取得または作成するには、次のいずれかの方法を使用できます。You can use one of the following methods to obtain or create a certificate:

    • 証明書を発行する公的な商用証明機関から証明書を入手します。Obtain a certificate from a public, commercial certification authority that issues certificates.

    • 組織が証明書を内部的に発行できるようにする証明書サーバーから証明書を入手します。Obtain a certificate from a certificate server, that enables an organization to internally issue certificates. 証明書の署名に使用されるルート証明書を、 [信頼されたルート証明機関] ストアに追加する必要があります。You have to add the root certificate that is used to sign the certificate to the Trusted Root Certification Authorities store. ルート証明書を追加するには、 MicrosoftMicrosoft 管理コンソール (MMC) の証明書スナップインを使用します。To add the root certificate, you can use the Certificates snap-in for the MicrosoftMicrosoft Management Console (MMC). 詳細については、MSDN ライブラリの「証明書サービス」を参照してください。For more information, see the topic, "Certificate Services," in the MSDN library.

    • テスト目的でのみ独自の証明書を作成します。Create your own certificate for testing purposes only. 証明書作成ツール (Makecert.exe) は、テスト目的で X.509 証明書を生成します。The Certificate Creation Tool (Makecert.exe) generates X.509 certificates for testing purposes. 詳細については、MSDN ライブラリの「証明書作成ツール (Makecert.exe)」を参照してください。For more information, see the topic, "Certificate Creation Tool (Makecert.exe)," in the MSDN Library.

    証明書の詳細については、証明書スナップインのオンライン ヘルプを参照してください。For more information about certificates, see the online Help for the Certificates snap-in. デジタル アセットの署名方法の詳細については、MSDN ライブラリの「Authenticode を使用したコードの署名と検証」を参照してください。For more information about how to sign digital assets, see the topic, "Signing and Checking Code with Authenticode," in the MSDN Library.

  • 証明書がコードの署名用に有効になっていることを確認します。Make sure that the certificate has been enabled for code signing. 証明書がコードの署名用に有効になっているかどうかを判断するには、証明書スナップインで証明書のプロパティを確認します。To determine whether a certificate is enabled for code signing, review the properties of the certificate in the Certificates snap-in.

  • 個人ストアに証明書を格納します。Store the certificate in the Personal store.

上記のタスクが完了したら、次の手順に従ってパッケージに署名できます。After you have completed the previous tasks, you can use the following procedure to sign a package.

パッケージに署名するにはTo sign a package

  1. SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)で、署名するパッケージが含まれている Integration ServicesIntegration Services プロジェクトを開きます。In SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package to be signed.

  2. ソリューション エクスプローラーで、パッケージをダブルクリックして開きます。In Solution Explorer, double-click the package to open it.

  3. SSISSSIS デザイナーで [SSIS] メニューの [デジタル署名] をクリックします。In SSISSSIS Designer, on the SSIS menu, click Digital Signing.

  4. [デジタル署名] ダイアログ ボックスで、 [署名] をクリックします。In the Digital Signing dialog box, click Sign.

  5. [証明書の選択] ダイアログ ボックスで、証明書を選択します。In the Select a Certificate dialog box, select a certificate.

  6. 必要に応じて、 [証明書の表示] をクリックして証明書の情報を表示します。(Optional) Click View Certificate to view certificate information.

  7. [OK] をクリックして、 [証明書の選択] ダイアログ ボックスを閉じます。Click OK to close the Select a Certificate dialog box.

  8. [OK] をクリックして、 [デジタル署名] ダイアログ ボックスを閉じます。Click OK to close the Digital Signing dialog box.

  9. 更新したパッケージを保存するには、 [ファイル] メニューの [選択されたファイルを上書き保存] をクリックします。To save the updated package, click Save Selected Items on the File menu.

    パッケージは署名されましたが、パッケージを読み込む前にデジタル署名を確認するように、 Integration ServicesIntegration Services を構成する必要があります。Although the package has been signed, you must now configure Integration ServicesIntegration Services to check or verify the digital signature before loading the package.

[デジタル署名] ダイアログ ボックスの UI リファレンスDigital Signing Dialog Box UI Reference

[デジタル署名] ダイアログ ボックスを使用すると、デジタル署名を使用してパッケージに署名したり、署名を削除したりできます。Use the Digital Signing dialog box to sign a package with a digital signature or to remove the signature. [デジタル署名] ダイアログ ボックスは、 [SSIS] メニューの [デジタル署名] SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)から使用できます。The Digital Signing dialog box is available from the Digital Signing option on the SSIS menu in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).

詳細については、「 デジタル証明書を使用してパッケージに署名する」を参照してください。For more information, see Sign a Package by Using a Digital Certificate.

オプションOptions

[署名]Sign
[証明書の選択] ダイアログ ボックスを開き、使用する証明書を選択します。Click to open the Select Certificate dialog box, and select the certificate to use.

[削除]Remove
デジタル署名を削除します。Click to remove the digital signature.

参照See also

Integration Services (SSIS) パッケージ Integration Services (SSIS) Packages
セキュリティの概要 (Integration Services)Security Overview (Integration Services)