

AWS Marketplace API 參考已重組。如需支援的 API 操作的詳細資訊，請參閱 [AWS Marketplace API 參考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Marketplace Discovery API 的存取控制
<a name="discovery-api-access-control"></a>

Discovery API 使用 AWS Identity and Access Management (IAM) 進行身分驗證和授權。任何 AWS 客戶都可以透過設定適當的 IAM 許可來呼叫 Discovery API。

使用者必須具有下列許可才能呼叫 Discovery API 操作：
+ `GetListing` – 准許擷取有關清單的資訊。
+ `GetProduct` – 准許擷取有關產品的資訊。
+ `GetOffer` – 准許擷取優惠的相關資訊。
+ `GetOfferTerms` – 准許擷取優惠的條款。
+ `GetOfferSet` – 准許擷取優惠集的相關資訊。
+ `ListPurchaseOptions` – 准許列出買方可用的購買選項。
+ `ListFulfillmentOptions` – 准許列出產品的履行選項。
+ `SearchListings` – 准許搜尋產品清單。
+ `SearchFacets` – 准許擷取面向值以篩選清單。

## IAM 許可
<a name="discovery-iam-permissions"></a>

若要呼叫 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 格式
<a name="discovery-resource-arn-formats"></a>

下表顯示 Discovery API 操作所使用的資源類型及其 ARN 格式：


| Resource Type (資源類型) | ARN 格式 | 使用者： | 
| --- | --- | --- | 
| 產品 | arn:aws:aws-marketplace:::catalog/{{catalog-name}}/product/{{product-id}} | GetProduct、ListFulfillmentOptions | 
| 列出 | arn:aws:aws-marketplace:::catalog/{{catalog-name}}/listing/{{listing-id}} | GetListing、SearchListings、SearchFacets | 
| 優惠 | arn:aws:aws-marketplace:::catalog/{{catalog-name}}/offer/{{offer-id}} | GetOffer、GetOfferTerms | 
| 優惠集 | arn:aws:aws-marketplace:::catalog/{{catalog-name}}/offerSet/{{offerSet-id}} | GetOfferSet | 
| 購買選項 | arn:aws:aws-marketplace:::catalog/{{catalog-name}}/purchaseOption/{{purchaseOption-id}} | ListPurchaseOptions | 

### 將操作範圍限定為特定資源
<a name="discovery-scoping-get-operations"></a>

對於 Get 操作 (GetListing、GetProduct、GetOffer、GetOfferTerms、GetOfferSet) 和 ListFulfillmentOptions 操作，您可以將存取範圍縮小為特定資源 IDs，而不是使用萬用字元。例如，若要限制對單一清單的存取：

```
{
    "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-id}}`
+ `arn:aws:aws-marketplace:::catalog/{{catalog-name}}/listing/{{listing-id}}`
+ `arn:aws:aws-marketplace:::catalog/{{catalog-name}}/offer/{{offer-id}}`
+ `arn: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/*`

## 服務連結角色
<a name="discovery-service-linked-roles"></a>

Discovery API 不使用服務連結角色。所有存取都是透過標準 IAM 政策來控制。

## 跨帳戶存取權
<a name="discovery-cross-account-access"></a>

您可以使用 IAM 角色授予 Discovery API 的跨帳戶存取權。使用適當的 Discovery API 許可在目標帳戶中建立角色，然後從來源帳戶擔任該角色。