本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
卖家在 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 操作创建许可证。
使用控制台创建许可证
-
在 https://console.aws.amazon.com/license-manager/
处打开 License Manager 控制台。 -
从左侧菜单中选择卖家颁发的许可证。
-
选择创建许可证。
-
对于许可证元数据,请提供以下信息:
-
许可证名称 — 向买家显示的名称,最多 150 个字符。
-
许可证描述 — 可选描述,用于将此许可证与其他许可证区分开来,最多 400 个字符。
-
产品 SKU — 产品 SKU。
-
收件人 — 收件人的姓名(公司或个人)。
-
主区域 — 许可证所在的 Amazon 区域。尽管可以在全球范围内使用许可证,但您只能在主区域更改许可证。创建许可证后,您无法更改许可证的主区域。
-
许可证起始日期 — 激活日期。
-
许可证结束日期 — 许可证的结束日期(如果适用)。
-
-
对于使用配置,请提供以下信息:
-
更新频率 — 是否每周、每月更新,还是根本不更新。
-
使用配置 — 如果要将许可证用于持续连接,请选择临时使用配置选项。如果要离线使用许可证,请选择借用。输入最大生存时间(分钟)以设置许可证的可用时长。
-
-
对于颁发者,请提供以下信息:
-
输入 Amazon KMS 密钥 — License Manager 使用此密钥对颁发者进行签名和验证。有关更多信息,请参阅许可证的加密签名。
-
颁发者名称 — 卖家的公司名称。
-
登记卖家 — 可选的公司名称。
-
协议 URL — 许可协议的 URL。
-
-
对于权限,请提供以下有关许可证向收件人授予的功能的信息:
-
姓名 — 收件人的姓名。
-
单位类型 — 选择单位类型,然后提供最大计数。
-
如果收件人在更新之前必须签入许可证,请选中允许签入。
-
如果收件人可以使用超过最大计数的资源,请选中所允许的超额。此选项可能会给收件人带来额外费用。
-
-
选择创建许可证。
向客户授予许可证
添加新许可证后,您可以使用 Amazon Web Services Management Console向拥有 Amazon 账户的客户授予许可证。在使用许可证之前,收件人必须接受授权。有关更多信息,请参阅在 License Manager 中已授予的许可证。
或者,如果客户没有 Amazon 账户,则可以使用 License Manager API 让客户能够使用许可证。
使用控制台向客户授予许可证
-
在 https://console.aws.amazon.com/license-manager/
处打开 License Manager 控制台。 -
从左侧菜单中选择卖家颁发的许可证。
-
选择许可证 ID 以打开其详细信息页面。
-
对于授予,请选择创建授权。
-
对于授予详细信息,请提供以下信息:
-
授予名称 — 授予名称。这用于启用搜索功能。
-
Amazon 账户 ID — 许可证收件人的 Amazon 账号。
-
许可证权限
-
如果收件人可以使用授予的权限,请选择使用。
-
如果收件人可以将授予的权限分配给其他 Amazon 账户,请选择分配。
-
选择允许本地生成令牌,以便在不使用 Amazon 身份或凭证的情况下对共享许可证进行身份验证。
-
选择允许提交使用记录,以允许许可证收件人提交使用类型的使用记录。
-
-
主区域 — 许可证的 Amazon Web Services 区域。
-
-
选择创建授权。
为没有 Amazon 账户的客户获取临时凭证
对于没有 Amazon 账户的客户,您可以使用与拥有 Amazon 账户的客户相同的方式使用权限。按以下步骤为没有 Amazon 账户的客户获取临时 Amazon 凭证。API 调用必须在主区域进行。
获取用于调用 License Manager API 的临时凭证
-
调用 CreateToken API 操作以获取编码为 JWT 令牌的刷新令牌。
-
调用 GetAccessToken 操作,指定您在上一步中从
CreateToken
中收到的刷新令牌,以接收临时访问令牌。 -
调用 AssumeRoleWithWebIdentity API 操作,指定您在上一步中从
GetAccessToken
中收到的访问令牌以及您创建的 AWSLicenseManagerConsumptionRole 角色,以获取临时 Amazon 凭证。
从 Amazon License Manager 控制台创建令牌
-
在 License Manager 控制台
中,导航到许可证详细信息页面,查看您要在没有 Amazon 账户的情况下使用的特定许可证权限。 -
选择创建令牌以生成临时访问令牌。
注意
首次生成临时访问令牌时,系统会要求您创建一个服务角色,以便 License Manager 可以代表您访问服务。创建了以下服务角色:
AWSLicenseManagerConsumptionRole
。 -
下载
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 操作删除许可证。
使用控制台删除许可证
-
在 https://console.aws.amazon.com/license-manager/
处打开 License Manager 控制台。 -
从左侧菜单中选择卖家颁发的许可证。
-
选择许可证旁边的单选按钮,将其选中删除。
-
选择删除。如果提示进行确认,输入
delete
,并选择删除。