View a markdown version of this page

AWS Marketplace API を使用してリソースを共有する - AWS Marketplace

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 エンティティにアタッチできるリソースポリシーは 1 つだけです。

  • AWS Marketplace エンティティを共有するには、そのエンティティを で所有する必要があります AWS アカウント。この要件は、エンティティをアカウントで割り当てまたはプロビジョニングする必要があることを意味します。自分と共有されている AWS Marketplace エンティティを共有することはできません。

AWS Marketplace エンティティを共有する

AWS Marketplace リソース共有を使用すると、エンティティ所有者は自分のエンティティを他の AWS アカウント と共有できます AWS Marketplace。エンティティ所有者はISVs とチャネルパートナーです。共有できるエンティティは、製品、オファー、再販認可です。

注記

現時点では、エンティティのみを共有できます。のエンティティ AWS Marketplace には、AmiProductAudience、、BrandingSettingsExperienceContainerProductおよび が含まれますProcurementPolicy

詳細については AWS RAM、AWS RAM 「 ユーザーガイド」を参照してください。共有リソースの管理の詳細については、「 AWS RAM ユーザーガイド」の「共有 AWS リソースの使用」を参照してください。

共有アカウントとして、共有するリソースに対して読み取り専用または両方の読み取り/書き込みを設定できます。これらのアクセス許可により、消費アカウントが共有されているリソースに対して実行できるオペレーションが決まります。

  • 共有アカウント – 共有され、 AWS RAM 管理者が を使用してリソース共有を作成する AWS リソース AWS RAM。

  • 消費アカウント – AWS アカウント リソースを共有する先の 。リソース共有は、アカウント全体をプリンシパルとして指定することも、リソースタイプによってはアカウント内の個々のロールやユーザーを指定することもできます。

AWS Marketplace エンティティを共有するには、それをリソース共有に追加する必要があります。リソース共有とは、 AWS アカウント間で自身のリソースを共有するための AWS RAM リソースです。リソース共有では、共有対象のリソースと、共有先のコンシューマーを指定します。 AWS Marketplace コンソールを使用してエンティティを共有する場合は、既存のリソース共有に追加します。 AWS Marketplace エンティティを新しいリソース共有に追加するには、まず AWS RAM コンソールを使用してリソース共有を作成する必要があります。

AWS Marketplace コンソール、 AWS RAM コンソール、または AWS Command Line Interface () を使用して、所有している AWS Marketplace エンティティを共有できますAWS CLI。

AWS RAM コンソールを使用して所有している AWS Marketplace エンティティを共有するには

「AWS RAM ユーザーガイド」の「リソース共有の作成」を参照してください。

を使用して所有している AWS Marketplace エンティティを共有するには AWS CLI

create-resource-share コマンドを使用します。

注記

リソースベースのポリシーをサポートするエンティティなどのリソースタイプでは、 を使用してリソースを共有 AWS RAM し、追加 AWS RAM 機能を使用できます。詳細については、「 AWS RAM ユーザーガイド」の「リソースベースのポリシー」を参照してください。 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 ユーザーガイド」の「Service quotas for AWS RAM」を参照してください。

を通じてエンティティを共有する場合 AWS Marketplace Catalog API:

  • エンティティは、PutResourcePolicyリクエストが成功するとすぐに共有され、消費アカウントからの入力はありません。

  • 消費アカウントは、 を OwnershipTypeに設定ListEntitiesして を通じて共有エンティティを検出できませんSHARED。代わりに、共有アカウントの所有者は、共有エンティティ ID を消費アカウントに通知する必要があります。

注記

ユースケースで AWS RAM サービスクォータを超える可能性のあるリソースを共有する必要がある場合、または消費アカウントから直接入力せずにリソースを共有する場合は、 を通じて共有することを検討してください AWS Marketplace Catalog API。他のすべてのユースケースでは、 を使用して AWS Marketplace リソースを共有 AWS RAM することを検討してください。

以下のセクションでは、 を使用してエンティティのリソースベースのポリシーを設定、表示、または削除 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": "" }