AWS Marketplace API 参考已重组。有关支持的 API 操作的更多信息,请参阅 AWS Marketplace API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS Marketplace 用于共享资源的 API
AWS Marketplace Catalog API 与 AWS Resource Access Manager (AWS RAM) 集成以启用资源共享。资源是用户可以在中使用的实体 AWS Marketplace,例如产品、报价或转售授权。使用 AWS RAM,您可以与其他人共享一些 AWS Marketplace Catalog API 资源 AWS 账户。您可以通过创建资源共享来共享自己拥有的资源。资源共享指定了您要共享的资源以及要与之共享的使用者。
共享的先决条件 AWS Marketplace 实体
在中共享实体之前 AWS Marketplace Catalog API,必须满足以下先决条件:
-
您只能将一个资源策略附加到您的 AWS Marketplace 实体。
-
要共享实 AWS Marketplace 体,您必须在自己的实体中拥有该实体 AWS 账户。此要求意味着必须在您的账户中分配或配置该实体。您不能共享已与您共享的 AWS Marketplace 实体。
分享一个 AWS Marketplace 实体
通过 AWS Marketplace 资源共享,实体所有者可以与其他 AWS 账户 人共享其实体 AWS Marketplace。 Entity-owners 可以是 ISV 和渠道合作伙伴。可以共享的实体包括产品、优惠和转售授权。
注意
目前,您只能共享实体。中的实体 AWS Marketplace 包括AmiProductAudience、BrandingSettings、ContainerProduct、Experience、和ProcurementPolicy。
有关的更多信息 AWS RAM,请参阅《AWS RAM 用户指南》。有关管理共享资源的更多信息,请参阅AWS RAM 用户指南中的使用共享 AWS 资源。
作为共享帐户,您可以 read/write 对要共享的资源设置为只读或两者兼而有之。这些权限决定了使用者账户可以对与其共享的资源执行哪些操作。
-
共享帐户-共享的资源, AWS RAM 管理员使用在其中创建 AWS 资源共享 AWS RAM。
-
消费账户-共享资源的账户。 AWS 账户 资源共享可以将整个账户指定为主体,或者对于某些资源类型,可以指定账户中的单个角色或用户。
要共享实 AWS Marketplace 体,必须将其添加到资源共享。资源共享是一项 AWS RAM 资源,可让您跨 AWS 账户共享资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用 AWS Marketplace 控制台共享实体时,可以将其添加到现有资源共享中。要将 AWS Marketplace 实体添加到新的资源共享中,必须先使用AWS RAM
控制台
您可以使用 AWS Marketplace 控制台、 AWS RAM 控制台或 AWS Command Line Interface (AWS CLI) 共享您拥有的 AWS Marketplace 实体。
要共享 AWS Marketplace 使用您拥有的实体 AWS RAM 控制台
请参阅《AWS RAM 用户指南》中的创建资源共享。
要共享 AWS Marketplace 使用您拥有的实体 AWS CLI
使用 create-resource-share 命令。
注意
对于资源类型,例如支持基于资源的策略的实体,您可以使用 AWS RAM 共享资源以使用其他 AWS RAM 功能。有关更多信息,请参阅《AWS RAM 用户指南》中的Resource-based 策略。 AWS RAM 使用 AWS Marketplace Catalog API 根据资源共享中的权限自动构建资源策略,并为您管理该资源策略。
有关如何通过设置、查看或删除 AWS Marketplace 实体上 AWS 基于资源的策略的信息 AWS RAM,请参阅AWS RAM用户指南中的允许对所有资源执行操作。
通过以下方式共享实体之间的区别 AWS RAM 还有 AWS Marketplace Catalog API
除了通过共享您的实体外 AWS RAM,您还可以通过在实体上设置、查看或删除 AWS 基于资源的策略。 AWS Marketplace Catalog API但是,通过共享实体 AWS RAM 和通过共享实体之间有一些区别 AWS Marketplace Catalog API。
当您通过 AWS RAM以下方式共享实体时:
-
如果您与外部账户共享您的实体,则使用者账户必须先接受您的共享请求,然后才能共享该实体。 AWS Organizations
-
使用者账户可以通过
OwnershipType设置为来ListEntities发现共享实体SHARED。 -
您必须遵守多个资源配额。有关更多信息,请参阅《AWS RAM 用户指南》中的 AWS RAM的服务配额。
当您通过以下方式共享实体时 AWS Marketplace Catalog API:
-
一旦
PutResourcePolicy请求成功,您的实体就会被共享,而无需使用者账户进行任何输入。 -
如果
OwnershipType设置为,则使用者账户无法通过ListEntities该共享实体发现该共享实体SHARED。相反,共享账户的所有者必须将共享实体 ID 告知使用者账户。
注意
如果您的用例需要共享可能超过 AWS RAM 服务配额的资源,或者您想在没有使用者账户直接输入的情况下共享资源,请考虑通过共享 AWS Marketplace Catalog API。对于所有其他用例,请考虑使用 AWS RAM 来共享 AWS Marketplace 资源。
以下各节详细介绍了如何通过在实体上设置、查看或删除 AWS 基于资源的策略。 AWS Marketplace Catalog API
将只读策略附加到您的资源
您可以使用共享账户在共享资源上创建基于资源的只读策略。使用此政策,委托人只能查看与其共享的资源的详细信息。
请求
POST /PutResourcePolicy HTTP/1.1 Content-type: application/json { "ResourceArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6", "Policy": { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222233334444:root" }, "Action": [ "aws-marketplace:DescribeEntity" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6" ] } } }
响应
HTTP/1.1 200 Content-type: application/json {}
将读取和写入资源策略附加到您的资源
作为共享账户,您可以针对共享资源创建基于资源的读写策略。使用此策略,委托人可以查看详细信息并对与其共享的资源执行写入操作。
请求
POST /PutResourcePolicy HTTP/1.1 Content-type: application/json { "ResourceArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6", "Policy": { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222233334444:root" }, "Action": [ "aws-marketplace:DescribeEntity", "aws-marketplace:StartChangeSet" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6" ] } } }
响应
HTTP/1.1 200 Content-type: application/json {}
查看针对您的资源设置的资源政策
作为共享帐户,您可以查看在共享资源上设置的资源政策。
请求
POST /GetResourcePolicy HTTP/1.1 Content-type: application/json { "ResourceArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6" }
响应
HTTP/1.1 200 Content-type: application/json { "Policy": { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222233334444:root" }, "Action": [ "aws-marketplace:DescribeEntity", "aws-marketplace:StartChangeSet" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6" ] } } }
删除您的资源的资源政策
作为共享帐户,您可以删除在共享资源上设置的资源策略。
请求
POST /DeleteResourcePolicy HTTP/1.1 Content-type: application/json { "ResourceArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6" }
响应
HTTP/1.1 200 Content-type: application/json {}
查看您拥有并与您共享的所有资源
作为消费账户,您可以查看与您共享的资源。
注意
只有通过共享资源时,您才能查看与您共享的资源 AWS RAM。
请求
POST /ListEntities HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "EntityType": "AmiProduct", "FilterList": [ { "Name": "EntityId", "ValueList": [ "example2-abcd-1234-5ef6" ] } ], "OwnershipType": "SHARED" }
响应
HTTP/1.1 200 Content-type: application/json { "EntitySummaryList": [ { "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example2-abcd-1234-5ef6", "EntityId": "example2-abcd-1234-5ef6", "EntityType": "AmiProduct", "LastModifiedDate": "2018-02-27T13:45:22Z", "Name": "TestProduct", "Visibility": "public" } ], "NextToken": "" }