

# 在 API Gateway 中共享门户产品
<a name="apigateway-portals-share-resources"></a>

您可以使用 AWS RAM 跨 AWS 账户共享门户产品。当您共享门户产品时，其他账户可以在其自己的门户中使用您的门户产品。通过共享门户产品，您可以创建组织的统一 API 目录，并在整个 API 生态系统中执行治理标准。同时，共享门户产品为 API 提供者提供了灵活性，使其能够在自己的账户中开发、测试和维护 API。

## 注意事项
<a name="apigateway-portals-share-resources-considerations"></a>

以下注意事项可能会影响您共享门户资源的方式：
+ 当您与另一个账户共享产品时，该账户无法修改您的 REST API 的任何属性。这包括集成端点、授权策略或阶段配置。
+ 当您将另一个账户的门户产品添加到您的门户中时，该门户产品的所有者无法查看或控制您门户的任何其他属性。门户产品所有者仅知道该产品正在您的门户中使用。
+ API Gateway 门户产品在 AWS 区域级别共享。
+ 您可以将一个资源共享用于多个主体，在创建资源共享之后，您可以向其中添加多个主体。我们建议您尽可能重用资源共享。
+ 如果两个账户都属于使用 AWS Organizations 的同一组织，则资源共享会自动被接受。您仍然需要使用 AWS RAM 创建资源共享。
+ 如果两个账户都属于使用 AWS Organizations 的同一组织，并且您的组织中已经启用了资源共享，则组织中与您进行共享的所有主体将自动获得对资源共享的访问权限。此过程无需邀请，您可以跳过资源共享。
+ 如果您共享产品的账户未在 **12 小时**内接受资源共享，您必须重新共享该资源。
+ 创建资源共享后，AWS RAM 会更新您产品的产品共享策略，以阻止未获得明确 `allow` 权限的主体访问。有关更多信息，请参阅《IAM 用户指南》中的[确定是允许还是拒绝账户内的请求](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)。

  更新后的资源策略如下所示：

  ```
  {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "apigateway:GetProduct",
                  "apigateway:ListEndpoints",
                  "apigateway:ListPages",
                  "apigateway:GetEndpoint",
                  "apigateway:GetPage"
              ],
              "Resource": [
                  "arn:aws:apigateway:us-east-1:111122223333:/portalproducts/{{product-id}}",
                  "arn:aws:apigateway:us-east-1:111122223333:/portalproducts/{{product-id}}/*"
              ]
          }
      ]
  }
  ```

  AWS RAM 通过添加以下内容，阻止未获得明确允许权限的主体将您的产品添加到其门户：

  ```
  "StringNotEquals": { "aws:PrincipalAccount": "555555555555" }
  ```

要了解如何共享产品，请参阅[在 API Gateway 中与门户所有者共享门户产品](apigateway-portals-share-products.md)。要了解如何将他人与您共享的产品添加到您的门户，请参阅[在 API Gateway 中将共享门户产品添加到您的门户](apigateway-portals-use-shared-products.md)。