开发者社区> 问答> 正文

实例标识


实例标识作为 实例元数据 的一部分,可以帮助您快速辨识并区分 ECS 实例,为应用程序权限控制和软件激活等提供重要的信任基础。
实例标识的所有信息均实时生成,随取即用,并跟随实例信息而动态变化。签名机制采用 PKCS#7 格式加密,安全可靠,并支持自定义签名,防止签名被非法冒用。

应用场景


在以下场景中,您可以借助 实例标识(instance-identity)实现鉴权、授权或者判断运行环境等目的:


  • 传统的线下手动激活的软件授权是码单用,但由于云上软件的使用时间及场景多变,您可以在上架 云市场 应用软件时使用实例标识灵活地完成用户授权。更多详情,参阅下文 示例一. 不传入 audience 参数

  • 当您在 ECS 实例中写入敏感数据时,您可以使用实例标识确保当前所写入的位置是您的 ECS 实例而不是其他环境。

  • 其他需要确认目标服务器来源的场景。


功能详情


实例标识由动态生成的 实例标识文档( document)和 实例标识签名( signature)组成,随取即用。

  • 实例标识文档:描述实例的各种信息。主要包括下列相关信息。
    [tr=rgb(51, 205, 229)][td]属性
描述能否变更account-id实例所属用户账号 ID否create-time实例创建时间否instance-id实例 ID否mac实例主网卡 MAC 地址否region-id实例所属的地域 ID否serial-number实例的序列号否zone-id实例所属可用区 ID否instance-type实例规格实例变更实例规格后会发生变化image-id实例使用的镜像 ID实例更换系统盘后会发生变化private-ip实例的私网 IP 地址VPC 类型实例修改私网 IP 地址后会发生变化

  • 实例标识签名:采用 PKCS#7 格式产生的实例标识签名,纯数字化,安全可靠。
    支持在标识签名中传入自定义 audience 参数,以增加实例标识的安全性。传入 audience 参数后,即使他人获取了标识文档和标识签名的部分信息,也很大概率无法猜测您的 audience 参数取值,进而防止签名被非法冒用。自定义的 audience 参数取值可以是随机字符串、时间戳、规律性变化的信息或者根据您的算法所生成的数据。

  • 一旦传入 audience 参数,您需要同时设置标识文档及标识签名。例如,当您获取标识签名时传入了 audience参数,则需要在 OpenSSL 校验之前,手动把 audience 参数的信息加入实时生成的标识文档末尾处,格式为 "audience":"audience参数取值",参数之间使用半角逗号(,)连接。


  • 使用方法


    使用实例标识会使用到 OpenSSL,如果您没有配置 OpenSSL 服务,Windows 实例请参阅 ECS Windows环境中安装OpenSSL的步骤,Linux 实例请前往 https://www.openssl.org/source 下载并安装 OpenSSL 服务。
    此处以 CentOS 7.4 为例,示范如何使用实例标识。
    1. 远程连接 Linux 实例。
    2. 运行 curl http://100.100.100.200/latest/dynamic/instance-identity/document 获取实例标识文档。
    3. 运行 curl http://100.100.100.200/latest/dynamic/instance-identity/pkcs7 或者 curl http://100.100.100.200/latest/dynamic/instance-identity/pkcs7?audience=XXXX 获取实例标识签名。
      [/url][/td][td]说明[/td][/tr][tr=transparent][td]
      • $signature 处填入您获取的 [url=https://help.aliyun.com/document_detail/67254.html?spm=a2c4g.11186623.6.666.970918840ObAtK#concept_xk4_dl4_xdb__Signature]标识签名。
      • $DOCUMENT 处填入您获取的 标识文档
        (可选)如果您在 第三步 传入了 audience 参数,您需要手动将信息附加到实例标识文档末尾处,格式为 "audience":"audience参数取值",参数之间使用半角逗号(,)连接。
      • AliyunPubkey 处填入阿里云 公有证书
    [/td][/tr][/table]
    以下为阿里云的公有证书。-----BEGIN CERTIFICATE-----MIIDdzCCAl+gAwIBAgIEZmbRhzANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQDEwdVbmtub3duMB4XDTE4MDIyMzAxMjkzOFoXDTM4MDIxODAxMjkzOFowbDEQMA4GA1UEBhMHVW5rbm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjEQMA4GA1UEChMHVW5rbm93bjEQMA4GA1UECxMHVW5rbm93bjEQMA4GA1UEAxMHVW5rbm93bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIJwy5sbZDiNyX4mvdP32pqMYMK4k7+ 5lRnVR2Fky/ 5uwyGSPbddNXaXzwEm+u4wIsJiaAN3OZgJpYIoCGik+ 9lG 5gVAIr0+/ 3rZ61IbeVE+vDenDd8g/m/YIdYBfC2IbzgS9EVGAf/gJdtDODXrDfQjFk2rQsvpftVOUs3Vpl9O+jeCQLoRbZYm0c5v7jP/L2lK0MjhiywPF2kpDeisMtnD/ArkSPIlg1qVYm3F19v3pa6ZioM2hnwXg5DibYlgVvsIBGhvYqdQ1KosNVcVGGQaHCUuVGdS7vHJYp3byH0vQYYygzxUJT2TqvK7pD57eYMN5drc7e19oyRQvbPQ3kkCAwEAAaMhMB8wHQYDVR0OBBYEFAwwrnHlRgFvPGo+UD5zS1xAkC91MA0GCSqGSIb3DQEBCwUAA4IBAQBBLhDRgezd/OOppuYEVNB9+XiJ9dNmcuHUhjNTnjiKQWVk/YDAv+T2V3t9yl8L8o61tRIVKQ++lDhjlVmur/mbBN25/UNRpJllfpUH6oOaqvQAze4anRgyTnBwVBZkdJ0d1sivL9NZ4pKelJF3Ylw6rp0YMqV+cwkt/vRtzRJ31ZEeBhs7vKh7F6BiGCHL5ZAwEUYe8O3akQwjgrMUcfuiFs4/sAeDMnmgN6Uq8DFEBXDpAxVNsV/ 6Hockdfinx85RV2AUwJGfClcVcu4hMhOvKROpcH27xu9bBIeMuY0vvzP2VyOmDoJeqU7qZjyCaUBkPimsz/ 1eRod6d4P5qxTj-----END CERTIFICATE-----

    示例一. 不传入 audience 参数


    以在云市场上架一份镜像为例,示范如何从应用软件卖家角度使用实例标识。
    1. 进入 ECS 实例环境。
    2. 确认当前 ECS 实例使用的镜像是否来自于 镜像市场。具体可以通过 Metadata 中的 product-code 项(镜像市场镜像的商品码)和 charge-type 项(镜像市场镜像的计费方式)。更多详情,请参阅 实例元数据。curl http://100.100.100.200/latest/meta-data/image/market-place/product-codecurl http://100.100.100.200/latest/meta-data/image/market-place/charge-type
    3. 在当前工作目录下创建临时文件 cert.cer,并保存阿里云 公有证书 到该文件中。
    4. 辨别实例身份。示例脚本如下:

    展开
    收起
    chenchuan 2018-08-31 22:42:48 1969 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载