ECS镜像(二)ECS实例标识实践

简介: 实例标识 一、背景 随着云技术的普及,越来越多的用户大到企业客户,软件供应商,小到普通创业者逐步开始将自己的基础设施搬迁到云上,同时越来越多用户对云主机的“可信任性”提出了需求,比如以下场景: 场景一: 软件license安全问题 场景描述 比如某isv想在阿里云云市场上架其软件,区别于传...

实例标识

一、背景

随着云技术的普及,越来越多的用户大到企业客户,软件供应商,小到普通创业者逐步开始将自己的基础设施搬迁到云上,同时越来越多用户对云主机的“可信任性”提出了需求,比如以下场景:

场景一: 软件license安全问题

场景描述

比如某isv想在阿里云云市场上架其软件,区别于传统的软件license计费模式,一般云计算厂商的计费模式相对复杂,isv想通过一种与云资源比如ecs协同计费的方式进行收费,比如按照该软件在ecs上的运行时间进行计费,那么对应的计费方案可能是如果运行该软件的 虚拟机是阿里云的ecs那么该软件默认license校验通过,isv通过镜像市场镜像进行收费。

问题

  1. isv该如何验证其软件运行环境是阿里云ecs而不是其它云主机

场景二: 向虚拟机发送敏感数据

在虚拟机启动后,可能需要向虚拟机发送一些敏感数据,比如证书等,此时用户需要一种机制来验证虚拟机的身份

问题

  1. 如何让用户信任该虚拟机是阿里云ecs
  2. 如何表达每一台ecs的“身份”

以上场景需要云计算厂商为用户提供一种机制来验证虚拟机的身份 ,“实例标识” 应运而生,其通过数字签名的方式来保障数据信息的真实性,准确性,来源

二、了解实例标识

2.1 基本概念

需要理解的核心概念列表:

  1. 实例标识文档
  2. 实例标识签名
  3. 公有证书

image.png

综上,阿里云ECS实例标识通过实例身份+动态数字签名的方式来保证数据的真实性与准确性,从而为用户提供了一种验证数据来源可靠性的有效方式。

2.2 工作原理

工作原理图

image.png

上图简单表达了一个用户app通过阿里云ecs使用实例标识的流程:

  1. 用户在vm内部调用 100.100.100.200/latest/dynamic/instnace-identify/document获取实例标识文档
  2. 用户在vm内部调用 100.100.100.200/latest/dynamic/instnace-identify/pkcs7获取实例标识签名
  3. 用户从官方渠道比如官方帮助文档获取公开证书,保存为ecs.cer
  4. 用户通过实例标识文档来获取ecs相关的身份信息,可以通过身份信息进行第一步认证比如:私网ip,归属aliuid,mac等
  5. 通过openssl工具验证签名有效性
  6. smime -verify -in signature -inform PEM -content document -certfile ecs.cer -noverify > /dev/null

附上简单的验证脚本代码

#!/usr/bin/env bash
function verify_signature_without_audience(){
    curl 100.100.100.200/latest/dynamic/instance-identity/document > document
    echo "-----BEGIN CERTIFICATE-----" > signature
    curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7 >> signature
    echo "" >> signature
    echo "-----END CERTIFICATE-----" >> signature

    openssl smime -verify -in signature -inform PEM -content document -certfile ecs.cer -noverify > /dev/null
}
verify_signature_without_audience

需要在脚本运行目录提前将官网证书保存为ecs.cer

三、audience参数高阶用法

如上所述“实例标识” 提供了一种简单的ecs身份签名验证机制,为了提供更高的可扩展性来满足用户更高的安全需求,我们在签名计算上提供了一个可扩展参数audience,用户可以自定义audience来增强安全性,比如使用动态生成的md5值作为audience参数传入可以降低服务伪造的风险。

推荐用法

  • 使用方式:100.100.100.200/latest/dynamic/instance-identity/pkcs7?audience=xxx
  • audience参数最好是变化值且最好是通过不可逆加密算法生成的比如md5等加密算法

以下提供一个简单的随机数作为audience参数传入的demo

#!/usr/bin/env bash
function verify_signature_with_changeable_audience(){
    audience=$RANDOM
    document=$(curl 100.100.100.200/latest/dynamic/instance-identity/document)
    audience_json=',"audience":''"'${audience}'"}'

    echo -n ${document%?}${audience_json} > document
    echo "-----BEGIN CERTIFICATE-----" > signature
    curl 100.100.100.200/latest/dynamic/instance-identity/pkcs7?audience=${audience} >> signature
    echo "" >> signature
    echo "-----END CERTIFICATE-----" >> signature

    openssl smime -verify -in signature -inform PEM -content document -certfile cert.cer -noverify > /dev/null
}

verify_signature_with_changeable_audience

四、典型场景最佳实践

4.1 镜像市场镜像通过实例标识进行license控制

背景

isv在阿里云云市场上架其软件,以镜像市场收费镜像的方式进行计费,比如按量付费模式,isv通过实例标识识别虚拟机身份进行license控制。

方案

  1. 获取实例标识文档与签名,参考如上实现
  2. 验证实例标识文档正确性,验证私网ip,mac,instanceID等信息(可选)
  3. 通过openssl或者其它方式验证签名有效性(建议增加audience参数)
  4. 获取云市场镜像相关的metadata,根据付费类型(meta-data/image/market-place/charge-type )及商品code(meta-data/image/market-place/product-code )做license控制判断
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
存储 弹性计算 负载均衡
阿里云服务器地域、实例、带宽与操作系统等配置选择指南参考
在数字化时代,无论是个人博客、企业官网、APP后端支持,还是小程序运行或者其他项目,云服务器都扮演着至关重要的角色,考虑产品质量、服务和价格等因素,大家现在都喜欢选择阿里云服务器。然而,对于初次接触云服务的新手来说,可能并不是很清楚应该如何选阿里云服务器的地域、实例、带宽与操作系统等配置。本文将从地域选择、实例规格、操作系统、云盘配置、购买时长以及带宽选择等六个方面,为新手用户提供详细的选购指南,以供参考。
阿里云服务器地域、实例、带宽与操作系统等配置选择指南参考
|
3天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
5天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
6天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
9天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
10天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
13天前
|
弹性计算 缓存 前端开发
阿里云服务器ECS u1、c7、e实例、c8i实例有什么区别?性能有差异吗?
阿里云ECS提供多样化的实例规格,满足不同需求。经济型e实例为共享资源,适合轻负载应用;通用算力型u1与计算型c7/c8i为独享资源,后者性能更优。c7与c8i均具1:2的CPU内存比,但c8i作为第八代服务器,性能超越c7。价格方面,2核4G的u1实例企业用户专享价199元/年,性价比突出。选择时,轻负载可选e实例,中等负载选u1,高性能需求则推荐c7或c8i实例。更多详情参见阿里云官方页面。
|
13天前
|
弹性计算 缓存 安全
阿里云服务器ECS实例2核4G有哪些?性能如何?
阿里云2核4G配置的云服务器提供多样化的ECS实例规格,如突发性能t6、经济型e、计算型c7/c6/c8i/c8a等,不同规格性能各异,参考价格从68元/月至203元/月不等。其中,经济型e和通用算力型u1实例为主推产品。2核4G配置理论上支持约20人同时在线访问,实际并发数受应用架构、带宽、用户行为等多种因素影响。详情参见阿里云官方页面。
|
13天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
1天前
|
数据采集 弹性计算 供应链
阿里云服务器付费模式:按量付费、包年包月和抢占式实例全解析
阿里云服务器提供包年包月、按量付费与抢占式实例三种付费模式。包年包月为预付费,适合长期稳定使用,价格更优惠并支持备案。按量付费则为后付费模式,按小时结算,适合短期或访问量波动大的场景,但不支持备案。抢占式实例基于按量付费,价格更低(最多节省90%),适用于无状态应用,如临时测试或可弹性伸缩的Web服务,但存在被系统释放的风险,同样不支持备案。根据具体需求选择合适的付费模式能够有效降低成本并提高效率。
9 0

相关产品

  • 云服务器 ECS
  • 下一篇
    云函数