View a markdown version of this page

设置和身份验证 - AWS 合作伙伴中心

AWS 合作伙伴中心 API 参考已重新构建。有关支持的 API 操作的更多信息,请参阅 AWS 合作伙伴中心 API 参考

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

设置和身份验证

使用AWS合作伙伴中心 API 进行设置和身份验证包括三个步骤。以下是该过程的概述:

  1. 将您的AWS Marketplace卖家账户关联至合作伙伴中心。

  2. 使用 IAM 设置权限。

  3. 使用签名版本 4 (Sigv4) 对您的 API 调用进行身份验证。

链接你的AWS 账户前往合作伙伴中心

将您链接AWS 账户到合作伙伴中心是使用 API 的先决条件。有关更多信息,请参阅将AWS合作伙伴平台账户与AWS Marketplace卖家账户关联起来。您必须使用具有联盟领导权限或云管理员权限的账户登录合作伙伴中心,导航至该Account Linking部分,然后按照提示进行操作。

设置 IAM

要使用AWS合作伙伴中心 API,您需要一个AWS Identity and Access Management(IAM) 角色或 IAM 用户才能开始拨打电话。有关更多信息,请参阅何时使用 IAM? 。请按照AWS 账户指南中创建 IAM 角色创建 IAM 用户的步骤进行操作。您必须在您的合作伙伴 Central-linked AWS Marketplace卖家账户 Role/User 中创建此 IAM。 role/user 创建 IAM 不会产生任何费用。

  1. 创建 IAM Role/User

    登录AWS Management Console,导航到 IAM 服务,然后按照步骤创建 IAM 角色或 IAM 用户。

  2. 分配策略:

    根据需要附加托管策略或创建自定义策略。要修改或扩展权限,请对 IAM 角色应用其他策略,而不是复制来自的内容并将其AWSPartnerCentralOpportunityManagement与其他权限合并。避免复制托管策略,因为这样做会使您无法在新功能发布时自动获得访问权限,并且将来您必须手动更新策略。有关访问策略的更多详细信息,请参阅访问控制文档

管理AWS Marketplace优惠

要管理AWS Marketplace优惠并将其与机会关联起来,合作伙伴必须授予 IAM 角色访问目录 API 的权限。确保 role/user 具有权限,例如aws-marketplace:ListEntitiesaws-marketplace:SearchAgreements

对 API 调用进行身份验证

AWS合作伙伴中心 API 使用签名版本 4 (Sigv4) 进行身份验证。以下是实现它的方法:

使用AWS SDK

AWS SDK 会自动处理请求签名。提供您的AWS凭证,剩下的就交给 SDK。

  1. 对于 Java,请参阅为适用于 Java 的AWS SDK 提供临时证书

  2. 对于 Python (Boto3),请参阅凭证。

  3. 对于 JavaScript (Node.js),请参阅中的设置凭据 Node.js

  4. 有关.NET 的信息,请参阅凭据和配置文件解析

  5. 有关其他编程语言和更多示例,请参阅构建工具AWS

不使用进行身份验证AWS SDK

如果您选择的编程语言没有可用的AWS SDK,则身份验证包括手动创建规范请求、对请求进行签名和处理会话令牌。AWS为使用 SigV4 签名提供了全面的指导。但是,请注意,建议使用AWS软件开发工具包,因为手动请求签名会增加复杂性,并且需要仔细管理安全令牌。

每个对 awsjson1_0 协议的请求都必须使用以下标头使用 HTTP “POST” 方法发送到根 URL (/)。

必需的标头

每个 AWSJson1_0 协议的 API 请求都必须使用以下标头使用 HTTP “POST” 方法发送到根网址 (/)。

标题 必需 说明
Content-Type true 此标头的静态值为application/x-amz-json-1.0
Content-Length true RFC 9110 #section -8.6 定义的标准 Content-Length 标头。
X-Amz-Target 对于请求则为真 例如,服务操作CreatePartner的值PartnerCentralAccountPartnerCentralAccount.CreatePartner

使用自定义用户代理对通话进行签名

在向 P AWS artner Central 提出 API 请求时,我们建议添加X-Amzn-User-Agent标题以帮助AWS识别客户端应用程序的来源、监控使用情况和审计绩效。AWS使用此标头来区分发出调用的客户端应用程序的类型,并收集有关不同客户端实现成功率的见解。

自定义用户代理标头

标题名称:X-Amzn-User-Agent

目的:区分发出 API 请求的客户端类型,对交互来源进行分类。

Format: {Integrator}|{Product}

示例值:AWS|AWS Partner CRM Connector

在每个请求中都包含此标头可以AWS分析请求模式、跟踪集成并改善不同客户端系统的 API 体验。

在 SDK 中使用自定义标头

要在 SDK 调用中包含X-Amzn-User-Agent标头,您可以在调用 API 之前修改客户端请求行为。以下是使用适用于 Python 的AWS SDK (Boto3) 的销售 API 示例:

import boto3 # Define service and endpoint details service_name = "partnercentral-selling" endpoint_url = "https://partnercentral-selling.us-east-1.api.aws" # Create a boto3 client for Partner Central partner_central_client = boto3.client( service_name=service_name, ='us-east-1', endpoint_url=endpoint_url ) # Function to add the custom User-Agent header def add_version_header(params, **kwargs): params["headers"]['X-Amzn-User-Agent'] = 'AWS|AWS Partner CRM Connector' # Register the event to modify the request before the call is made partner_central_client.meta.events.register( f'before-call.{service_name}.*', add_version_header ) # Now, whenever an API call is made using this client, the custom User-Agent header will be included

此示例演示如何在 Boto3 SDK 中注册事件,以自动将X-Amzn-User-Agent标头附加到每个 API 请求。通过修改其各自的请求拦截机制,可以将同样的方法应用于其他AWS SDK。

注意

X-Amzn-User-Agent题格式已得到简化。我们建议使用新格式。为了向后兼容,仍支持以前的格式 (CompanyName|ProductName|CRMName|ProductVersion)。现有的集成无需修改即可继续运行。