디지털 서명을 사용하여 패키지 원본 확인Identify the Source of Packages with Digital Signatures

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.

ValueValue 설명Description
00 관리 제한이 없습니다.No administrative restriction.
1.1 잘못된 서명을 차단합니다.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 Library에서 "코드 서명 소개(Introduction to Code Signing)" 항목을 참조하십시오.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을(를) 입력한 다음 확인을 클릭합니다.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. 확인을 클릭합니다.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. 루트 인증서를 추가하려면 MMC( MicrosoftMicrosoft Management Console)에 대한 인증서 스냅인을 사용할 수 있습니다.To add the root certificate, you can use the Certificates snap-in for the MicrosoftMicrosoft Management Console (MMC). 자세한 내용은 MSDN Library에서 "Certificate Services" 항목을 참조하십시오.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 Library에서 "인증서 작성 도구(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 Library에서 "Signing and Checking Code with 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. 확인 을 클릭하여 인증서 선택 대화 상자를 닫습니다.Click OK to close the Select a Certificate dialog box.

  8. 확인 을 클릭하여 디지털 서명 대화 상자를 닫습니다.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)