Azure 托管缓存服务的安全模型
重要
Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪个 Azure 缓存产品/服务适合我?
托管缓存服务允许你通过要求客户端应用程序使用访问密钥对缓存进行身份验证来控制对缓存的访问。 托管缓存服务还提供在客户端应用程序与缓存之间保护通道通信的功能。 本主题概述了使用访问密钥控制访问以及确保与缓存的通信安全。
本部分内容
使用访问密钥控制访问
- 如何:执行滚动更新
确保缓存客户端和缓存之间的通信安全
使用访问密钥控制访问
为了确保只有所需的客户端应用程序才能访问你的缓存,要求所有客户端都提供缓存访问密钥。
使用管理门户创建缓存时,会预先配置两个访问密钥:主访问密钥和辅助访问密钥。 可以从缓存的“快速入门”选项卡或缓存“仪表板”中单击“管理密钥”对其进行检索。
这些访问密钥用于配置客户端应用程序。
注意
通常使用主访问密钥,当主访问密钥重新生成时,使用辅助访问密钥执行滚动更新。 以下部分介绍了此过程:如何:执行滚动更新。
要为你的客户端应用程序指定缓存的访问密钥,请打开该应用程序的 web.config 或 app.config 文件,然后在 securityProperties
部分找到 dataCacheClients
元素。
<!--<securityProperties mode="Message" sslEnabled="false">
<messageSecurity authorizationInfo="[Authentication Key]" />
</securityProperties>-->
取消此代码段并用主访问密钥更换 [身份验证密钥]。 如果身份验证密钥配置不正确,客户端就无法连接缓存。
注意
securityProperties
和 dataCacheClients
部分通过用于配置缓存客户端的缓存 NuGet 程序包添加。 有关详细信息,请参阅使用 Caching NuGet 包配置缓存客户端。
此外,还提供了辅助访问密钥,使你可以利用滚动更新来更新密钥,这样你的应用程序就不会因为密钥更改而停机。
如何:执行滚动更新
对于需要重新生成主访问密钥的情况,例如遵循企业策略,或是访问密钥已泄漏,你可以执行以下步骤。
更新缓存客户端应用程序的配置以使用辅助访问密钥。
在管理门户的“管理访问密钥”对话框中,为主访问密钥单击“重新生成”。
更新缓存客户端应用程序的配置以使用新生成的主访问密钥。
重新生成辅助访问密钥。
确保缓存客户端和缓存之间的通信安全
托管缓存服务使你能够保护客户端应用程序与缓存之间的通信。 为此,请在应用程序的 web.config 或 app.config 文件 sslEnabled = true
部分的 securityProperties
元素中,设置 dataCacheClients
。 这将确保客户端和缓存之间的所有通信都在 TLS 上发生。
<securityProperties mode="Message" sslEnabled="true">
<messageSecurity authorizationInfo="[Authentication Key]" />
</securityProperties>
默认情况下, sslEnabled
设置为 false,如果未 sslEnabled
指定属性,则使用的值为 false。
托管在同一 Azure 区域中的客户端和缓存之间的通信已经安全。 如果缓存托管在客户端应用程序所在的同一 Azure 区域中,建议将其设置为 sslEnabled
false。 由于使用 SSL 时存在一些开销,因此当缓存和缓存客户端位于同一区域中时设置为 sslEnabled
true 会不必要地降低缓存性能。
如果不能在同一 Azure 区域中同时拥有缓存和缓存客户端,则应用程序可以通过设置为 sslEnabled
true 来接收加密通信的好处。 请注意,为实现最佳性能(不只是与 sslEnabled
设置有关),请将缓存放在与缓存客户端应用程序相同的区域中。