

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

# 卖家在 License Manager 中颁发的许可证
<a name="seller-issued-licenses"></a>

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

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

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

License Manager 支持多种不同的许可模式，包括：
+ **永久模式** — 终身许可证，无到期日期，授权用户无限期地使用该软件。
+ **浮动模式** — 可与应用程序的多个实例共享许可证。许可证可以预付费，并向其中添加一组固定的权限。
+ **订阅模式** — 具有到期日期的许可证，除非明确停用，否则可以自动续订。
+ **基于使用情况模式** — 根据使用情况（如 API 请求数、事务数或存储能力）设定具体条款的许可证。

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

# 卖家在 License Manager 中颁发的许可证权利
<a name="entitlements"></a>

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

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

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

# 卖家在 License Manager 中颁发的许可证使用情况
<a name="license-usage"></a>

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

许可证可能处于以下几种状态之一：
+ **已创建** — 许可证已创建。
+ **已更新** — 许可证已更新。
+ **已停用** — 许可证已停用。
+ **已删除** — 许可证已删除。

# 在 License Manager 中跟踪卖家颁发的许可证使用情况所需的权限
<a name="seller-issued-license-requirements"></a>

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

------
#### [ JSON ]

****  

```
{ 
    "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 集成，以便没有 AWS 账户的客户可以使用在外部出售的许可证 AWS Marketplace，则必须创建一个 IAM 角色以使您的软件应用程序能够调用 License Manager API。

如果您使用 AWS 管理控制台 向没有临时凭证的客户分发临时证书 AWS 账户，License Manager 将自动`AWSLicenseManagerConsumptionRole`代表您创建临时证书。有关更多信息，请参阅 [为没有账户的 ISV 客户获取临时证书 AWS](granting-temporary-credentials.md)。要从中创建此角色 AWS CLI，请使用 AWS IAM [create-ro](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) le 命令，如以下示例所示。

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

提供的`trust-policy-document.json`文件应类似于以下示例，使用您自己的 AWS 账户 ID 替换为代币发行者账户。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "openid-license-manager.amazonaws.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "openid-license-manager.amazonaws.com:amr": "aws:license-manager:token-issuer-123456789012:123456789012"
                }
            }
        }
    ]
}
```

------

接下来，使用[attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)命令将**AWSLicenseManagerConsumptionPolicy** AWS 托管策略添加到**AWSLicenseManagerConsumptionRole**角色中。

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

# 在 License Manager 中创建卖家颁发的许可证
<a name="create-seller-issued-license"></a>

通过使用 AWS 管理控制台按以下步骤创建要向客户授予的许可证。或者，您可以使用 [CreateLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CreateLicense.html)API 操作创建许可证。

**使用控制台创建许可证**

1. 打开 License Manager 控制台，网址为[https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/)。

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

1. 选择**创建许可证**。

1. 对于**许可证元数据**，请提供以下信息：
   + **许可证名称** — 向买家显示的名称，最多 150 个字符。
   + **许可证描述** — 可选描述，用于将此许可证与其他许可证区分开来，最多 400 个字符。
   + **产品 SKU** — 产品 SKU。
   + **收件人** — 收件人的姓名（公司或个人）。
   + **主区域**-许可证 AWS 所在的区域。尽管可以在全球范围内使用许可证，但您只能在主区域更改许可证。创建许可证后，您无法更改许可证的主区域。
   + **许可证起始日期** — 激活日期。
   + **许可证结束日期** — 许可证的结束日期（如果适用）。

1. 对于**使用配置**，请提供以下信息：
   + **更新频率** — ​是否每周、每月更新，还是根本不更新。
   + **使用配置** — ​如果要将许可证用于持续连接，请选择**临时使用配置选项**。如果要离线使用许可证，请选择**借用**。输入**最大生存时间（分钟）**以设置许可证的可用时长。

1. 对于**颁发者**，请提供以下信息：
   + **输入 AWS KMS 密钥 — L** icense Manager 使用此密钥对颁发者进行签名和验证。有关更多信息，请参阅 [在 License Manager 中对许可证进行加密签名](license-signing.md)。
   + **颁发者名称** — 卖家的公司名称。
   + **登记卖家** — 可选的公司名称。
   + **协议 URL** — 许可协议的 URL。

1. 对于**权限**，请提供以下有关许可证向收件人授予的功能的信息：
   + **姓名** — 收件人的姓名。
   + **单位类型** — 选择单位类型，然后提供最大计数。
   + 如果收件人在更新之前必须签入许可证，请选中**允许签入**。
   + 如果收件人可以使用超过最大计数的资源，请选中**所允许的超额**。此选项可能会给收件人带来额外费用。

1. 选择**创建许可证**。

# Grant License Manager 卖家向 ISV 客户发放了许可证
<a name="isv-grant-licenses"></a>

添加新许可证后，您可以使用 AWS 管理控制台向拥有 AWS 账户的客户授予许可证。在使用许可证之前，收件人必须接受授予。有关更多信息，请参阅 [在 License Manager 中已授予的许可证](granted-licenses.md)。

或者，如果客户没有 AWS 帐户，则可以使用 License Manager API 让客户能够使用[许可证](license-consumption.md)。

**使用控制台向客户授予许可证**

1. 打开 License Manager 控制台，网址为[https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/)。

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

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

1. 对于**授予**，请选择**创建授予**。

1. 对于**授予详细信息**，请提供以下信息：
   + **授予名称** — 授予名称。这用于启用搜索功能。
   + **AWS 帐户 ID**-许可证接收者的 AWS 账号。
   + **许可证权限**
     + 如果收件人可以使用授予的权限，请选择**使用**。
     + **如果收件人可以将授予的权利分配给其他 AWS 账户，请选择 “分配”。**
     + 选择 “**允许本地生成令牌**”，以便在不使用身份或凭据的情况下对共享许可证进行 AWS 身份验证。
     + 选择**允许提交使用记录**，以允许许可证收件人提交使用类型的使用记录。
   + **主区域** — 许可证 AWS 区域 的。

1. 选择**创建授予**。

# 为没有账户的 ISV 客户获取临时证书 AWS
<a name="granting-temporary-credentials"></a>

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

**获取用于调用 License Manager API 的临时凭证**

1. 调用 [CreateToken](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CreateToken.html)API 操作以获取编码为 JWT 令牌的刷新令牌。

1. 调用 [GetAccessToken](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_GetAccessToken.html)API 操作，指定您在上一步`CreateToken`中收到的刷新令牌，以接收临时访问令牌。

1. 调用 [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API 操作，指定您在上一步`GetAccessToken`中收到的访问令牌以及您创建的**AWSLicenseManagerConsumptionRole**角色，以获取临时 AWS 证书。

**从 AWS License Manager 控制台创建令牌**

1. 在 Lic [ense Manager 控制台](https://console.aws.amazon.com/license-manager)中，导航到许可证详细信息页面，查看您要在没有 AWS 帐户的情况下使用的特定许可权利。

1. 选择**创建令牌**以生成临时访问令牌。
**注意**  
首次生成临时访问令牌时，系统会要求您创建一个服务角色，以便 License Manager 可以代表您访问服务。创建了以下服务角色：`AWSLicenseManagerConsumptionRole`。

1. 下载 `token.csv` 文件，或者在生成令牌字符串时将其复制。
**重要**  
这是您查看或下载该令牌的唯一机会。我们建议您下载令牌并将文件存储在安全位置。您可以随时创建新令牌，但不得超过[服务限制](https://console.aws.amazon.com/servicequotas/home/services/license-manager/quotas)。

# 在 License Manager 中查看卖家颁发的许可证
<a name="license-consumption"></a>

License Manager 允许多个用户同时使用单个许可证中具有有限功能的权限。调用 [CheckoutLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CheckoutLicense.html) API 操作。以下是参数描述。
+ **密钥指纹** — 可信许可证颁布者。

  示例：aws:123456789012:issuer:issuer-fingerprint
+ **产品 SKU** — 此许可证的产品标识符，由许可证颁发者在创建许可证时定义。多个商品 SKU 中可能存在相同的商品 SKU ISVs。因此，可信密钥指纹起着重要作用。

  示例：1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0daEXAMPLE
+ **权限** — 可签出的功能。如果您指定无限功能，则数量为零。示例：

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

  示例：user@domain.com
+ **节点 ID** — 用于将许可证节点锁定到应用程序的单个实例的标识符。

  示例：10.0.21.57

# 在 License Manager 中删除卖家颁发的许可证
<a name="delete-seller-issued-licenses"></a>

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

按以下步骤删除您使用 AWS 管理控制台创建的许可证。或者，您可以使用 [DeleteLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_DeleteLicense.html)API 操作删除许可证。

**使用控制台删除许可证**

1. 打开 License Manager 控制台，网址为[https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/)。

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

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

1. 选择**删除**。如果提示进行确认，输入 **delete**，并选择 **Delete**（删除）。