AWS Marketplace API 参考已重组。有关支持的 API 操作的更多信息,请参阅 AWS Marketplace API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的访问控制 AWS Marketplace 发现 API
发现 API 使用 AWS Identity and Access Management (IAM) 进行身份验证和授权。任何 AWS 客户都可以通过配置相应的 IAM 权限来调用 Discovery API。
用户必须具有以下权限才能调用 Discovery API 操作:
GetListing— 授予检索房源信息的权限。GetProduct— 授予检索产品信息的权限。GetOffer— 授予检索有关优惠信息的权限。GetOfferTerms— 授予检索优惠条款的权限。GetOfferSet— 授予检索优惠套餐相关信息的权限。ListPurchaseOptions— 授予列出买家可用的购买选项的权限。ListFulfillmentOptions— 授予列出商品配送选项的权限。SearchListings— 授予搜索产品列表的权限。SearchFacets— 授予检索分面值以筛选列表的权限。
IAM 权限
要调用 Discovery API 操作,IAM 委托人(用户或角色)必须具有相应的aws-marketplace权限。Discovery API 支持资源级权限,因此您可以在 IAM 策略中限制对特定资源类型的访问权限。
以下 IAM 策略授予对所有具有资源级范围的 Discovery API 操作的访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:GetListing", "aws-marketplace:GetProduct", "aws-marketplace:GetOffer", "aws-marketplace:GetOfferTerms", "aws-marketplace:GetOfferSet", "aws-marketplace:ListPurchaseOptions", "aws-marketplace:ListFulfillmentOptions", "aws-marketplace:SearchFacets", "aws-marketplace:SearchListings" ], "Resource": [ "arn:aws:aws-marketplace:::catalog/<catalog-name>/product/*", "arn:aws:aws-marketplace:::catalog/<catalog-name>/listing/*", "arn:aws:aws-marketplace:::catalog/<catalog-name>/offer/*", "arn:aws:aws-marketplace:::catalog/<catalog-name>/offerSet/*", "arn:aws:aws-marketplace:::catalog/<catalog-name>/purchaseOption/*" ] } ] }
<catalog-name>替换为相应的目录标识符(例如,AWSMarketplace)。
资源 ARN 格式
下表显示了 Discovery API 操作使用的资源类型及其 ARN 格式:
| 资源类型 | ARN 格式 | 使用者 |
|---|---|---|
| 产品 | arn:aws:aws-marketplace:::catalog/ |
GetProduct, ListFulfillmentOptions |
| 产品上架 | arn:aws:aws-marketplace:::catalog/ |
GetListing, SearchListings, SearchFacets |
| 优惠 | arn:aws:aws-marketplace:::catalog/ |
GetOffer, GetOfferTerms |
| 优惠套装 | arn:aws:aws-marketplace:::catalog/ |
GetOfferSet |
| Purchase Option | arn:aws:aws-marketplace:::catalog/ |
ListPurchaseOptions |
将操作范围限定为特定资源
对于 Get 操作(GetListing GetProduct GetOffer、、 GetOfferTerms、、 GetOfferSet)和 ListFulfillmentOptions 操作,您可以将访问范围缩小到特定的资源 ID,而不必使用通配符。例如,要限制对单个列表的访问权限,请执行以下操作:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "aws-marketplace:GetListing", "Resource": "arn:aws:aws-marketplace:::catalog/AWSMarketplace/listing/listing-id" } ] }
此模式适用于任何 Get 操作和 ListFulfillmentOptions。相应地替换资源类型和 ID:
arn:aws:aws-marketplace:::catalog/catalog-name/product/product-idarn:aws:aws-marketplace:::catalog/catalog-name/listing/listing-idarn:aws:aws-marketplace:::catalog/catalog-name/offer/offer-idarn:aws:aws-marketplace:::catalog/catalog-name/offerSet/offerSet-id
SearchListings SearchFacets、和 ListPurchaseOptions 操作不支持将范围限定为单个资源,因为它们可以跨多个项目进行操作。使用以下通配符 ARN 模式进行这些操作:
对于 SearchListings 和 SearchFacets:
arn:aws:aws-marketplace:::catalog/catalog-name/listing/*对于 ListPurchaseOptions:
arn:aws:aws-marketplace:::catalog/catalog-name/purchaseOption/*
Service-linked 角色
发现 API 不使用与服务相关的角色。所有访问均通过标准 IAM 策略进行控制。
Cross-account 访问
您可以使用 IAM 角色授予对 Discovery API 的跨账户访问权限。在目标账户中创建一个具有相应 Discovery API 权限的角色,然后从源账户中代入该角色。