

AWS Marketplace API 참조가 재구성되었습니다. 지원되는 API 작업에 대한 자세한 내용은 [AWS Marketplace API 참조](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)를 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS MarketplaceAPI를 사용하여 프라이빗 마켓플레이스 작업
<a name="work-with-private-marketplace"></a>

AWS Marketplace Catalog API를 사용하여 AWS 계정또는 [조직의](https://docs.aws.amazon.com/organizations/latest/userguide/) *프라이빗 마켓플레이*스를 관리할 수 있습니다.

모든 변경 유형은 조직의 관리 계정 또는 프라이빗 마켓플레이스의 위임된 관리자인 멤버 계정에서만 호출할 수 있습니다. 프라이빗 마켓플레이스에 대한 AWS Organizations통합이 없는 현재 프라이빗 마켓플레이스 고객인 경우 `AWSPrivateMarketplaceAdminFullAccess` IAM 정책이 있는 조직의 모든 계정에서 프라이빗 마켓플레이스를 생성하고 관리할 수 있습니다.

 프라이빗 마켓플레이스에 대한 자세한 내용은 *AWS Marketplace구매자 안내서*의 [프라이빗 마켓플레이스](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-marketplace.html)를 참조하세요.

 다음 표에는 프라이빗 마켓플레이스를 관리하기 위한 작업 세트와 각 작업에 적용되는 변경 유형이 자세히 나와 있습니다.


| Task | 작업 | 변경 유형 | 
| --- | --- | --- | 
| [프라이빗 마켓플레이스 생성](#creating-a-private-marketplace) | `StartChangeSet` | `CreateExperience`<br />`CreateProcurementPolicy` | 
| [프라이빗 마켓플레이스 경험의 브랜딩 변경](#private-marketplace-branding) | `StartChangeSet` | `CreateBrandingSettings`<br />`UpdateBrandingSettings` | 
| [프라이빗 마켓플레이스 경험 활성화 또는 비활성화](#enable-private-marketplace) | `StartChangeSet` | `UpdateExperience` | 
| [사용자 요청 활성화 또는 비활성화](#private-marketplace-user-requests) | `StartChangeSet` | `UpdateProcurementPolicy` | 
| [프라이빗 마켓플레이스 경험에서 제품 목록 가져오기](#private-marketplace-policy-details) | `DescribeEntity` | 해당 사항 없음 | 
| [프라이빗 마켓플레이스에서 제품 추가 또는 제거](#private-marketplace-add-products) | `StartChangeSet` | `AllowProductProcurement`<br />`DenyProductProcurement` | 
| [제품 찾기](#finding-product-ids) | 해당 사항 없음 | 해당 사항 없음 | 
| [용 프라이빗 마켓플레이스 작업AWS Organizations](#private-marketplace-organizations) | 해당 사항 없음 | 해당 사항 없음 | 
| [보안 주체를 경험에 연결](#private-marketplace-associate-accounts) | `StartChangeSet` | `AssociateAudience`<br />`DisassociateAudience` | 
| [프라이빗 마켓플레이스 경험 보관 및 재활성화](#archiving-and-reactivating-a-private-marketplace-experience-capi) | `StartChangeSet` | `RestrictExperience`<br />`ReviveExperience` | 

## 프라이빗 마켓플레이스 생성
<a name="creating-a-private-marketplace"></a>

의 프라이빗 마켓플레이스는 사용자가 해당 계정에서 구매할 AWS 계정수 있는 제품 목록과 마켓플레이스의 브랜딩으로 생각할 수 있습니다. 계정이 여러 개인 조직에서는 [OU(조직 단위)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)라는의AWS Organizations 그룹화를 사용하여 경험에 연결할 수 있습니다. 예를 들어 조직의 모든 계정이 조달할 수 있는 제품 세트가 하나 있거나 조직의 각 OU에 대해 다른 제품 목록이 있을 수 있습니다. 조직의 개별 계정에 대해 다른 제품 목록을 가질 수도 있습니다. 승인된 제품 및 브랜딩의 각 목록을 조달 *경험*이라고 합니다.

에서 AWS Marketplace Catalog API네 개의 엔터티는 경험을 나타냅니다.
+ `Experience` 엔터티 -이 엔터티는 경험의 최고 수준에 있으며 두 개의 하위 엔터티를 포함합니다.
+ `ProcurementPolicy` 개체 -이 개체는 프라이빗 마켓플레이스에서 허용 및 거부된 제품을 나타냅니다.
+ `BrandingSettings` 개체 - `BrandingSettings`개체를 생성하여 프라이빗 마켓플레이스가 사용자에게 어떻게 보이는지 정의할 수도 있습니다.
+ `Audience` 엔터티 - 경험이 적용되는 AWS 계정OU 또는 조직의 집합을 정의하는 하나 이상의 `Audience`엔터OUs도 연결해야 합니다.

조달 경험을 생성하는 단계는 다음과 같습니다.

1. `Experience` 개체를 생성합니다.

1. `ProcurementPolicy` 엔터티를 생성하여 경험에 허용되거나 거부된 제품 목록을 저장합니다.

1. (선택 사항) `BrandingSettings`엔터티를 생성하여 마켓플레이스 경험의 모양을 사용자 지정합니다.

1. 보안 주체를 사용자 경험과 연결합니다. 보안 주체는 AWS 계정, OU 또는 조직일 수 있습니다.

1. 환경을 활성화합니다.

**참고**  
계정이의 조직에 속해 있는 경우 섹션을 AWS Organizations참조하세요[용 프라이빗 마켓플레이스 작업AWS Organizations](#private-marketplace-organizations).

**`Experience` 개체 생성**

`Experience` 개체를 생성하려면 `ChangeType` 파라미터 `CreateExperience` 값과 함께 `StartChangeSet` 작업을 사용하여 경험을 생성하도록 요청합니다AWS Marketplace. 다음 코드 예제를 참조하세요.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateExperience",
      "DetailsDocument":
      {
        "Name": "ExamplePrivateMarketplace"
      },
      "Entity":
      {
        "Type": "Experience@1.0"
      }
    }
  ],
  "ChangeSetName": "Create Private Marketplace Example"
}
```

이 작업에서 `Entity`는 생성하려는 엔터티의 템플릿입니다. 생성 `EntityId` 시이 할당됩니다.는 나중에 찾을 수 있도록 변경 사항을 `ChangeSetName` 식별합니다.

그 응답은 다음과 같습니다.

```
{
   "ChangeSetArn": "arn:...:AWSMarketplace/ChangeSet/abcd1234example5678frjzkz",
   "ChangeSetId": "abcd1234example5678frjzkz"
}
```

응답에는 로 처리`ChangeSetId`되는 변경 요청의 상태를 가져오는 데 사용할 수 있는가 포함됩니다`DescribeChangeSet`. `ListEntities`를 사용하여 없이 `Experience`개체를 찾을 수도 있습니다`ChangeSetId`. 변경 세트에 대한 자세한 내용은 [변경 세트 작업](catalog-apis.md#working-with-change-sets)의 내용을 참조하세요.

새로 생성된 `Experience`엔터티에는 기본적으로 조달 정책이 없습니다. 또한 브랜딩에 대한 기본 설정으로 생성됩니다. 사용자 지정 방법을 포함하여 브랜딩 설정에 대한 자세한 내용은 섹션을 참조하세요[프라이빗 마켓플레이스 경험의 브랜딩 변경](#private-marketplace-branding).

**`ProcurementPolicy` 개체 생성**

`ProcurementPolicy` 개체를 생성해야 합니다. 기본적으로 새 `Experience`엔터티는 비활성화되어 있으므로 활성화하기 전에 조달 정책을 생성할 수 있습니다.

**참고**  
조달 정책(null)이 *없는* `Experience`엔터티는 프라이빗 마켓플레이스에서 모든 제품을 조달할 수 있도록 허용합니다. *빈* 조달 정책이 있는 `Experience`엔터티에는 사용자가 조달할 수 있는 제품이 없습니다.

프라이빗 마켓플레이스에서 제품을 허용하고 거부하려면 조달 정책을 생성해야 합니다. 이렇게 하려면를 다시 호출`StartChangeSet`하지만 이번에는 `ChangeType`의를 사용합니다`CreateProcurementPolicy`. 다음 코드 예제에서는 빈 조달 정책을 생성합니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateProcurementPolicy",
      "DetailsDocument":
      {
        "Name": "ExampleProcurementPolicy"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@1"
      }
    }
  ]
}
```

이 작업에서 `Entity` 제공하는는 조달 정책을 생성하려는 `Experience`엔터티이므로 이전에 생성한 엔터티의 식별자를 포함해야 합니다. `ListEntities`를 사용하여 `Experience`개체를 찾습니다. `CreateExperience` 작업의 변경 세트 식별자`DescribeChangeSet`와 함께를 사용하여 식별자를 반환할 수도 있습니다.

**참고**  
이 예제는 개정이 인 식별자를 보여줍니다`1`. 식별자의 개정에 대한 자세한 내용은 섹션을 참조하세요[식별자](catalog-apis.md#identifier).

`CreateProcurementPolicy` 변경 유형에 `DescribeChangeSet`를 다시 사용하여 요청 처리를 따를 수 있습니다.

**참고**  
`Experience` 및 `ProcurementPolicy` 객체에 지정한 이름은에 표시되지 않습니다AWS Marketplace. 이름은 API에서 엔터티를 쉽게 찾을 수 있도록 하기 위한 것입니다.

조달 정책을 생성하면 프라이빗 마켓플레이스가에 표시됩니다AWS Management Console. (프라이[빗 마켓플레이스 페이지로](https://aws.amazon.com/marketplace/privatemarketplace) 이동하여 볼 수 있습니다.) 이 단계를 완료하면 프라이빗 마켓플레이스가 비활성화되고, 기본 브랜딩이 있으며, 빈 조달 정책이 있고, 조직의 보안 주체와 연결되지 않습니다. 브랜딩을 업데이트하고 원하는 제품을 추가하고 경험을 하나 이상의 계정과 연결한 다음 프라이빗 마켓플레이스를 활성화할 수 있습니다.

다음 섹션에서는를 사용하여 프라이빗 마켓플레이스를 관리하는 방법을 설명합니다AWS Marketplace Catalog API.

## 프라이빗 마켓플레이스 경험의 브랜딩 변경
<a name="private-marketplace-branding"></a>

사용자에 맞게 프라이빗 마켓플레이스의 모양을 사용자 지정할 수 있습니다. 사용자 지정이 없으면 프라이빗 마켓플레이스의 기본 브랜딩 설정이 아래에 설명되어 있습니다. 프라이빗 마켓플레이스에서 변경할 수 있는 브랜딩의 측면은 다음과 같습니다.
+ `Title` - 프라이빗 마켓플레이스에 표시되는 이름입니다. 이는 프라이빗 마켓플레이스 **프로파일 설정** 화면의 **이름** 필드와 동일합니다. 를 `Title`로 설정하면 표시된 텍스트**Example**는 **Example Private Marketplace**입니다. 기본값은 **Private Marketplace**입니다.
+ `Information` - 프라이빗 마켓플레이스의 이름 아래에 표시되는 단락입니다. 프로필 **설정**의 **설명** 필드와 동일합니다. 기본값은 정보가 아니며,이 경우 프라이빗 마켓플레이스에 대한 일반적인 설명이 표시됩니다.
+ `ThemeColor` - 프라이빗 마켓플레이스의 배너에 표시되는 색상입니다. RGB 16진수 형식의 색상입니다. 이 값은 **프로파일 설정**의 **테마 색상** 필드와 동일합니다. 기본값은 `#232F3E`입니다.
+ `LogoUrl` - 프라이빗 마켓플레이스에서 로고로 사용할 이미지 파일을 가리키는 URL입니다. URL은 공개적으로 사용할 수 있어야 합니다(예: 서명된 Amazon S3 URL). 파일은 .png 또는 .svg 파일이어야 하며 500kb 미만이어야 합니다. 필요한 경우 이미지 파일의 크기를 최대 높이 30픽셀, 최대 너비 100픽셀로 조정합니다. 프로필 **설정**의 **로고** **선택**과 동일한 값입니다. 기본값은 로고를 표시하지 않는 것입니다.

이러한 값을 설정하려면 먼저 `CreateBrandingSettings` 변경 유형으로 `BrandingSettings`개체를 생성해야 합니다. 그런 다음 `UpdateBrandingSettings` 변경을 요청하여 브랜딩을 설정하거나 변경할 수 있습니다. `BrandingSettings` 객체는 한 번만 생성하면 됩니다. 이 객체를 생성하려면 다음 코드 예제와 같이 `CreateBrandingSettings` 변경 유형`StartChangeSet`으로를 호출합니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateBrandingSettings",
      "DetailsDocument":
      {
        "Name": "ExampleBrandingSettingsName"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@2"
      }
    }
  ]
}
```

이 예제에서는 `BrandingSettings` 객체를 추가하여 `Experience`개체를 수정합니다. 개체 식별자의 개정이 로 증가했습니다`2`. 식별자의 개정에 대한 자세한 내용은 섹션을 참조하세요[식별자](catalog-apis.md#identifier).

**참고**  
호출에서 브랜딩 설정의 모든 세부 정보를 지정하여 브랜딩 설정 개체를 생성할 수 있습니다. 세부 정보 패싯은 `CreateBrandingSettings` 및에 대해 동일합니다`UpdateBrandingSettings`.

`UpdateBrandingSettings` 변경 유형`StartChangeSet`으로를 호출하여 설정을 수정합니다. 설정은 `DetailsDocument` 객체`Configuration`의 일부입니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateBrandingSettings",
      "DetailsDocument":
      {
        "Name": "ExampleBrandingSettingsName",
        "Description": "Example description",
        "Configuration":
        {
          "Title": "ExampleName",
          "Information": "Example description.",
          "ThemeColor": "#0e7f74",
          "LogoUrl": "https://example.com/path/mylogo.png"
        }
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@3"
      }
    }
  ]
}
```

**참고**  
로고의 URL은 업데이트 변경 중에 복사하는 데 사용됩니다. 변경이 완료된 후 해당 경로에서 URL을 제거하거나 변경하면를 다시 요청하지 않는 한 프라이빗 마켓플레이스에 영향을 주지 않습니다`UpdateBrandingSettings`.

## 프라이빗 마켓플레이스 경험 활성화 또는 비활성화
<a name="enable-private-marketplace"></a>

프라이빗 마켓플레이스가 활성화되면(및 조달 정책이 있는 경우) 연결된 계정의 사용자는 사용자가 승인한 제품만 구매할 수 있습니다. 계정에 프라이빗 마켓플레이스 환경이 활성화되지 않은 경우 사용자는 전체 AWS Marketplace카탈로그에서 제품을 구매할 수 있습니다.

프라이빗 마켓플레이스를 활성화하려면 `UpdateExperience` 변경 유형과 함께 `StartChangeRequest` 작업을 사용합니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateExperience",
      "DetailsDocument":
      {
        "Status": "Enabled"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@4"
      }
    }
  ]
}
```

마찬가지로 및와 동일한 작업을 사용할 수 있지만 `ChangeType``Status`의를 `DetailsDocument`로 변경`Disabled`하여 프라이빗 마켓플레이스를 비활성화할 수 있습니다.

**참고**  
프라이빗 마켓플레이스를 비활성화하면 허용 및 거부된 제품 목록과 브랜딩과 같은 사용자 지정이 모두 유지됩니다. 프라이빗 마켓플레이스가 비활성화되면 사용자는 더 이상 프라이빗 마켓플레이스를 볼 수 없습니다(조직의 기본 환경에 따라 관리될 수 있음). 계정에 대해 활성화된 프라이빗 마켓플레이스 경험이 없는 경우 모든 제한이 제거되고 사용자는 퍼블릭 제품을 조달할 수 있습니다AWS Marketplace.

## 사용자 요청 활성화 또는 비활성화
<a name="private-marketplace-user-requests"></a>

조직의 사용자는 전체 퍼블릭을 볼 수 AWS Marketplace있지만 허용한 제품만 구독할 수 있습니다. 기본적으로 프라이빗 마켓플레이스에 없는 제품을 추가하도록 요청할 수 있습니다. 이러한 요청은 프라이빗 마켓플레이스 관리자 페이지([프라이빗 마켓플레이](https://aws.amazon.com/marketplace/privatemarketplace/admin/)스)에 표시되며, 여기서 요청을 수락 또는 거부할지 여부(및 동일한 제품에 대한 추가 요청을 차단할지 여부)를 결정할 수 있습니다. 카탈로그 API를 사용하여 요청을 보거나 응답할 수 없습니다.

사용자가 프라이빗 마켓플레이스 경험에 대한 요청을 생성할 수 있는 기능을 활성화하거나 비활성화할 수 있습니다. 를 `UpdateProcurementPolicy` 변경 유형`StartChangeSet`과 함께 사용합니다. 다음 코드 예제에서는 요청 기능이 비활성화되어 있습니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateProcurementPolicy",
      "DetailsDocument":
      {
        "Configuration":
        {
          "PolicyResourceRequests": "Deny"
        }
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@5"
      }
    }
  ]
}
```

사용자에 대한 변경 요청 기능을 활성화하려면 `Deny`에서 `Allow` 대신를 사용합니다`PolicyResourceRequests`.

이 설정의 현재 상태를 가져오는 방법을 알아보려면 다음 섹션인 단원을 참조하십시오[프라이빗 마켓플레이스 경험에서 제품 목록 가져오기](#private-marketplace-policy-details).

## 프라이빗 마켓플레이스 경험에서 제품 목록 가져오기
<a name="private-marketplace-policy-details"></a>

프라이빗 마켓플레이스에서 허용(및 거부)된 제품은 `Experience`엔터티의 조달 정책의 일부입니다. 프라이빗 마켓플레이스의 조달 정책에 대한 세부 정보를 가져오려면 먼저 `Experience`엔터티에서 조달 정책 식별자를 가져온 다음 해당 식별자를 `DescribeEntity` 사용하여를 호출합니다.

조달 정책 식별자를 가져오려면 다음 명령과 같이 관심 있는 `Experience`엔터티`DescribeEntity`에를 사용합니다.

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{exp-example01}}
```

다음은 응답의 예입니다.

```
{
  "Details": "{\"Name\":\"New Private Marketplace\", \"Status\":\"Enabled\", \"ProcurementPolicies\":[\"procpolicy-123example456\"], \"BrandingSettings\":[\"brandsettings-456example123\"]}",
  "DetailsDocument":
  {
    "Name": "New Private Marketplace",
    "Status": "Enabled",
    "ProcurementPolicies":
    [
      "procpolicy-123example456"
    ],
    "BrandingSettings":
    [
      "brandsettings-456example123"
    ]
  },
  "EntityArn": "arn:<...>:AWSMarketplace/Experience/exp-example-01",
  "EntityIdentifier": "exp-example01@6",
  "EntityType": "Experience@1.0",
  "LastModifiedDate": "2021-01-13T20:31:36Z"
}
```

**참고**  
`DetailsDocument` 속성에는 개체 세부 정보가 JSON 객체로 포함됩니다. 레거시 `Details` 속성에는 문자열과 동일한 JSON 객체가 포함됩니다.

다음 명령과 같이 조달 정책에 `EntityId` 대해 반환된를 사용하여 세부 정보를 가져올 수 있습니다.

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{procpolicy-123example456}}
```

이렇게 하면 허용된 제품과 거부된 제품을 모두 포함하여 정책의 전체 세부 정보가 반환됩니다. 다음은 응답의 예입니다.

```
{
  "Details": "{\"Name\":\"ExampleProcurementPolicy\", \"Statements\":[{\"Effect\":\"Allow\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"example1-1234-abcd-5678-90abcdef1234\"]},{\"Type\":\"Product\",\"Ids\":[\"example2-2345-bcde-6789-01bcdea2345\"]}]},{\"Effect\":\"Deny\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"example3-3456-cdef-7890-12defabc5678\"]}]}],\"Configuration\":{\"PolicyResourceRequests\":\"Allow\"}}",
  "DetailsDocument":
  {
    "Name": "ExampleProcurementPolicy",
    "Statements":
    [
      {
        "Effect": "Allow",
        "Resources":
        [
          {
            "Type": "Product",
            "Ids":
            [
              "example1-1234-abcd-5678-90abcdef1234"
            ]
          },
          {
            "Type": "Product",
            "Ids":
            [
              "example2-2345-bcde-6789-01bcdea2345"
            ]
          }
        ]
      },
      {
        "Effect": "Deny",
        "Resources":
        [
          {
            "Type": "Product",
            "Ids":
            [
              "example3-3456-cdef-7890-12defabc5678"
            ]
          }
        ]
      }
    ],
    "Configuration":
    {
      "PolicyResourceRequests": "Allow"
    }
  },
  "EntityArn": "arn:<...>AWSMarketplace/ProcurementPolicy/procpolicy-123example456",
  "EntityIdentifier": "procpolicy-123example456@4",
  "EntityType": "ProcurementPolicy@1.0",
  "LastModifiedDate": "2020-10-01T12:00:00Z"
}
```

이 예제에서 조달 정책에는 두 개의 허용된 제품과 한 개의 거부된 제품이 있습니다. 정책은 사용자 리소스 요청을 허용합니다.

## 프라이빗 마켓플레이스에서 제품 추가 또는 제거
<a name="private-marketplace-add-products"></a>

기본적으로 프라이빗 마켓플레이스에는 승인된 제품이 없습니다. 변경 요청을 사용하여 제품을 추가하거나 제거합니다. 제품을 추가하려면 `AllowProductProcurement` 변경 유형을 사용합니다. 제품을 제거하려면 `DenyProductProcurement` 변경 유형을 사용합니다.

다음 코드 예제에서는 프라이빗 마켓플레이스에 제품을 추가하는 `StartChangeSet` 작업이 포함된 `AllowProductProcurement` 변경 유형을 보여줍니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AllowProductProcurement",
      "DetailsDocument":
      {
        "Products":
        [
          {
            "Ids":
            [
              "example-1234-abcd-5678-90abcded1234"
            ],
            "Notes": "Useful product"
          }
        ]
      },
      "Entity":
      {
        "Identifier": "exp-1234example@6",
        "Type": "Experience@1.0"
      }
    }
  ]
}
```

를 사용하여 프라이빗 마켓플레이스의 `Experience` 개체에 제품을 추가합니다`AllowProductProcurement`. 프라이빗 마켓플레이스에서 제품을 제거하는 구문은 동일하지만 `DenyProductProcurement` `ChangeType` 대신를 사용하는 경우는 예외입니다`AllowProductProcurement`. 제품은 `ProcurementPolicy` 개체에 포함된 `Experience` 개체의 허용(또는 거부) 목록에 추가됩니다.

**참고**  
`DetailsDocument` 변경 사항의에 있는 제품 목록은의 배열`Ids`이므로 제품 식별자 목록을 포함하여 한 번의 호출로 여러 제품을 추가(또는 제거)할 수 있습니다. 한 번의 요청으로 50개의 제품이 제한됩니다.  
의 목록에 대한 `Notes` 필드는 필요하지 `Ids` 않습니다. 그러나 이를 사용하여 제품 세트를 허용하거나 거부하기로 결정한 이유를 기록할 수 있습니다.

## 제품 찾기
<a name="finding-product-ids"></a>

조달 정책의 세부 정보를 가져오면 이미 프라이빗 마켓플레이스에 있는 제품의 IDs를 찾을 수 있습니다. 그러나 AWS Marketplace Catalog API는 다른 제품의 제품 IDs를 찾는 방법을 제공하지 않습니다. 카탈로그 API 서비스와 함께 사용할 제품 IDs를 가져오는 방법에는 두 가지가 있습니다.
+ **퍼블릭 마켓플레이**스 - 퍼블릭 마켓플레이스에서 제품을 찾은 후 **구독 계속을** 선택하여 제품에 대한 세부 정보 페이지를 확인합니다(제품을 구독하지 않음). URL에는 제품 ID가 파라미터로 포함됩니다. 예를 들어 URL에서 `https://aws.amazon.com/marketplace/fulfillment?productId=ab1234cd-1234-abcd-5678-90abcdef1234&ref_=dtl_psb_continue`{{ab1234cd-1234-abcd-5678-90abcdef1234}}는 제품 ID입니다.
+ **AWS MarketplaceDiscovery API** - 프로그래밍 방식으로 Discovery API를 AWS Marketplace사용하여의 전체 제품 목록에 액세스할 수 있습니다. Discovery API는 프라이빗 API입니다. 액세스를 사용하려면 액세스를 요청해야 합니다. 자세한 내용은 [AWS Marketplace Discovery API에 대한 액세스 제어](discovery-api-access-control.md) 단원을 참조하십시오.

## 용 프라이빗 마켓플레이스 작업AWS Organizations
<a name="private-marketplace-organizations"></a>

계정의 프라이빗 마켓플레이스로 작업하든 조직의 프라이빗 마켓플레이스로 작업하든 동일한 API를 사용합니다. 그러나 조직 내에서 작업할 때는 다음과 같은 차이점이 있습니다.
+ 조직에서 프라이빗 마켓플레이스 기능을 사용하려면 먼저 신뢰할 수 [있는 액세스를 활성화](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html)하여 AWS Organizations데이터에 대한 프라이빗 마켓플레이스 서비스(`private-marketplace.marketplace.amazonaws.com`) 액세스를 제공해야 합니다. 또한 관리 계정에서 [프라이빗 마켓플레이스 서비스 연결 역할을 생성](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html)해야 합니다. 이 역할에는 프라이빗 마켓플레이스가 사용자를 대신하여 프라이빗 AWS Organizations마켓플레이스 리소스를 설명하고 업데이트하는 데 필요한 모든 권한이 포함됩니다. 이러한 작업은 관리 계정에서만 수행할 수 있습니다. 프라이빗 마켓플레이스 관리자 페이지를 사용하여이 활성화를 수행하는 것이 좋습니다. 신규 고객인 경우 *AWS Marketplace구매자 안내서*의 [프라이빗 마켓플레이스를 참조하세요](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-using-service-linked-roles.html). 기존 고객인 경우 *AWS Marketplace구매자 안내서*의 [프라이빗 마켓플레이스 생성 및 관리를](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-catalog-administration.html) 참조하세요.
+ 조직의 프라이빗 마켓플레이스 리소스는 관리 계정에서 생성되고 프라이빗 마켓플레이스의 위임된 관리자인 멤버 계정과 공유됩니다.
+ 프라이빗 마켓플레이스의 위임된 관리자인 멤버 계정에서 프라이빗 마켓플레이스의 객체를 나열할 때는 `SharedWithMe` 필터를 사용하여 객체를 구체적으로 요청해야 합니다. 이는 `ListEntities` 및 `ListChangeSets` 작업 모두에 적용됩니다.

자체 계정의 `Experience` 객체를 나열하려면 다음 코드 예제와 `ListEntities` 같이를 호출합니다.

```
POST /ListEntities HTTP/1.1
Content-Type: application/json

{
    "Catalog":"AWSMarketplace", 
    "EntityType":"Experience"
}
```

그러나 공유된 엔터티를 나열하려면 다음 코드 예제`FilterList`와 `SharedWithMe`같이이 `Scope`인를 추가해야 합니다. 따라서는 사용자 계정 외부에서를 AWS Marketplace검색하여 사용자와 공유되는 엔터티를 찾습니다.

```
POST /ListEntities HTTP/1.1
Content-Type: application/json

{"Catalog":"AWSMarketplace", 
"EntityType":"Experience",
 "FilterList": 
  [{
     "Name": "Scope",
     "ValueList":
      ["SharedWithMe"]
      }]}
```

이 경우 계정 외부의 엔터티(조직의 엔터티)만 반환됩니다.

마찬가지로를 호출하려면 다음 코드 예제와 같이 범위를 설정해야 `ListChangeSets`합니다.

```
POST /ListChangeSets HTTP/1.1
Content-Type: application/json

{"Catalog":"AWSMarketplace", 
 "FilterList": 
  [{
     "Name": "Scope",
     "ValueList":
      ["SharedWithMe"]
      }]}
```

그러면 조직의 공유 프라이빗 마켓플레이스에 적용되는 변경 세트가 반환됩니다.

## 보안 주체를 경험에 연결
<a name="private-marketplace-associate-accounts"></a>

조직에 영향을 미치려면 프라이빗 마켓플레이스 환경에 하나 이상의 보안 주체가 연결되어 있어야 합니다. 단일의 경우 프라이빗 마켓플레이스를 사용하려면 계정을 경험과 연결AWS 계정해야 합니다. 조직에서는 여러 보안 주체에 여러 경험을 적용할 수 있습니다.

**참고**  
조직과 연결된 환경은 조직의 다른 모든 계정에 대한 기본값입니다. 멤버 계정 또는 OU를 다른 환경과 연결하면 OU의 멤버 계정 또는 하위 계정에 대한 다른 환경이 직접 설정됩니다.
프라이빗 마켓플레이스에AWS Organizations 대한 통합이 없는 현재 프라이빗 마켓플레이스 고객인 경우 관리 계정과 연결된 환경은 조직의 다른 모든 계정에 대한 기본값입니다.

보안 주체를 환경에 연결하려면 다음 코드 예제와 같이 `AssociateAudience` 변경 유형을 `StartChangeSet` 작업과 함께 사용합니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-example01@1"
      },
      "ChangeType": "AssociateAudience",
      "DetailsDocument":
      {
        "Name": "AudienceName",
        "Description": "Audience example.",
        "Principals":
        [
          "012345678901",
          "ou-abcd-01234567",
          "o-0123456789"
        ]
      }
    }
  ],
  "ChangeSetName": "Set Audience for experience 01"
}
```

*대상*은와 연결된 *보안 주체* 목록입니다`Experience`. 보안 주체는 ID로 정의된 , AWS 계정조직 단위 또는 조직입니다. `Principals`는 목록이므로 경험과 연결할 여러 보안 주체를 포함할 수 있습니다. 첫 번째 호출 후 `AssociateAudience` 변경 유형에 대한 후속 호출은 경험을 위해 연결에 보안 주체를 추가합니다.

경험에서 계정을 제거할 수도 있습니다. 다음 코드 예제와 같이 `DisassociateAudience` 변경 유형을 사용하여이 작업을 수행합니다.

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-example01@02"
      },
      "ChangeType": "DisassociateAudience",
      "DetailsDocument":
      {
        "Principals":
        [
          "012345678901",
          "ou-abcd-01234567",
          "o-0123456789"
        ]
      }
    }
  ],
  "ChangeSetName": "Disassociate audience example"
}
```

**참고**  
보안 주체는 하나의 환경에만 직접 연결할 수 있습니다. 보안 주체가 한 경험과 직접 연결되지 않도록 다른 경험으로 이동하려면 보안 주체를 초기 경험과 연결 해제한 다음 두 번째 경험과 연결해야 합니다.

## 프라이빗 마켓플레이스 경험 보관 및 재활성화
<a name="archiving-and-reactivating-a-private-marketplace-experience-capi"></a>

프라이빗 마켓플레이스 경험을 보관하여 제거할 수 있습니다. 보관된 경험은 업데이트하거나 조직의 계정을 관리하는 데 사용할 수 없습니다. 보관된 경험과 연결된 대상이 있는 경우 해당 대상을 다른 경험과 연결할 수 있습니다. 나중에 언제든지 보관된 경험을 다시 활성화할 수 있습니다. 관리 계정 또는 프라이빗 마켓플레이스의 위임된 관리자인 멤버 계정의 관리자는 경험을 아카이브하고 다시 활성화할 수 있는 권한이 있습니다. 프라이빗 마켓플레이스에 대한 AWS Organizations통합이 없는 현재 프라이빗 마켓플레이스 고객인 경우 경험을 생성한 계정의 관리자는 경험을 아카이브하고 다시 활성화할 수 있는 권한이 있습니다.

**참고**  
경험을 보관하기 전에 반드시 비활성화해야 합니다. 경험 비활성화에 대한 자세한 내용은 구매자 안내서의 [프라이빗 마켓플레이스 구성을 참조하세요](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-catalog-administration.html#configure-your-private-marketplace). *AWS Marketplace* 

경험을 아카이브하려면 다음 코드 예제와 같이 `RestrictExperience` 변경 유형을 `StartChangeSet` 작업과 함께 사용합니다.

```
POST /StartChangeSet HTTP/1.1 
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "RestrictExperience",
      "DetailsDocument":
      {},
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example"
      }
    }
  ]
}
```

경험을 다시 활성화하려면 다음 코드 예제와 같이 `ReviveExperience` 변경 유형을 `StartChangeSet` 작업과 함께 사용합니다.

```
POST /StartChangeSet HTTP/1.1 
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "ReviveExperience",
      "DetailsDocument":
      {},
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example"
      }
    }
  ]
}
```

## 프라이빗 마켓플레이스 API의 오류
<a name="private-marketplace-error-codes"></a>

다음 오류는 카탈로그 API의 프라이빗 AWS Marketplace마켓플레이스 작업에만 해당됩니다.


<table>
<thead>
  <tr><th>유형 변경</th><th>오류 코드</th><th>오류 메시지</th><th>설명</th></tr>
</thead>
<tbody>
  <tr><td colspan="4">Errors returned directly by the StartChangeSet action</td></tr>
  <tr><td>모두</td><td>422</td><td>문서가 잘못된 JSON 형식임</td><td>잘못된 JSON 입력이 사용되었습니다. 구문을 확인하세요.</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>422</td><td>Ids 배열의 값은 고유해야 합니다.</td><td>단일 변경 요청에 동일한 제품을 여러 번 포함할 수 없습니다.</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>422</td><td>Ids 배열의 누적 값 수는 50보다 작거나 같아야 합니다.</td><td>단일 변경 요청에서 최대 50개의 제품을 허용하거나 거부할 수 있습니다.</td></tr>
  <tr><td colspan="4">Errors found by calling the DescribeChangeSet action</td></tr>
  <tr><td>CreateBrandingSettings, UpdateBrandingSettings</td><td>INVALID\_URL</td><td>입력 URL에서 이미지를 가져올 수 없음</td><td>의 로고 필드에 대해 유효하고 연결 가능한 URL을 지정해야 합니다`BrandingSettings`.</td></tr>
  <tr><td>CreateBrandingSettings, UpdateBrandingSettings</td><td>INVALID\_IMAGE</td><td>유형, 콘텐츠 또는 파일 크기에 대한 이미지 확인이 실패했습니다. 크기가 500KB 이하인 .png 및 .svg 파일 유형만 지원됩니다.</td><td>이미지 파일은 브랜딩 설정에 대한 로고 요구 사항과 일치해야 합니다.</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>ENTITY\_NOT\_FOUND</td><td>Experience에서 조달 정책 누락</td><td>제품을 허용하거나 거부`ProcurementPolicy`하기 전에를 생성해야 합니다.</td></tr>
  <tr><td>CreateProcurementPolicy</td><td>ENTITY\_ALREADY\_EXISTS</td><td>Experience에 대한 조달 정책이 있습니다.</td><td>프라이빗 마켓플레이스에 대한 단일 조달 정책만 가질 수 있습니다.</td></tr>
  <tr><td>UpdateProcurementPolicy</td><td>ENTITY\_NOT\_FOUND</td><td>Experience에서 조달 정책 누락</td><td>조달 정책을 업데이트`ProcurementPolicy`하기 전에를 생성해야 합니다.</td></tr>
  <tr><td>CreateBrandingSettings</td><td>ENTITY\_ALREADY\_EXISTS</td><td>Experience에 대한 브랜딩 설정이 존재합니다.</td><td>프라이빗 마켓플레이스에 대한 단일 브랜딩 설정만 가질 수 있습니다.</td></tr>
  <tr><td>UpdateBrandingSettings</td><td>ENTITY\_NOT\_FOUND</td><td>Experience에서 누락된 브랜딩 설정</td><td>브랜딩 설정을 업데이트하기 전에 `BrandingSettings`개체를 생성해야 합니다.</td></tr>
  <tr><td>AssociateAudience</td><td>CALLER\_NOT\_AUTHORIZED</td><td>발신자가 작업을 실행할 권한이 없음</td><td>작업을 호출할 권한이 있어야 합니다. 추가되는 계정은 동일한 조직에 있어야 합니다.</td></tr>
  <tr><td>CreateExperience</td><td>CALLER\_NOT\_AUTHORIZED</td><td>발신자가 경험을 생성할 권한이 없습니다.</td><td>경험을 생성할 수 있는 권한이 있어야 합니다.</td></tr>
  <tr><td>AssociateAudience</td><td>ENTITY\_ALREADY\_EXISTS</td><td>경험이 이미 {accountId} 계정과 연결되어 있습니다. 업데이트하기 전에 이전 경험 연결 해제</td><td>단일 환경만 계정과 연결할 수 있습니다. 새 환경을 연결하기 전에 현재 환경의 연결을 해제합니다.</td></tr>
  <tr><td>AssociateAudience, DisassociateAudience</td><td>ENTITY\_IN\_USE</td><td>선택한 계정에 대해 이미 충돌하는 변경 사항이 진행 중입니다. 나중에 다시 시도</td><td>연결을 변경하기 위한 다른 변경 요청이 이미 진행 중인 동안에는 계정과의 연결을 변경할 수 없습니다.</td></tr>
</tbody>
</table>


## 프라이빗 마켓플레이스에서 정의한 개체 유형
<a name="entity-types-defined-by-private-marketplace"></a>

다음 표에는 각각을 지정할 수 있는 프라이빗 마켓플레이스 엔터티 유형, 용도 및 작업이 나열되어 있습니다. 각 엔터티 유형을 사용하여 (IAM) 정책에서 사용할 수 있는 리소스 Amazon 리소스 이름AWS Identity and Access Management(ARN)을 지정할 수 있습니다. ARN 형식에 대한 자세한 내용은 섹션을 참조하세요[카탈로그 API 엔터티](catalog-apis.md#catalog-api-entities).


| 개체 | 용도 | 작업 | 
| --- | --- | --- | 
| `Experience` | 프라이빗 마켓플레이스에 대한 최상위 설정을 저장합니다. | `StartChangeSet`<br />`DescribeEntity` | 
| `BrandingSettings` | 프라이빗 마켓플레이스의 브랜딩 설정을 저장합니다. | `DescribeEntity` | 
| `ProcurementPolicy` | 조달 설정 및 제품 목록을 프라이빗 마켓플레이스에 저장합니다. | `DescribeEntity` | 
| `Audience` | 프라이빗 마켓플레이스와 연결된 보안 주체의 세부 정보를 저장합니다. | `DescribeEntity` | 