AWS Marketplace
针对 AWS Marketplace 提供商的用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 AWS PrivateLink 与 AWS Marketplace 结合使用

AWS Marketplace 支持 AWS PrivateLink,该技术允许您使用 Amazon 网络为客户提供访问 AWS Marketplace 中所销售产品的权限。本文档概述了使用 AWS PrivateLink 技术通过 Amazon Virtual Private Cloud (VPC) 终端节点配置和交付产品的过程。

在本文档中,我们假设您对多个 AWS 服务和 AWS Marketplace 环境有一定的了解。

介绍

作为 AWS Marketplace 供应商,您可以通过 Amazon VPC 终端节点为 AWS 客户提供对服务的访问。此方法通过使用 AWS PrivateLink 技术向客户提供通过 Amazon 网络访问服务的权限。如果您使用 AWS Marketplace 创建和交付此产品,您的客户将能够在 AWS Marketplace 中发现此服务。您的客户还将在用于创建 VPC 终端节点的可用服务列表中找到您的产品。

VPC 终端节点 是一个虚拟设备,它允许 AWS 客户在他们的 VPC 和另一个 AWS 服务之间创建一个私有连接,而不需要通过 Internet、NAT 设备、VPN 连接或 AWS Direct Connect 进行访问。您可以通过 AWS Marketplace 创建一个终端节点服务,使 AWS Marketplace 客户能够使用此技术连接到您的服务。此服务旨在让您的客户更加安全,因为客户通过 Amazon 专用网络而不是通过 Internet 来访问服务。

对于您希望在其中提供服务的每个区域,您要创建或使用现有资源来配置 VPC,设置服务实例和网络负载均衡器,并通过创建服务终端节点将服务注册到网络负载均衡器。在完成这些步骤并测试您的产品之后,您将向 AWS Marketplace 卖家运营 团队提供配置信息。

虽然这是可选的,但我们强烈建议您提供私有 DNS 名称,以便在客户创建 VPC 终端节点时使用。

当客户创建其 VPC 终端节点时,他们可以选择启用私有 DNS 名称。通过选择此选项,客户的 VPC 服务将配置一个私有托管区域。如果您提供了私有 DNS 名称,则客户在配置 VPC 终端节点以连接到您的服务时将使用该名称。在客户的私有托管区域中,私有 DNS 名称 (api.example.com) 将指向为终端节点服务创建的随机生成的 DNS 名称 (vpce-11111111111111111-yyyyyyyy.api.vpce.example.com)。客户可以获得的好处是,客户的 EC2 实例在不同的 VPC 上将调用同一个统一的 DNS 名称 (api.example.com)。此外,如果公有和私有 DNS 名称相同,AWS Marketplace 客户在从 VPC 内部或外部访问您的服务时可以使用相同的公有名称。

AWS Marketplace 卖家运营 团队将帮助您通过 AWS Marketplace 提供服务。当 AWS Marketplace 客户订阅您的服务并创建 VPC 终端节点时,您的服务将在 Your AWS Marketplace Services (您的 AWS Marketplace 服务) 中列出。MCO 团队使用用户友好型 DNS 名称,便于在创建 VPC 终端节点时发现您的服务。

您的产品作为软件即服务 (SaaS) 产品创建并在 AWS Marketplace 中列出。客户将通过 AWS Marketplace 网站发现您的产品。计量和计费方式将与其他 AWS Marketplace SaaS 产品相同。为了让客户能够访问您的服务和产品,您需要将他们的账户 ID 列入白名单。他们在 VPC 中创建 VPC 终端节点(配置为接口)以连接到您的服务。只有已订阅和加入白名单的客户在创建 VPC 终端节点时才能看到您的已上架产品。

配置产品

配置您的产品使其可通过 Amazon VPC 终端节点使用:

  1. 创建或使用现有 Amazon VPC

  2. 为您的产品创建(或使用现有的) Amazon EC2 实例。

  3. 在您将提供产品的每个区域中创建一个网络负载均衡器。我们建议您包括区域的所有可用区 (AZ)。

  4. 使用 Amazon VPC 控制台、CLI 或支持的开发工具包来创建 VPC 终端节点服务。

  5. 验证是否可以通过网络负载均衡器访问该服务。

  6. 从 AWS Certificate Manager 中请求证书以用于用户友好型 DNS 名称。AWS Certificate Manager (ACM) 在颁发证书之前,将验证您是否拥有或控制证书申请中提供的域名。

  7. 将用户友好型 DNS 名称的子域(如 api.vpce.example.com)委托给 MCO 团队提供的名称服务器。在您的 DNS 系统中,您必须创建一个名称服务器 (NS) 资源记录,将该子域指向 MCO 团队提供的 Route 53 名称服务器,以便可公开解析 DNS 名称(如 vpce-0ac6c347a78c90f8.api.vpce.example.com)。

  8. 将客户用来访问您的服务的 AWS 账户加入白名单。

    注意:您可以使用支持的开发工具包或以下 CLI 命令,自动将账户加入白名单:aws vpcev2 modify-vpc-endpoint-service-permissions --service-id vpce-svc-0123456789abcdef1 --add-allowed-principals arn:aws:iam::111111111111:root arn:aws:iam::222222222222:root。

将产品提交到 AWS Marketplace

在将服务发布到 AWS Marketplace 的过程中,您将与 AWS Marketplace 卖家运营 团队协作以验证设置是否正确以及客户是否有出色的体验。提交启用 PrivateLink 的产品:

  1. 通过电子邮件将以下信息发送给 <ulink url="https://aws.amazon.com/marketplace/management/contact-us/"><emphasis role="strong">&MKTlong; 卖家运营</emphasis></ulink> 团队:

    1. 来自第 2 部分步骤 4 的终端节点以及用于创建终端节点的 AWS 账户。该名称将类似于:com.amazonaws.vpce.us-east-1.vpce-svc-0daa010345a21646

    2. 您的服务的用户友好型 DNS 名称。(这是 AWS Marketplace 客户用来访问您的产品的 DNS 名称。)

    3. 您在第 2 部分步骤 6 中用于请求证书的 AWS 账户,以及 AWS Marketplace 客户用于访问 VPC 终端节点的私有 DNS 名称。

      AWS Marketplace MCO 团队将验证您公司的身份(公司名称)和用于注册的服务的 DNS 名称(如 api.vpce.example.com)。验证信息之后,DNS 名称将覆盖第 2 部分步骤 4 中分配的默认基础终端节点的 DNS 名称。

客户访问 VPC 终端节点

AWS Marketplace 客户在创建 VPC 终端节点时发现您的服务的方式与发现其他 AWS 服务的方式类似。除非满足以下条件,否则创建 VPC 终端节点的客户无法发现您的服务:

  • 按照第 3 部分描述的过程创建或使用现有产品。

  • 客户已订阅您的服务。

  • 您已将客户用于发现服务的账户列入白名单。

当客户创建其 VPC 终端节点时,他们可以选择将私有托管区域与其 VPC 相关联。托管区域包含服务默认私有 DNS 名称的记录集,用于解析到其 VPC 终端节点网络接口的私有 IP 地址。

客户托管的任何终端节点,包括 AWS Marketplace 服务,都可提供对所有账户的权限(“*”权限)。但是,当您使用此方法时,除非按服务名称进行搜索,否则服务将不会列在描述 调用或控制台中。要在描述 调用中显示服务,客户的账户必须由服务明确列入白名单。

若要访问您的服务,AWS Marketplace 客户需:

  1. 在 AWS Marketplace 上发现并订阅您的服务。

  2. 使用 AWS 命令行界面 (CLI)、API 或 Amazon VPC 控制台发现您的服务,然后建立 VPC 终端节点以连接到客户选择的子网和可用区中的服务。该终端节点将显示为子网中的弹性网络接口。将本地 IP 地址、区域以及区域 DNS 名称分配给终端节点。

客户端 DNS 名称 名称

区域性的

Vpce<0dc9a211a78c90f8>.api.vpce.example.com

IAD2 (1a )

us-east-1a-Vpce<0dc9a211a78c90f8>.api.vpce.example.com

IAD2 (1b )

us-east-1b-Vpce<0dc9a211a78c90f8>.api.vpce.example.com

如果提供了默认的私有 DNS 名称,并且客户在创建 VPC 终端节点时选择 Enable Private DNS Name (启用私有 DNS 名称)(与私有托管区域关联),则客户将会看到区域的默认私有 DNS 名称以连接到您的服务:

名称 别名 托管区域别名 ID (备注)
api.example.com vpce<0dc9a211a78c90f8>. api.vpce.example.com Z00AABBCCDD

IAD1

IAD2

附录:核对清单

使用以下核对清单确保您已完成产品的配置和测试,然后再将其提交给 MCO 团队。

产品创建核对清单

  • 创建(或使用现有的)VPC,然后对其进行配置。

  • 在 VPC 中创建并配置网络负载均衡器。

  • 通过创建 VPC 终端节点服务,将您的服务注册到网络负载均衡器。

  • 向 MCO 提供您用于配置 VPC 终端节点的 AWS 账户 ID。

  • 向 MCO 提供默认终端节点服务名称(例如,com.amazonaws.vpce.us-east-1.vpce-svc-0bbb070044a2164)。

  • 提供用户友好型服务 DNS 名称(必需)来覆盖随机生成的服务 DNS 名称。从 ACM 请求用于用户友好型服务 DNS 名称的子域的 SSL 证书。向 MCO 团队提供这些证书以及用于申请证书的 AWS 账户 ID。

  • 提供私有 DNS 名称。(建议但不强制)

  • 创建流程,通知并允许您的 AWS Marketplace 客户选择使用 AWS PrivateLink 技术连接到您的服务:

    • AWS Marketplace 客户的 AWS 账户 ID。

    • 将客户的 AWS 账户 ID 列入白名单(例如,账户:arn: aws: iam:: 123456789012: root)。

产品测试

  • 验证您的服务是否已配置并且可以访问。

  • 验证您的服务是否可通过网络负载均衡器访问。

  • 验证客户是否能够创建 VPC 终端节点和访问您的服务。(使用您拥有的账户,但不同于用来设置服务的账户。)