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 Marketplace私有市場中的體驗。不過,請先確定您的使用者或角色可以存取您要呼叫的 API 功能。

使用 AWS Identity and Access Management(IAM) 建立使用者和角色,並指派將有限許可授予最終使用者的政策。這些政策定義使用者或角色可以透過 對資源採取的動作AWS Marketplace Catalog API。

例如,您可以定義工程、行銷和定價等角色。然後,您可以將組織中的使用者新增至工程角色。在該角色中,可能會授予他們啟動變更請求的許可,以發佈新版本的賣方產品。不過,工程角色不允許使用者列出所有變更集。

注意

若要在 銷售產品AWS Marketplace,AWS 帳戶您的 必須設定為賣方帳戶。如需成為AWS Marketplace賣方的詳細資訊,請參閱 AWS Marketplace賣方指南中的賣方入門

您可以使用 AWS受管政策,也可以建立自己的 IAM 政策,比AWS受管政策中可用的政策更精細地控制。如需這些方法的詳細資訊,請參閱下列主題。

允許具有AWS受管政策的動作

您可以使用 管理的政策AWS,將許可授予您的使用者或角色。

若要使用您銷售的產品AWS Marketplace,您可以使用 AWSMarketplaceSellerFullAccess IAM 受管政策,除了其其他許可AWS Marketplace Catalog API之外,該政策還具有 的完整存取權。您可以使用 AWSMarketplaceSellerProductsReadOnly政策授予目錄 API 的唯讀存取權。如需詳細資訊,請參閱 賣方指南中的控制對 的存取AWS Marketplace 管理入口網站、賣方的政策與許可,以及AWS Marketplace賣方的 AWS 受管政策AWS Marketplace AWS Marketplace

若要管理私有市集,您可以使用 AWSPrivateMarketplaceAdminFullAccess IAM 受管政策,該政策具有為您的帳戶或AWS組織建立和編輯私有市集的完整存取權。如需詳細資訊,請參閱《 買方指南》中的控制對AWS Marketplace訂閱的存取建立私有市集管理員,以及買方的 AWS 受管政策。 AWS Marketplace AWS Marketplace

或者,您可以建立自己的 IAM 政策,以擁有比 AWS受管政策中可用的更精細的控制。使用下列主題來建立您自己的 IAM 政策。

允許對所有資源執行動作

資源是動作可以採取行動的物件。不是每個資源類型都能夠由每個動作指定。某些資源類型僅適用特定動作。如需詳細資訊,請參閱《服務授權參考》中的AWS Marketplace目錄的動作、資源和條件索引鍵

Catalog API 中有兩種資源類型:

若要允許 使用者或角色對 中的所有實體進行變更AWS 帳戶,您可以新增下列 IAM 政策。使用此政策,使用者或角色可以在所有資源 () 上使用 StartChangeSet動作"*"

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet" ], "Resource": "*" } ] }

如需有關適用於目錄 API 的所有動作的資訊,請參閱《服務授權參考》中的AWS Marketplace目錄的動作、資源和條件索引鍵

允許對特定資源執行動作

注意

只有在與目錄 API 搭配使用時,才支援 StartChangeSet動作的資源層級許可和條件內容金鑰。與 搭配使用時,不支援它們AWS Marketplace 管理入口網站

您可以使用資源層級許可來允許變更特定資源,而不是允許變更所有資源。

例如,您可以允許變更 中的特定賣方產品,AWS 帳戶而非所有賣方產品。您可以在 IAM 政策的 中指定賣方產品的 Amazon Resource Name Resource (ARN)。

注意

若要使用建立新變更集的動作來指定精細的資源層級許可,您也需要在資源清單中包含 ChangeSet ARN。ChangeSet ARN 必須包含萬用字元 (/*),以符合如所示建立的任何新變更集 ID。

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example1-abcd-1234-5ef6-7890abcdef12", "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*" ] } ] }

對於另一個範例,您可以允許對私有市場中的特定體驗進行變更,而不是對所有體驗進行變更。您可以透過在 IAM 政策的 中指定體驗Resource的 ARN 來執行此操作。

注意

若要使用建立新變更集的動作來指定精細的資源層級許可,您也需要在資源清單中包含 ChangeSet ARN。ChangeSet ARN 必須包含萬用字元 (/*),以符合如所示建立的任何新變更集 ID。

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Experience/exp-example12345", "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*" ] } ] }

允許具有特定ChangeType條件索引鍵的動作

注意

只有在與目錄 API 搭配使用時,才支援 StartChangeSet動作的資源層級許可和條件內容金鑰。與 搭配使用時,不支援它們AWS Marketplace 管理入口網站

Catalog API 動作StartChangeSet有數種不同的變更類型。您只能允許存取特定變更類型。

例如,您可能只想要允許變更賣方產品的中繼資料,例如產品標題,不允許新增產品版本。在此範例中,變更類型UpdateInformation允許變更賣方產品的中繼資料,包括標題。如需不同變更類型的詳細資訊,請參閱《 AWS Marketplace Catalog API 參考》中的使用賣方產品和使用私有市場

若要將動作限制為一或多個變更類型,請在條件索引鍵ChangeType中指定 。在下列範例 IAM 政策中,條件運算子StringEquals指定只有在 ChangeType符合 時,才允許 動作UpdateInformation。如需條件索引鍵的詳細資訊,請參閱《AWS Identity and Access Management 使用者指南》中的條件運算子

注意

若要使用建立新變更集的動作來指定精細的資源層級許可,您也需要在資源清單中包含 ChangeSet ARN。ChangeSet ARN 必須包含萬用字元 (/*),以符合如所示建立的任何新變更集 ID。

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet" ], "Resource": [ "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/AmiProduct/example1-abcd-1234-5ef6-7890abcdef12", "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*" ], "Condition": { "StringEquals": { "catalog:ChangeType": "UpdateInformation" } } } ] }

允許具有特定aws:ResourceTag條件索引鍵的動作

注意

只有在與目錄 API 搭配使用時,才支援 StartChangeSet動作的資源層級許可和條件內容金鑰。與 搭配使用時,不支援它們AWS Marketplace 管理入口網站

您可以允許對一組實體執行動作,而不必繼續更新政策並指定可能增加的實體 ARNs 清單。您可以使用資源標記來執行此操作。將標籤新增至資源可讓您根據這些資源的標籤來控制對這些資源的存取。例如,您可能想要允許描述一組賣方產品,而不為每個賣方產品指定個別 ARNs。

例如,下列 IAM 政策允許對標籤索引鍵為 product-team且標籤值為 的任何實體資源 ("*") 執行 DescribeEntity動作team-xyz

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:DescribeEntity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/product-team": "team-xyz" } } } ] }

您也可以允許描述和取消使用特定標籤建立的變更集。

例如,下列 IAM 政策允許對任何標籤索引鍵為 DescribeChangeSet且標籤值為 的變更集資源 ("*") 執行 product-teamCancelChangeSet動作team-xyz

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:DescribeChangeSet", "aws-marketplace:CancelChangeSet" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/product-team": "team-xyz" } } } ] }

此外,只有在實體具有特定標籤時,您才能允許在實體上啟動變更集。例如,您可以允許變更具有特定標籤的賣方產品。

例如,下列 IAM 政策允許對標籤索引鍵為 product-team且標籤值為 的任何實體資源 ("*") 執行 StartChangeSet動作team-xyz。此外,需要 TagResource動作,以便在建立變更集時,使用相同的標籤索引鍵和值進行標記。

注意

如果您允許 StartChangeSet 動作的政策包含符合特定標籤的條件,則相同的政策也必須包含 TagResource動作。這是因為政策條件必須符合實體上的標籤和新建立的變更集上的標籤,這些變更集是由變更請求產生。因此,它需要使用者或角色也具有標記新建立變更集的許可。如需啟動變更集並標記變更集的範例,請參閱 範例:將標籤新增至實體,並在建立期間變更集

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet", "aws-marketplace:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/product-team": "team-xyz" } } } ] }

建立自訂 IAM 角色

想要使用轉售授權 ChangeType 或 CPPO ChangeType 的客戶需要建立自訂 AWS Identity and Access Management(IAM) 角色。這將支援建立轉售授權產品生命週期。

建立自訂 IAM 角色
  1. 登入 IAM 主控台 (https://console.aws.amazon.com/iam/://)。

  2. Access management (存取管理) 下,請選擇 Policies (政策)。

  3. 選擇 Create policy (建立政策)。

  4. 針對步驟 1:指定許可

    1. 政策編輯器中,選取 JSON 按鈕,然後新增下列政策:

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowResaleAuthorizationShareActionsRAMCreate", "Effect": "Allow", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceShare" ], "Resource": [ "arn:aws:ram:*:*:*" ], "Condition": { "ArnLikeIfExists": { "ram:ResourceArn": "arn:aws:aws-marketplace:*:*:AWSMarketplace/ResaleAuthorization/*" }, "StringEqualsIfExists": { "ram:RequestedResourceType": "aws-marketplace:Entity" } } }, { "Sid": "AllowResaleAuthorizationShareActionsRAMAccept", "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:GetResourceShareInvitations", "ram:GetResourcePolicies", "ram:GetResourceShareAssociations" ], "Resource": [ "arn:aws:ram:*:*:*" ] }, { "Sid": "AllowResaleAuthorizationShareActionsMarketplace", "Effect": "Allow", "Action": [ "aws-marketplace:PutResourcePolicy", "aws-marketplace:GetResourcePolicy", "aws-marketplace:DescribeEntity" ], "Resource": "arn:aws:aws-marketplace:*:*:AWSMarketplace/ResaleAuthorization/*" } ] }
    2. 選擇下一步

  5. 對於步驟 2:檢閱和建立

    1. 如需政策詳細資訊,請在政策名稱FullResaleAuthorizationAccess下輸入 ,然後輸入選用的描述

    2. 檢閱此政策中定義的許可

    3. 對於新增標籤,新增標籤 (選用)。

    4. 選擇建立政策

      您已建立FullResaleAuthorizationAccess政策。

  6. Access management (存取管理) 下,請選擇 Roles (角色)。

  7. 選擇建立角色

  8. 針對步驟 1:選取信任的實體

    1. 對於 Trusted entity type (信任的實體類型),選擇 Custom trust policy (自訂信任政策)。

    2. 將下列自訂信任政策複製並貼到 JSON 編輯器。

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resale-authorization.marketplace.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    3. 選擇下一步

  9. 對於步驟 2:新增許可

    1. 在搜尋列中,輸入 FullResaleAuthorizationAccess

    2. 選取 FullResaleAuthorizationAccess 許可政策,然後選擇下一步

  10. 對於步驟 3:名稱、檢閱和建立

  1. 如需角色詳細資訊,請輸入 FullResaleAuthorizationAccess做為角色名稱,然後輸入選用的描述

  2. 步驟 1:選取信任的實體下,請確定您選擇的政策名稱已連接至角色。

  3. 步驟 2:新增許可下,檢閱政策名稱

  4. 步驟 3:新增標籤下,新增標籤 (選用)。

  5. 選擇建立角色

    您已建立 FullResaleAuthorizationAccess角色。

管理 資源上的標籤

您可以從現有的實體或變更集新增、列出和移除標籤。

將標籤新增到資源

若要將標籤新增至實體或變更集,請使用 TagResource API 動作。

請求

POST /TagResource HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ResourceArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ... ] }

請求參數包括:

  • Catalog (字串) – (必要) 必須為 AWSMarketplace

  • ResourceArn (字串) – 變更集或實體的 (必要) ARN。變更集說明您使用目錄 API 所做的變更。實體可以是 中的賣方產品或AWS Marketplace私有市場中的體驗

  • 標籤 (物件陣列) – (必要) 指定每個標籤索引鍵和值的物件清單。允許的物件數量:1–50。

    • 金鑰 (字串) – (必要) 標籤的名稱。

      • Regex 模式 – ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$

      • 字元長度 – 1–128

    • 值 (字串) – (必要) 標籤的值。

      • Regex 模式 – ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$

      • 字元長度 – 0–256

回應

{}

移除 資源的標籤

若要從實體或變更集移除標籤或標籤清單,請使用 UntagResource API 動作。

請求

POST /UntagResource HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ResourceArn": "string", "TagKeys": [ "string" ... ] }

請求參數包括:

  • Catalog (字串) – (必要) 必須為 AWSMarketplace

  • ResourceArn (字串) – 變更集或實體的 (必要) ARN。變更集說明您使用目錄 API 所做的變更。實體可以是 中的賣方產品或AWS Marketplace私有市場中的體驗

  • 標籤 (物件陣列) – (必要) 要移除的標籤索引鍵名稱清單。允許的字串數目:0–256。

回應

{}

列出資源上的所有標籤

若要列出已從變更集或實體新增和移除的所有標籤,請使用 ListTagsForResource API 動作。

請求

POST /ListTagsForResource HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ResourceArn": "string" }

請求參數包括:

回應

{ "ResourceArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ... ] }

請求變更資源時管理標籤

您可以在建立實體或變更集時新增標籤。

範例:建立變更集時將標籤新增至變更集

以下是更新賣方產品的產品中繼資料的StartChangeSet請求範例。此請求透過在 ChangeSetTags 屬性中包含 標籤,將標籤新增至使用此請求建立的變更集。

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType":"UpdateInformation", "Entity": { "Identifier":"example1-abcd-1234-5ef6-7890abcdef12", "Type":"AmiProduct@1.0" }, "Details": "{\"ProductTitle\":\"My updated title\"}" } ], "ChangeSetTags": [ { "Key": "product-team", "Value": "team-xyz" } ] }

如需管理賣方產品的詳細資訊,請參閱《 AWS Marketplace Catalog API 參考》中的使用賣方產品

範例:將標籤新增至實體,並在建立期間變更集

以下是建立私有市場體驗實體的StartChangeSet請求範例。請求透過在 和 ChangeSetTags 屬性中包含標籤,將標籤新增至使用此請求建立的實體資源EntityTags和變更集資源。透過這些標籤,可以指定使用者或角色的許可政策,僅允許描述或取消此請求建立的變更集,或僅允許在此請求建立的實體上建立進一步的變更集。如需詳細資訊,請參閱准許只使用標籤建立實體和變更集

POST /StartChangeSet HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "ChangeSet": [ { "ChangeType": "CreateExperience", "Entity": { "Type": "Experience@1.0" }, "Details": "{\"Name\": \"ExamplePrivateMarketplace\"}", "EntityTags": [ { "Key": "product-team", "Value": "team-xyz" } ] } ], "ChangeSetTags": [ { "Key": "product-team", "Value": "team-xyz" } ] }

如需管理私有市集的詳細資訊,請參閱《 AWS Marketplace Catalog API參考》中的使用私有市集

授予許可以管理 資源上的標籤

若要允許使用者或角色在所有實體或變更集上新增、移除和列出標籤,他們需要下列 IAM 政策。

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:TagResource", "aws-marketplace:UntagResource", "aws-marketplace:ListTagsForResource" ], "Resource": "*" } ] }

只有在資源具有特定標籤時,才授予許可來管理資源上的標籤

您可以允許使用者或角色在具有特定標籤的實體或變更集上新增、移除和列出標籤。下列 IAM 政策允許對標籤索引鍵為 product-team且標籤值為 的任何實體資源 ("*") 執行這些動作team-xyz

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:TagResource", "aws-marketplace:UntagResource", "aws-marketplace:ListTagsForResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/product-team": "team-xyz" } } } ] }

准許只使用標籤建立實體和變更集

注意

只有在與目錄 API 搭配使用時,才支援 StartChangeSet動作的資源層級許可和條件內容金鑰。與 搭配使用時,不支援它們AWS Marketplace 管理入口網站

您可以在建立實體或變更集時強制執行標記。新增下列政策,以允許 StartChangeSetTagResource動作,並具有指定標籤索引鍵相符項目product-team和標籤值相符項目的條件team-xyz。此政策條件必須符合新建立實體上的 標籤,以及新建立變更集上因建立請求而產生的 標籤。如需在建立時標記實體的範例,請參閱 範例:將標籤新增至實體,並在建立期間變更集

對於現有的實體,此政策也會在請求變更這些實體時強制執行標記變更集。這也需要現有實體具有此現有標籤。這是因為政策條件必須符合現有實體上的標籤,以及因變更請求而新建立的變更集。如需新增標籤以變更請求的範例,請參閱 範例:建立變更集時將標籤新增至變更集

{ "Statement": [ { "Effect": "Allow", "Action": [ "aws-marketplace:StartChangeSet", "aws-marketplace:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/product-team": "team-xyz" } } } ] }