SSRS配置2:加密管理

在初始化Reporting Service时,SSRS会自动创建数据库[ReportServer],用于存储报表元数据,报表订阅,以及凭证(Credential)和连接信息等身份验证信息,身份验证数据非常重要,为了保护敏感数据,Reporting Service支持对称性密钥(Symmetric keys)加密算法。对称性密钥在报表服务器初始化时生成,用于保护敏感数据,而公有(Public)和私有(Private)密钥对是操作系统生成的,成对出现,每个报表服务器实例都有一对,用于保护对称性密钥。

报表服务器的加密管理,主要是对称性密钥的管理,打开Reporting Service配置管理器(Reporting Service Configuration Manager,简称RSCM),切换到Encryption Keys选项卡,能够看到对称性密钥管理的界面,主要是密钥的备份,还原,更新和删除。

很久之前,写过一篇不成熟的文章《SSRS配置1:凭证和邮件》,分享的内容是如何配置报表服务器的凭证和邮件,现在很少在项目中用到SSRS,为了和遗忘做抗争,遂有此续文。

一,报表服务器加密的流程

报表服务器首先通过System.Data.SqlClient 访问ReportServer数据库,以获取跟报表服务有关的数据,此时,报表服务器需要对连接到ReportServer数据库的信息进行加密;ReportServer数据库和对称性密钥是一一对应的,

在连接到ReportServer数据库之后,报表服务执行报表文件,报表文件需要访问外部数据源去获取业务数据,所谓外部数据源,是指除了ReportServer数据库之外的数据,此时,报表服务器需要连接到外部数据源,该连接信息是非常敏感的,必须加密;

然后,连接信息的加密需要使用对称性密钥,而这个密钥是非常重要的,必须保护对称性密钥,此时,报表服务器需要加密对称性密钥;

最后,为了避免密钥丢失,或密钥恢复,必须对密钥进行备份,报表服务器要求在读取密钥的备份文件时,必须输入密码才能访问。WOW,保护的太多了吧。

二,加密的数据

报表服务把加密之后数据存储到ReportServer数据库和配置文件中,大部分的加密数据是凭证和连接信息,用于访问报表服务器之外的数据。

1,连接到ReportServer数据库

每个报表服务器实例都需要访问ReportServer数据库,获取报表元数据,订阅等数据,报表服务器连接到ReportServer数据库需要连接信息和凭证,这些数据在报表服务的配置阶段加密存储。报表服务器把连接信息加密存储在配置文件 rsreportserver.config 中,配置文件存储的路径是固定的,例如,在SQL Server 2012版本中,配置文件存放在:

C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer

报表服务器使用5个配置选项来存储加密的连接数据:

<Dsn></Dsn>
<ConnectionType></ConnectionType>
<LogonUser></LogonUser>
<LogonDomain></LogonDomain>
<LogonCred></LogonCred>  

用户必须使用RSCM为这些配置信息创建加密数据,在RSCM中,通过点击“Change Credentials”按钮修改连接凭证,凭证类型共有三种:Service,Windows,SQL Server,最简单的凭证类型是Service,这是说,Service Account和连接ReportServer数据库的凭证是同一个Windows域账户。

2,报表服务器访问外部资源的凭证

报表服务器必须模拟凭证才能访问外部数据,外部数据大多数是为数据驱动(Data-Driven)式订阅提供报表数据,例如,在报表中需要访问其他数据源,以执行查询,连接外部数据源的连接信息是在创建报表时指定,例如,通过Report Builder创建报表,在报表文件中指定数据源的连接信息;在报表文件发布(Publish)到报表服务器之后,用户可以修改数据源的连接信息。当通过网络发送连接请求时,报表服务器将会模拟数据源指定的身份验证信息,去访问外部数据源,以执行查询语句,获取所需数据。

报表服务器把外部数据源的连接信息加密存储到ReportServer数据库,加密算法使用对称性密钥(Symmetric Key)实现。

3,对称性密钥

对称性密钥是在报表服务器配置期间生成的,报表服务器使用该密钥对ReportServer数据库中的数据进行加密和解密。为了安全,在管理上,有时需要修改Service Account的密码,由于对称性密钥跟Service Account有关系,在修改Service Acount时,需要注意密钥失效的问题。当通过Windows Services修改报表服务的Service Account时,对称性密钥会失效,进而影响数据的加密和解密。为了避免这个问题,请使用RSCM修改Service账户,这样,密钥会自动更新。

三,对称性密钥的保护

存储在ReportServer中的数据使用对称性密钥加密,而对称性密钥被Windows 操作系统使用另外一种加密算法保护起来:Windows操作系统持有Public密钥,用于对对称性密钥进行加密,报表服务器的Windows Service持有Private密钥,用于对对称性密钥进行解密,SSRS通过这种双重加密机制,保护用户的报表数据。

在对报表服务器进行横向扩展(Scale-Out)部署时,多台报表服务器实例使用相同的ReportServer数据库,一个对称性密钥用于多个报表服务器节点。为了加入到横向部署模式中,每个节点都必须创建一个对称性密钥的副本,并把该副本存储到共享的ReportServer数据库中。虽然一个对称性密钥被多个服务器节点使用,但是每个报表服务器的密钥都是不同的,这是因为,每台服务器持有的Public密钥是不同的。

四,对称性密钥的管理

1,密钥的备份和还原

备份对称性密钥,实际上是把密钥写入到你指定的文件中,并指定读取备份文件的密码。报表服务器强制要求用户必须输入密码才能把密钥备份到Disk文件中。用户最好把密钥备份文件存放到安全的地方,在使用备份文件时,必须输入密码才能解锁文件。

备份对称性密钥是为了以后的还原使用,在遇到以下事件发生时,用户需要还原对称性密钥:

  • 变更报表服务器的Service的用户名,或重置账户密码;
  • 重命名SQL Server实例的名称,报表服务器的实例名是基于SQL Server实例名;
  • 把报表服务器转移到其他SQL Server实例上,或使用不同的ReportServer数据库;
  • 还原报表服务器;

2,密钥的删除和重建

当不能还原对称性密钥时,报表服务器将不能解密和使用ReportServer数据库中存储的加密数据,为了尽快使报表服务器恢复到正常的工作状态,必须把已经加密的数据删除,然后重新创建新的对称性密钥,重新指定需要的数据(连接信息和凭证)。删除对称性密钥意味着,报表服务器必须删除存储在ReportServer数据库中跟报表服务器有关的对称性密钥信息,以及所有的加密数据,但是,未加密的数据不会被删除,完整保留下来,只有使用对称性密钥加密的数据(Content)才会被删除。当删除密钥时,报表服务器自动初始化,增加一个新的对称性密钥。

在删除对称性密钥时,报表服务器删除的数据主要是:

  • Connection strings in shared data sources are deleted.
  • Stored credentials are deleted.
  • Subscriptions are deactivated.

在删除对称性密钥之后,为了恢复报表数据,必须重新指定新的数据,使用新的密钥加密:

  • For each shared data source, you must retype the connection string.
  • For each report and shared data source that uses stored credentials, you must retype the user name and password, and then save.
  • For each data-driven subscription, open each subscription and retype the credentials to the subscription database.
  • For subscriptions that use encrypted data, open each subscription and retype credentials. Subscriptions that use Report Server e-mail delivery do not use encrypted data and are unaffected by the key change.

补充说明:执行账户(Execution Account)一般不需要配置,该账户用于没有凭证的连接,当需要连接远程物理机时,报表没有没有凭证可用,此时,报表服务器会使用执行账户访问数据源。

This account is used when a connection to a remote computer is required and no other credentials are available to make the connection. This account is primarily used to support unattended report processing for reports that do not use credentials to access a data source. If you create reports based on data sources that do not require or use credentials when accessing data, you must configure this account for the report server to use.

参考文档:

SSRS Encryption Keys - Manage Encryption Keys

时间: 2024-10-20 20:47:21

SSRS配置2:加密管理的相关文章

Bitlocker企业安全加密管理系列-1

对于企业来讲,设备值钱吗?值钱是肯定的,但有比设备更值钱的吗?当然那就是在设备上存储的数据了. 在当今社会,我们国家提倡大众创业,万众创新的大环境下,当我们在计算机上创新您的高科技产品或者设计时,您是否担心这些设计的窃取或者遗失呢?如何保障这些数据的安全呢?接下来在我的<Bitlocker企业安全加密管理系列>中,我将带大家重新认识一下变化一新的企业安全加密是如何为您的数据安全保驾护航的. 我们的系列会分为个人的安全机密和企业级安全机密这两个部分来分别给大家展开来讲. 那对于有些用户来讲一定不

ABP开发框架前后端开发系列---(12)配置模块的管理

一般来说,一个系统或多或少都会涉及到一些系统参数或者用户信息的配置,而ABP框架也提供了一套配置信息的管理模块,ABP框架的配置信息,必须提前定义好配置的各项内容,然后才能在系统中初始化或者通过接口查询来使用,本篇随笔引入了另外一种配置信息的定义,实现更加简化的处理,本篇随笔着重介绍两者之间的差异和不同的地方. 1.ABP框架的配置管理 如下面是邮件配置信息,配置信息一般先继承自SettingProvider,初始化定义后,才能被系统所使用. EmailSettingProvider:继承自Se

我用阿里云的虚拟云主机,也能配置https加密吗?

我用阿里云的虚拟云主机,也能配置https加密吗?答案是YES. 整个过程比想象中还要简单,都是一些基本的配置,虚拟主机 Web托管都可以很容易的搞定https. 首先我们要了解一下,阿里云是怎么支持https的?看了文档才发现,原来阿里云的https被当做CDN里的一个加速配置,其实这也好理解,CDN本来就是在源地址之上加了一层缓存,如果加的缓存是https,不就可以把网站改造成https吗. 接下来的问题就是,ssl证书哪里来?https怎么配置? 从阿里云产品搜索发现,阿里云提供了一种免费

Tomcat下配置虚拟路径管理web项目

关于虚拟路径.在学习javaweb的培训课程,今天老师给出了这样一个场景. 当我们的项目,在有一个项目不同的目录的时候,我们如何去使用tomcat去管理web项目. 老师提出的解决方案是 利用虚拟路径的方式,并且按照如下方式对tomcat进行配置.使得 tomcat可以管理不同目录上的项目. 我的问题:项目不是转换成war包发布到tomcat上吗,然后放在了webapps目录下面吗? 或者直接把项目放置webapps下面. 1.为什么有可能出现 管理不同目录下的web项目呢? 2.上面两种方式,

SSRS 2012 表达式 -- 颜色管理示例

SSRS 2012 表达式 -- 颜色管理示例 我们要将月销售量低于100笔的数据格,利用单元格底色以及字型的属性变更,以提醒查看报表者注意. 步骤1: 将要改变底色的单元格反白,并在右下角的属性窗口中选择BackgroundColor属性,并在下拉菜单中选择"Expression". 步骤2: 接着,在编辑表达式窗口上方方框内输入: =iif(Sum(Fields!SALES_QTY.Value)<100 and IsNothing(Sum(Fields!SALES_QTY.V

JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomcat的目录结构* bin目录:存放tomcat的启动和终止脚本 * startup.bat 启动脚本 * bootstrap.jar,启动脚本最终执行的java程序 * org.apache.catalina.startup.Bootstrap * shutdown.bat 终止脚本 * conf目录

【配置CDH和管理服务】关闭DataNode前HDFS的调优

配置CDH和管理服务 关闭DataNode前HDFS的调优 角色要求:配置员.集群管理员.完全管理员 当一个DataNode关闭,NameNode确保每一个DataNode中的每一个块根据复制系数(the replication factor)跨集群仍然是可用的.这个过程涉及到DataNode间小批次的块复制.在这种情况下,一个DataNode有成千上万个块,关闭后集群间还原备份数可能需要几个小时.关闭DataNode的主机之前,你应该首先调整HDFS: 1.提高DataNode的堆栈大小.Da

IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。)

在IIS中  依次执行如下操作: 网站--编辑权限--共享(为了方便可以直接将分享对象设置为everyone)--安全(直接勾选 everyone )--应用--确定. IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面.)

防火墙(ASA)的基本配置与远程管理

在目前大多数安全解决方案中,防火墙的实施是最为重要的需求,它是每个网络基础设施必要且不可分割的组成部分.这篇博客主要介绍防火墙安全算法的原理与基本配置以及远程管理防火墙的几种方式 硬件与软件防火墙 1.软件防火墙 软件防火墙单独使用软件系统来完成防火墙功能,将软件部署到系统主机上,其安全性较硬件防火墙差,同时占用系统资源,在一定程度上影响系统性能.其一般用于单机系统或个人计算机,极少用于计算机网络,如瑞星.天网.360等. 2.硬件防火墙 硬件防火墙比软件防火墙更有优势,原因有一下两个方面 *