

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

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

# 的访问控制 AWS Marketplace 协议 API
<a name="agreement-api-access-control"></a>

要管理 AWS Marketplace 使用协议服务的协议，您必须确保设置好您的 AWS Identity and Access Management (IAM) 策略和角色。用户必须具备以下条件 policies/permissions 才能执行操作：
+ `CreateAgreementRequest`— 授予用户启动新请求以创建新协议或更新现有协议的权限。
+ `AcceptAgreementRequest`— 向用户授予权限，允许其接受先前创建的以具体化为协议的请求。注意：在接受协议请求时，如果用户提供采购订单，则他们还需要`UpdatePurchaseOrders`获得权限才能执行操作。
+ `GetAgreementEntitlements`— 向用户授予列出协议权利的权限。
+ `CancelAgreement`— 向用户授予取消其参与的有效协议的权限。
+ `ListAgreementCharges`— 向用户授予列出协议费用的权限。
+ `UpdatePurchaseOrders`— 向用户授予更新协议费用的采购订单的权限。
+ `SendAgreementCancellationRequest`— 向用户授予发送取消请求的权限。
+ `AcceptAgreementCancellationRequest`— 允许用户接受卖家为其作为接受者参与的协议而发起的取消请求。注意：用户还需要`CancelAgreement`权限，因为批准取消请求会导致协议取消。
+ `RejectAgreementCancellationRequest`— 允许用户拒绝卖家针对其作为接受者参与的协议而发起的取消请求。
+ `SendAgreementPaymentRequest`— 向用户授予发送付款请求的权限。
+ `AcceptAgreementPaymentRequest`— 允许用户接受卖家为其作为接受者参与的协议而发起的付款请求。
+ `RejectAgreementPaymentRequest`— 允许用户拒绝卖家为其作为接受者参与的协议而发起的付款请求。
+ `GetAgreementCancellationRequest`— 允许用户检索有关他们作为接受者参与的协议的特定取消请求的详细信息。
+ `ListAgreementCancellationRequests`— 允许用户列出他们作为接受者参与的协议的取消请求。
+ `GetAgreementPaymentRequest`— 允许用户检索有关他们作为接受者参与的协议的特定付款请求的详细信息。
+ `ListAgreementPaymentRequests`— 允许用户列出他们作为接受者参与的协议的付款请求。
+ `DescribeAgreement`— 允许用户获取有关其任何协议的详细元数据。
+ `GetAgreementTerms`— 向用户授予获取协议条款详细信息的权限。
+ `SearchAgreements`— 向用户授予搜索其所有协议的权限。

**注意**  
有关这些权限的更多信息，请参阅《卖家指南》中的 [AWS Marketplace 卖家政策和权限以及](https://docs.aws.amazon.com/marketplace/latest/userguide/detailed-management-portal-permissions.html)*《*AWS Marketplace 买AWS Marketplace *家指南》*中的 “[控制 AWS Marketplace 订阅的访问](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-iam-users-groups-policies.html)权限”。

## 允许使用以下操作操作 AWS 托管策略
<a name="agreement-aws-managed-policies"></a>

AWS Marketplace 定义特定于角色的托管策略。您可以对自己的 IAM 身份使用托管策略，默认情况下，这会缩小特定角色的策略范围。使用托管政策将使您能够遵循最佳实践，并在Marketplace推出新功能时接收政策更新。

有关这些权限的更多信息，请参阅《卖家指南》中的 [AWS Marketplace 卖家政策和权限以及](https://docs.aws.amazon.com/marketplace/latest/userguide/detailed-management-portal-permissions.html)*《*AWS Marketplace 买AWS Marketplace *家指南》*中的 “[控制 AWS Marketplace 订阅的访问](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-iam-users-groups-policies.html)权限”。

您不仅限于此处描述的 AWS 托管策略中的权限。您可以使用 IAM 创建具有自定义权限的策略，然后将这些策略添加到 IAM 角色。有关更多信息，请参阅《IAM 用户指南》**中的[管理 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)及[添加 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## 允许使用客户托管策略执行操作
<a name="agreement-customer-managed-policies"></a>

您还可以定义客户托管策略来控制对协议服务 API 的访问权限。您可以根据效果、操作和支持的条件组合自定义策略。

要访问用于管理产品订阅的 AWS Marketplace 协议 API，您可以创建以下策略来允许访问。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:CreateAgreementRequest",
        "aws-marketplace:AcceptAgreementRequest"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws-marketplace:AgreementType": ["PurchaseAgreement"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:CancelAgreement",
        "aws-marketplace:GetAgreementEntitlements",
        "aws-marketplace:UpdatePurchaseOrders",
        "aws-marketplace:ListAgreementCharges"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws-marketplace:AgreementType": ["PurchaseAgreement"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:AcceptAgreementCancellationRequest",
        "aws-marketplace:RejectAgreementCancellationRequest",
        "aws-marketplace:GetAgreementCancellationRequest",
        "aws-marketplace:ListAgreementCancellationRequests",
        "aws-marketplace:CancelAgreement"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws-marketplace:AgreementType": ["PurchaseAgreement"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:AcceptAgreementPaymentRequest",
        "aws-marketplace:RejectAgreementPaymentRequest",
        "aws-marketplace:GetAgreementPaymentRequest",
        "aws-marketplace:ListAgreementPaymentRequests"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws-marketplace:AgreementType": ["PurchaseAgreement"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:DescribeAgreement",
        "aws-marketplace:SearchAgreements",
        "aws-marketplace:GetAgreementTerms"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws-marketplace:AgreementType": ["PurchaseAgreement"]
        },
        "StringEquals": {
          "aws-marketplace:PartyType": "Acceptor"
        }
      }
    }
  ]
}
```

## 使用服务定义的条件键自定义策略
<a name="agreement-condition-keys"></a>

### 使用 AgreementType 条件键
<a name="agreement-condition-agreementtype"></a>

以下声明仅限制`PurchaseAgreement`协议类型的`UpdatePurchaseOrders`操作访问权限。

```
{
  "Effect": "Allow",
  "Action": [
    "aws-marketplace:UpdatePurchaseOrders"
  ],
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "aws-marketplace:AgreementType": ["PurchaseAgreement"]
    }
  }
}
```

### 使用 ProductId 条件键
<a name="agreement-condition-productid"></a>

以下声明限制只能访问`CreateAgreementRequest`和`AcceptAgreementRequest`访问指定的 AWS Marketplace 产品 ID。您可以添加此声明以仅允许创建预先批准的产品编号，例如仅限于 Bedrock 基础模型。

```
{
  "Effect": "Allow",
  "Action": [
    "aws-marketplace:CreateAgreementRequest",
    "aws-marketplace:AcceptAgreementRequest"
  ],
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "aws-marketplace:ProductId": [
        "model-product-id-1",
        "model-product-id-2"
      ]
    }
  }
}
```

### 使用 PartyType 条件键
<a name="agreement-condition-partytype"></a>

如果用户是协议的提议者，则以下声明允许用户阅读任何协议的详细信息。

```
{
  "Effect": "Allow",
  "Action": [
    "aws-marketplace:DescribeAgreement"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws-marketplace:PartyType": "Proposer"
    }
  }
}
```