Integration Services 패키지의 데이터를 보호하려면 중요한 데이터 또는 패키지의 모든 데이터를 보호하는 데 도움이 되는 보호 수준을 설정할 수 있습니다. 또한 암호 또는 사용자 키로 이 데이터를 암호화하거나 데이터베이스를 사용하여 데이터를 암호화할 수 있습니다. 또한 패키지에 사용하는 보호 수준이 반드시 정적인 것은 아니지만 패키지의 수명 주기 동안 변경됩니다. 개발 중에는 보호 수준을 설정하고 패키지를 배포하는 즉시 다른 보호 수준을 설정하는 경우가 많습니다.
비고
이 항목에 설명된 보호 수준 외에도 고정 데이터베이스 수준 역할을 사용하여 Integration Services 서버에 저장된 패키지를 보호할 수 있습니다.
중요한 정보의 정의
Integration Services 패키지에서 다음 정보는 중요한 정보로 정의됩니다.
연결 문자열 암호 부분입니다. 그러나 전체 암호화 옵션을 선택할 경우 연결 문자열 전체가 중요한 정보로 간주됩니다.
중요한 정보라는 태그가 지정된 태스크 생성 XML 노드. XML 노드의 태그 지정은 Integration Services에서 제어되며 사용자가 변경할 수 없습니다.
중요한 것으로 표시된 모든 변수입니다. 변수 표시는 Integration Services에서 제어됩니다.
특정 속성이 Integration Services에서 중요한 속성으로 간주되는지 여부는 연결 관리자나 태스크와 같은 구성 요소의 개발자가 속성을 중요한 것으로 지정했는지 여부에 따라 달라집니다. 사용자는 중요한 것으로 간주되는 속성 목록에서 속성을 추가하거나 제거할 수 없습니다.
암호화
패키지 보호 수준에서 사용되는 암호화는 CryptoAPI(Cryptography API)의 일부인 Microsoft DPAPI(Data Protection API)를 사용하여 수행됩니다.
암호를 사용하여 패키지를 암호화하는 패키지 보호 수준에는 암호도 제공해야 합니다. 암호를 사용하지 않는 수준에서 암호로 보호 수준을 변경하는 경우 암호를 입력하라는 메시지가 표시됩니다.
또한 암호를 사용하는 보호 수준의 경우 Integration Services는 .NET Framework 클래스 라이브러리(FCL)에서 사용할 수 있는 키 길이가 192비트인 Triple DES 암호 알고리즘을 사용합니다.
보호 수준
다음 표에서는 Integration Services가 제공하는 보호 수준에 대해 설명합니다. 괄호 안의 값은 DTSProtectionLevel 열거형의 값입니다. 이러한 값은 SSDT(SQL Server Data Tools)에서 패키지를 사용할 때 패키지의 속성을 구성하는 데 사용하는 속성 창 표시됩니다.
| 보호 수준 | 설명 |
|---|---|
중요도 저장 안 함(DontSaveSensitive) |
패키지를 저장할 때 중요한 속성의 값을 패키지에서 제외합니다. 이 보호 수준은 암호화되지 않지만, 대신 중요한 것으로 표시된 속성이 패키지와 함께 저장되지 않도록 하므로 중요한 데이터를 다른 사용자가 사용할 수 없게 만듭니다. 다른 사용자가 패키지를 열면 중요한 정보가 공백으로 대체되고 사용자가 중요한 정보를 제공해야 합니다. utility (dtutil.exe) 유틸리티에서 사용할 경우 이 보호 수준은 값 0에 해당합니다. |
암호로 모두 암호화(EncryptAllWithPassword) |
암호를 사용하여 전체 패키지를 암호화합니다. 패키지는 패키지를 만들거나 내보낼 때 사용자가 제공하는 암호를 사용하여 암호화됩니다. SSIS 디자이너에서 패키지를 열거나 dtexec 명령 프롬프트 유틸리티를 사용하여 패키지를 실행하려면 사용자가 패키지 암호를 제공해야 합니다. 암호를 입력하지 않으면 패키지를 실행할 수 없습니다. dtutil 유틸리티에서 사용할 경우 이 보호 수준은 값 3에 해당합니다. |
사용자 키를 사용하여 모두 암호화(EncryptAllWithUserKey) |
현재 사용자 프로필을 기반으로 하는 키를 사용하여 패키지에서 중요한 속성의 값만 암호화합니다. SSIS 디자이너에서 패키지를 열거나 dtexec 명령 프롬프트 유틸리티를 사용하여 패키지를 실행하려면 사용자가 패키지 암호를 제공해야 합니다. dtutil 유틸리티에서 사용할 경우 이 보호 수준은 값 4에 해당합니다. 참고: 사용자 키를 사용하는 보호 수준의 경우 Integration Services는 DPAPI 표준을 사용합니다. DPAPI에 대 한 자세한 내용은 https://msdn.microsoft.com/library, MSDN Library를 참조 합니다. |
비밀번호로 민감한 정보를 암호화하기(EncryptSensitiveWithPassword) |
암호를 사용하여 패키지에서 중요한 속성의 값만 암호화합니다. 이 암호화에는 DPAPI가 사용됩니다. 중요한 데이터는 패키지의 일부로 저장되지만 해당 데이터는 패키지를 만들거나 내보낼 때 현재 사용자가 제공하는 암호를 사용하여 암호화됩니다. SSIS 디자이너에서 패키지를 열려면 사용자가 패키지 암호를 제공해야 합니다. 임호를 입력하지 않으면 패키지의 중요한 정보가 제외되며 현재 사용자가 중요한 정보에 새 값을 입력해야 합니다. 사용자가 암호를 제공하지 않고 패키지를 실행하려고 하면 패키지 실행이 실패합니다. 암호 및 명령줄 실행에 대한 자세한 내용은 dtexec Utility를 참조하십시오. dtutil 유틸리티에서 사용할 경우 이 보호 수준은 값 2에 해당합니다. |
사용자 키를 사용하여 중요한 암호화(EncryptSensitiveWithUserKey) |
현재 사용자 프로필을 기반으로 하는 키를 사용하여 패키지에서 중요한 속성의 값만 암호화합니다. 동일한 프로필을 사용하는 동일한 사용자만 패키지를 로드할 수 있습니다. 다른 사용자가 패키지를 열면 중요한 정보가 공백으로 대체되고 현재 사용자가 중요한 데이터에 대한 새 값을 제공해야 합니다. 사용자가 패키지를 실행하려고 하면 패키지 실행이 실패합니다. 이 암호화에는 DPAPI가 사용됩니다. dtutil 유틸리티에서 사용할 경우 이 보호 수준은 값 1에 해당합니다. 참고: 사용자 키를 사용하는 보호 수준의 경우 Integration Services는 DPAPI 표준을 사용합니다. DPAPI에 대 한 자세한 내용은 https://msdn.microsoft.com/library, MSDN Library를 참조 합니다. |
암호화를 위해 서버 스토리지 사용(ServerStorage) |
SQL Server 데이터베이스 역할을 사용하여 전체 패키지를 보호합니다. 이 옵션은 패키지가 SQL Server msdb 데이터베이스에 저장될 때 지원됩니다. 또한 SSISDB 카탈로그는 보호 수준을 사용합니다 ServerStorage .패키지가 SSDT(SQL Server Data Tools)에서 파일 시스템에 저장되는 경우 이 옵션은 지원되지 않습니다. |
SSISDB 카탈로그 및 보호 수준 설정
SSISDB 카탈로그는 보호 수준을 사용합니다 ServerStorage . Integration Services 프로젝트를 통합 서비스 서버에 배포하는 경우 카탈로그에서 패키지 데이터와 중요한 값을 자동으로 암호화합니다. 또한 카탈로그는 데이터를 검색할 때 자동으로 암호를 해독합니다.
Integration Services 서버에서 파일 시스템으로 프로젝트(.ispac 파일)를 내보내는 경우 시스템은 보호 수준을 자동으로 변경합니다 EncryptSensitiveWithUserKey. SSDT(SQL Server Data Tools)에서 Integration Services 프로젝트 가져오기 마법사를 사용하여 프로젝트를 가져오는 경우 속성 창의 EncryptSensitiveWithUserKeyProtectionLevel 속성에 값이 표시됩니다.
패키지 수명 주기에 따른 보호 수준 설정
SSDT(SQL Server Data Tools)에서 처음 개발할 때 SQL Server Integration Services 패키지의 보호 수준을 설정합니다. 나중에 패키지가 SQL Server Management Studio의 Integration Services에서 배포, 가져오기 또는 내보내거나 SSDT(SQL Server Data Tools)에서 SQL Server, SSIS 패키지 저장소 또는 파일 시스템으로 복사되는 경우 패키지 보호 수준을 업데이트할 수 있습니다. 예를 들어 사용자 키 보호 수준 옵션 중 하나를 사용하여 사용자 컴퓨터에 패키지를 만들고 저장한 경우 해당 패키지를 다른 사용자에게 전달하기 전에 보호 수준을 변경해야 합니다. 그렇지 않으면 패키지를 열 수 없습니다.
일반적으로 다음 단계에 나열된 대로 보호 수준을 변경합니다.
개발하는 동안 패키지의 보호 수준을 기본값
EncryptSensitiveWithUserKey으로 설정합니다. 이 설정을 사용하면 개발자만 패키지에서 중요한 값을 볼 수 있습니다. 또는EncryptAllWithUserKey를 사용하거나DontSaveSensitive를 고려할 수 있습니다.패키지를 배포할 때는 보호 수준을 개발자의 사용자 키가 필요 없는 보호 수준으로 변경해야 합니다. 따라서 일반적으로 선택
EncryptSensitiveWithPassword해야 합니다. 또는EncryptAllWithPassword. 프로덕션 환경의 운영 팀도 알고 있는 임시 강력한 암호를 할당하여 패키지를 암호화합니다.프로덕션 환경에 패키지가 배포된 후에는 운영 팀이 자신들만 알고 있는 강력한 암호를 할당하여 배포된 패키지를 다시 암호화할 수 있습니다. 또는 패키지를 실행할 계정의 로컬 자격 증명을
EncryptSensitiveWithUserKey선택하거나EncryptAllWithUserKey사용하여 배포된 패키지를 암호화할 수 있습니다.
관련 작업
또한 참조하십시오
패키지 가져오기 및 내보내기(SSIS 서비스)
Integration Services(SSIS) 패키지
보안 개요(Integration Services)