

AWS Marketplace API 参考已重组。有关支持的 API 操作的更多信息，请参阅 [AWS Marketplace API 参考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

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

# 使用 AWS Marketplace 用于共享资源的 API
<a name="use-apis-to-share-resources"></a>

AWS Marketplace Catalog API 与 AWS Resource Access Manager (AWS RAM) 集成以启用资源共享。*资源*是用户可以在中使用的实体 AWS Marketplace，例如产品、报价或转售授权。使用 AWS RAM，您可以与其他人共享一些 AWS Marketplace Catalog API 资源 AWS 账户。您可以通过创建*资源共享*来共享自己拥有的资源。资源共享指定了您要共享的资源以及要与之共享的使用者。

**Topics**
+ [共享的先决条件 AWS Marketplace 实体](#sharing-prereqs)
+ [分享一个 AWS Marketplace 实体](#share-marketplace-entity)

## 共享的先决条件 AWS Marketplace 实体
<a name="sharing-prereqs"></a>

在中共享实体之前 AWS Marketplace Catalog API，必须满足以下先决条件：
+ 您只能将一个资源策略附加到您的 AWS Marketplace 实体。
+ 要共享实 AWS Marketplace 体，您必须在自己的实体中拥有该实体 AWS 账户。此要求意味着必须在您的账户中分配或配置该实体。您不能共享已与您共享的 AWS Marketplace 实体。

## 分享一个 AWS Marketplace 实体
<a name="share-marketplace-entity"></a>

通过 AWS Marketplace 资源共享，实体所有者可以与其他 AWS 账户 人共享其实体 AWS Marketplace。 Entity-owners 可以是 ISV 和渠道合作伙伴。可以共享的实体包括产品、优惠和转售授权。

**注意**  
目前，您只能共享实体。中的实体 AWS Marketplace 包括`AmiProduct``Audience`、`BrandingSettings`、`ContainerProduct`、`Experience`、和`ProcurementPolicy`。

有关的更多信息 AWS RAM，请参阅《[AWS RAM 用户指南》](https://docs.aws.amazon.com/ram/latest/userguide/)。有关管理共享资源的更多信息，请参阅*AWS RAM 用户指南*中的[使用共享 AWS 资源](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html)。

作为*共享帐户*，您可以 read/write 对要共享的资源设置为只读或两者兼而有之。这些权限决定了*使用者账户*可以对与其共享的资源执行哪些操作。
+ **共享帐户**-共享的资源， AWS RAM 管理员使用在其中创建 AWS 资源共享 AWS RAM。
+ **消费账户**-共享资源的账户。 AWS 账户 资源共享可以将整个账户指定为主体，或者对于某些资源类型，可以指定账户中的单个角色或用户。

要共享实 AWS Marketplace 体，必须将其添加到资源共享。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用 AWS Marketplace 控制台共享实体时，可以将其添加到现有资源共享中。要将 AWS Marketplace 实体添加到新的资源共享中，必须先使用[AWS RAM 控制台](https://console.aws.amazon.com/ram)创建资源共享。

您可以使用 AWS Marketplace 控制台、 AWS RAM 控制台或 AWS Command Line Interface (AWS CLI) 共享您拥有的 AWS Marketplace 实体。

**要共享 AWS Marketplace 使用您拥有的实体 AWS RAM 控制台**  
请参阅《AWS RAM 用户指南》**中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

**要共享 AWS Marketplace 使用您拥有的实体 AWS CLI**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

**注意**  
对于资源类型，例如支持基于资源的策略的实体，您可以使用 AWS RAM 共享资源以使用其他 AWS RAM 功能。有关更多信息，请参阅《*AWS RAM 用户指南*》中的[Resource-based 策略](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-terms-and-concepts.html#term-resource-based-policy)。 AWS RAM 使用 AWS Marketplace Catalog API 根据资源共享中的权限自动构建资源策略，并为您管理该资源策略。

有关如何通过设置、查看或删除 AWS Marketplace 实体上 AWS 基于资源的策略的信息 AWS RAM，请参阅*AWS RAM**用户指南*中的[允许对所有资源执行操作](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/api-access-control.html#allowing-actions-on-all-resources)。

### 通过以下方式共享实体之间的区别 AWS RAM 还有 AWS Marketplace Catalog API
<a name="differences-ram-capi"></a>

除了通过共享您的实体外 AWS RAM，您还可以通过在实体上设置、查看或删除 AWS 基于资源的策略。 AWS Marketplace Catalog API但是，通过共享实体 AWS RAM 和通过共享实体之间有一些区别 AWS Marketplace Catalog API。

当您通过 AWS RAM以下方式共享实体时：
+ 如果您与外部账户共享您的实体，则使用者账户必须先接受您的共享请求，然后才能共享该实体。 AWS Organizations
+ 使用者账户可以通过`OwnershipType`设置为来`ListEntities`发现共享实体`SHARED`。
+ 您必须遵守多个资源配额。有关更多信息，请参阅《AWS RAM 用户指南》**中的 [AWS RAM的服务配额](https://docs.aws.amazon.com/ram/latest/userguide/service-quotas.html)。

当您通过以下方式共享实体时 AWS Marketplace Catalog API：
+ 一旦`PutResourcePolicy`请求成功，您的实体就会被共享，而无需使用者账户进行任何输入。
+ 如果`OwnershipType`设置为，则使用者账户无法通过`ListEntities`该共享实体发现该共享实体`SHARED`。相反，共享账户的所有者必须将共享实体 ID 告知使用者账户。

**注意**  
如果您的用例需要共享可能超过 AWS RAM 服务配额的资源，或者您想在没有使用者账户直接输入的情况下共享资源，请考虑通过共享 AWS Marketplace Catalog API。对于所有其他用例，请考虑使用 AWS RAM 来共享 AWS Marketplace 资源。

以下各节详细介绍了如何通过在实体上设置、查看或删除 AWS 基于资源的策略。 AWS Marketplace Catalog API

**Topics**
+ [通过以下方式共享实体之间的区别 AWS RAM 还有 AWS Marketplace Catalog API](#differences-ram-capi)
+ [将只读策略附加到您的资源](#read-only-policy-resource)
+ [将读取和写入资源策略附加到您的资源](#read-and-write-resource-policy)
+ [查看针对您的资源设置的资源政策](#view-resource-policy-set)
+ [删除您的资源的资源政策](#delete-resource-policy)
+ [查看您拥有并与您共享的所有资源](#view-entities-owned)

### 将只读策略附加到您的资源
<a name="read-only-policy-resource"></a>

您可以使用共享账户在共享资源上创建基于资源的只读策略。使用此政策，委托人只能查看与其共享的资源的详细信息。

请求

```
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

{}
```

### 将读取和写入资源策略附加到您的资源
<a name="read-and-write-resource-policy"></a>

作为共享账户，您可以针对共享资源创建基于资源的读写策略。使用此策略，委托人可以查看详细信息并对与其共享的资源执行写入操作。

请求

```
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

{}
```

### 查看针对您的资源设置的资源政策
<a name="view-resource-policy-set"></a>

作为共享帐户，您可以查看在共享资源上设置的资源政策。

请求

```
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"
            ]
        }
    }
}
```

### 删除您的资源的资源政策
<a name="delete-resource-policy"></a>

作为共享帐户，您可以删除在共享资源上设置的资源策略。

请求

```
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

{}
```

### 查看您拥有并与您共享的所有资源
<a name="view-entities-owned"></a>

作为消费账户，您可以查看与您共享的资源。

**注意**  
只有通过共享资源时，您才能查看与您共享的资源 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": "" 
}
```