卖家在 License Manager 中颁发的许可证 - Amazon License Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

卖家在 License Manager 中颁发的许可证

独立软件供应商 (ISV) 可以使用 Amazon License Manager 来管理和向最终用户分发软件许可证。作为颁发者,您可以使用 License Manager 控制面板集中跟踪卖家颁发的许可证的使用情况。

License Manager 使用开放、安全的行业标准来表示许可证,并允许客户以加密方式验证其真实性。License Manager 将每个许可证与一个非对称密钥相关联。作为 ISV,您拥有非对称 Amazon KMS 密钥并将其存储在您的账户中。

卖家颁发的许可证要求跨区域复制许可证元数据。License Manager 会自动将每个卖家颁发的许可证及其相关信息复制到其他区域。

License Manager 支持多种不同的许可模式,包括:

  • 永久模式 — 终身许可证无到期日期,授权用户无限期地使用该软件。

  • 浮动模式 — 可与应用程序的多个实例共享许可证。许可证可以预付费,并向其中添加一组固定的权限。

  • 订阅模式 — 具有到期日期的许可证,除非明确停用,否则可以自动续订。

  • 基于使用情况模式 — 根据使用情况(如 API 请求数、事务数或存储能力)设定具体条款的许可证。

您可以在 License Manager 中创建许可证,然后使用 Amazon IAM 身份或通过 License Manager 生成的持有者令牌将其分发给客户。拥有 Amazon 账户的客户可以将许可证权限重新分配给各自组织中的 Amazon 身份。拥有分布式权限的客户可以通过您的软件与 License Manager 集成,从该许可证中签出并签入所需的权限。

权限

License Manager 将许可证功能作为权限记录到许可证中。权限的特征是数量有限或不限数量。例如,“40GB 数据传输”就是有限权限的一个示例。“白金等级”就是无限量权限的一个示例。

许可证包含所有授予的权限、激活和到期日期以及颁发者的详细信息。许可证是一个受版本控制的实体,每个版本都是不可变的。每当许可证发生变化时,许可证版本都会更新。

要签出或签入有限权限,ISV 应用程序必须指定每项有限功能的数量。要获得无限权限,ISV 应用程序只需指定相关权限即可再次签入或签出。最后,有限功能还支持“超额”标志,该标志指示最终用户是否可以超出其初始权限的使用量。License Manager 会跟踪并向 ISV 报告使用情况以及任何超额情况。

许可证使用

License Manager 通过对所有已签出权限进行记录清点,可让您集中跟踪多个区域的许可证。License Manager 还会跟踪与每次签出相关的用户身份和底层资源标识符(如果有)以及签出时间。您可以通过 CloudWatch Events 事件跟踪此类时间序列数据。

许可证可能处于以下几种状态之一:

  • 已创建 — 许可证已创建。

  • 已更新 — 许可证已更新。

  • 已停用 — 许可证已停用。

  • 已删除 — 许可证已删除。

要求

要开始使用此功能,您需要具有调用以下 License Manager API 操作的权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "license-manager:CreateLicense", "license-manager:CreateLicenseVersion", "license-manager:ListLicenses", "license-manager:ListLicenseVersions", "license-manager:GetLicense", "license-manager:DeleteLicense", "license-manager:CheckoutLicense", "license-manager:CheckInLicense", "license-manager:ExtendLicenseConsumption", "license-manager:GetLicenseUsage", "license-manager:CreateGrant", "license-manager:CreateGrantVersion", "license-manager:DeleteGrant", "license-manager:GetGrant", "license-manager:ListDistributedGrants" ], "Resource": "*" } ] }

如果您要与 License Manager 集成,以便没有 Amazon 账户的客户可以使用在 Amazon Web Services Marketplace 之外销售的许可证,则必须创建一个角色,使软件应用程序能够调用 License Manager API。例如,您可以使用 Amazon CLI。首先,使用 create-role 命令创建一个名为 AWSLicenseManagerConsumptionRole 的角色。

aws iam create-role --role-name AWSLicenseManagerConsumptionRole --description "Role used to consume licenses using Amazon License Manager" --max-session-duration 3600 --assume-role-policy-document file://trust-policy-document.json

以下是 trust-policy-document.json 文件。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Federated": "openid-license-manager.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "openid-license-manager.amazonaws.com:sub": "66a9bbf5-0896-460f-a1a9-de535dcc175b" } } } }

接下来,使用 attach-role-policy 命令将 AWSLicenseManagerConsumptionPolicy Amazon 托管策略添加到 AWSLicenseManagerConsumptionRole 角色中。

aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/service-role/AWSLicenseManagerConsumptionPolicy --role-name AWSLicenseManagerConsumptionRole

创建卖家颁发的许可证

通过使用Amazon Web Services Management Console 按以下步骤创建要向客户授予的许可证。或者,您可以使用 CreateLicense API 操作创建许可证。

使用控制台创建许可证
  1. https://console.aws.amazon.com/license-manager/ 处打开 License Manager 控制台。

  2. 从左侧菜单中选择卖家颁发的许可证

  3. 选择创建许可证

  4. 对于许可证元数据,请提供以下信息:

    • 许可证名称 — 向买家显示的名称,最多 150 个字符。

    • 许可证描述 — 可选描述,用于将此许可证与其他许可证区分开来,最多 400 个字符。

    • 产品 SKU — 产品 SKU。

    • 收件人 — 收件人的姓名(公司或个人)。

    • 主区域 — 许可证所在的 Amazon 区域。尽管可以在全球范围内使用许可证,但您只能在主区域更改许可证。创建许可证后,您无法更改许可证的主区域。

    • 许可证起始日期 — 激活日期。

    • 许可证结束日期 — 许可证的结束日期(如果适用)。

  5. 对于使用配置,请提供以下信息:

    • 更新频率 — ​是否每周、每月更新,还是根本不更新。

    • 使用配置 — ​如果要将许可证用于持续连接,请选择临时使用配置选项。如果要离线使用许可证,请选择借用。输入最大生存时间(分钟)以设置许可证的可用时长。

  6. 对于颁发者,请提供以下信息:

    • 输入 Amazon KMS 密钥 — ​License Manager 使用此密钥对颁发者进行签名和验证。有关更多信息,请参阅许可证的加密签名

    • 颁发者名称 — 卖家的公司名称。

    • 登记卖家 — 可选的公司名称。

    • 协议 URL — 许可协议的 URL。

  7. 对于权限,请提供以下有关许可证向收件人授予的功能的信息:

    • 姓名 — 收件人的姓名。

    • 单位类型 — 选择单位类型,然后提供最大计数。

    • 如果收件人在更新之前必须签入许可证,请选中允许签入

    • 如果收件人可以使用超过最大计数的资源,请选中所允许的超额。此选项可能会给收件人带来额外费用。

  8. 选择创建许可证

向客户授予许可证

添加新许可证后,您可以使用 Amazon Web Services Management Console向拥有 Amazon 账户的客户授予许可证。在使用许可证之前,收件人必须接受授权。有关更多信息,请参阅在 License Manager 中已授予的许可证

或者,如果客户没有 Amazon 账户,则可以使用 License Manager API 让客户能够使用许可证

使用控制台向客户授予许可证
  1. https://console.aws.amazon.com/license-manager/ 处打开 License Manager 控制台。

  2. 从左侧菜单中选择卖家颁发的许可证

  3. 选择许可证 ID 以打开其详细信息页面。

  4. 对于授予,请选择创建授权

  5. 对于授予详细信息,请提供以下信息:

    • 授予名称 — 授予名称。这用于启用搜索功能。

    • Amazon 账户 ID — 许可证收件人的 Amazon 账号。

    • 许可证权限

      • 如果收件人可以使用授予的权限,请选择使用

      • 如果收件人可以将授予的权限分配给其他 Amazon 账户,请选择分配

      • 选择允许本地生成令牌,以便在不使用 Amazon 身份或凭证的情况下对共享许可证进行身份验证。

      • 选择允许提交使用记录,以允许许可证收件人提交使用类型的使用记录。

    • 主区域 — 许可证的 Amazon Web Services 区域。

  6. 选择创建授权

为没有 Amazon 账户的客户获取临时凭证

对于没有 Amazon 账户的客户,您可以使用与拥有 Amazon 账户的客户相同的方式使用权限。按以下步骤为没有 Amazon 账户的客户获取临时 Amazon 凭证。API 调用必须在主区域进行。

获取用于调用 License Manager API 的临时凭证
  1. 调用 CreateToken API 操作以获取编码为 JWT 令牌的刷新令牌。

  2. 调用 GetAccessToken 操作,指定您在上一步中从 CreateToken 中收到的刷新令牌,以接收临时访问令牌。

  3. 调用 AssumeRoleWithWebIdentity API 操作,指定您在上一步中从 GetAccessToken 中收到的访问令牌以及您创建的 AWSLicenseManagerConsumptionRole 角色,以获取临时 Amazon 凭证。

从 Amazon License Manager 控制台创建令牌
  1. License Manager 控制台中,导航到许可证详细信息页面,查看您要在没有 Amazon 账户的情况下使用的特定许可证权限。

  2. 选择创建令牌以生成临时访问令牌。

    注意

    首次生成临时访问令牌时,系统会要求您创建一个服务角色,以便 License Manager 可以代表您访问服务。创建了以下服务角色:AWSLicenseManagerConsumptionRole

  3. 下载 token.csv 文件,或者在生成令牌字符串时将其复制。

    重要

    这是您查看或下载该令牌的唯一机会。我们建议您下载令牌并将文件存储在安全位置。您可以随时创建新令牌,但不得超过服务限制

使用许可证

License Manager 允许多个用户同时使用单个许可证中具有有限功能的权限。调用 CheckoutLicense API 操作。以下是参数描述。

  • 密钥指纹 — 可信许可证颁布者。

    示例:aws:123456789012:issuer:issuer-fingerprint

  • 产品 SKU — 此许可证的产品标识符,由许可证颁发者在创建许可证时定义。同一产品 SKU 可能存在于多个 ISV 中。因此,可信密钥指纹起着重要作用。

    示例:1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0daEXAMPLE

  • 权限 — 可签出的功能。如果您指定无限功能,则数量为零。示例:

    "Entitlements": [ { "Name": "DataTransfer", "Unit": "Gigabytes", "Value": 10 }, { "Name": "DataStorage", "Unit": "Gigabytes", "Value": 5 } ]
  • 受益人 — 软件即服务 (SaaS) ISV 可以通过包含客户标识符来代表客户签出许可证。License Manager 限制对在 SaaS ISV 账户中创建的许可证存储库的调用。

    示例:user@domain.com

  • 节点 ID — 用于将许可证节点锁定到应用程序的单个实例的标识符。

    示例:10.0.21.57

删除卖家颁发的许可证

删除许可证后,您可以进行重新创建。许可证及其数据将保留六个月,供许可证颁发者和许可证被授予者以只读模式使用。

按以下步骤删除您使用 Amazon Web Services Management Console创建的许可证。或者,您可以使用 DeleteLicense API 操作删除许可证。

使用控制台删除许可证
  1. https://console.aws.amazon.com/license-manager/ 处打开 License Manager 控制台。

  2. 从左侧菜单中选择卖家颁发的许可证

  3. 选择许可证旁边的单选按钮,将其选中删除。

  4. 选择删除。如果提示进行确认,输入 delete,并选择删除