一、 传统应用云上授权问题
当前云计算已经成为趋势,传统的应用厂商渐渐意识到提供新的应用交付模式的重要性,阿里云也在大力发展新的应用交付平台:阿里云云市场。
但是传统应用厂商在把应用迁移上云市场时,往往会遇到应用授权的问题:原先线下的应用程序的授权在云上变得不可用。
这主要是因为云计算的一些特性所导致的:
1)云上的服务器是虚拟服务器,这些虚拟服务器所运行的底层物理服务器会经常出现变化,从而没办法为那些基于物理信息进行授权的应用提供明确的硬件信息,从而导致原有授权机制失效
2)云计算的使用方式非常灵活:包括应用所运行的服务器的配置、使用时长等都可以非常灵活的进行变化,并且这些变化是不可预期的,从而为应用的权限控制带来非常大的困难,没有办法根据明确的配置/时间信息去生成License而进行授权
二、 临时方案
面对上述授权问题,部分应用厂商采取如下临时方案:
1) 在包年包月购买的场景下:手动的频繁的为应用程序申请license,并基于所申请的license进行手动激活
2) 为多个不同的硬件配置准备多个不同的license
3) 根据当前阿里云ECS的BIOS信息,判断是否是运行在阿里云中,并放开部分应用授权限制
但是,上述这些方案普遍存在:手动、繁琐、不安全等问题。
三、 使用阿里云实例标识解决云上应用授权问题
为解决云上应用授权问题,阿里云发布了实例标识功能。
实例标识为应用厂商提供一个安全可靠的标识方式,使应用软件可以明确当前的运行环境为“阿里云ECS”,从而为应用软件的授权提供安全可信的判断依据。
结合实例标识功能,应用厂商可定制“应用软件的云计算版”,该版本应用运行在阿里云ECS上时,不进行应用授权控制,只需依赖阿里云云市场所提供的计费能力进行计费售卖即可。
1.应用举例:
假设您是某安全厂商,您的安全软件的售卖是基于硬件配置及使用时长的。
您想让阿里云上的用户也能够方便的购买并使用到您的安全软件,那么您可以准备一个云计算版的安全软件,并把这个安全软件上架到阿里云的镜像市场,在云市场上配置软件的售价。
您的云计算版的安全软件应具有如下特点:
1)除License控制外,其余部分逻辑均保持不变
2)License控制:
a) 判断实例是否继承于您云市场上所发布的镜像
b) 使用实例标识功能判断您的软件是否运行于阿里云ECS
c) 如果上述2个判断均通过,则开放应用程序的License
这样您就可以在保留安全软件功能性能不变的情况下把它安全的搬上阿里云云市场上进行售卖,并能提供灵活、弹性的售卖模式。
2.适用场景:
阿里云实例标识,适应于下列场景:
a) 当您需要把应用软件迁上阿里云云市场时,您可以使用实例标识功能作为云上应用授权的判断依据
b) 当您需要在阿里云处理敏感信息时,您可使用实例标识对“当前的运行环境进行判断”,确保敏感信息被放置在正确的位置
3.实例标识步骤:
a)获取标识文档:
curl http://100.100.100.200/latest/dynamic/instance-identity/document
b)获取签名:
curl http://100.100.100.200/latest/dynamic/instance-identity/signature /pkcs7
c)从帮助文档中获取到阿里云颁发的公有证书
d)进行OPENSSL认证:
openssl smime -verify -in $signature -inform PEM -content $DOCUMENT -certfile AliyunPubkey -noverify > /dev/null
说明:在获取签名时您可以根据情况输入您的自定义参数,详情请参考 帮助文档
4. 关于实例标识的更多详情及示例标识脚本请参考帮助文档