

# 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 リージョンレベルで共有されます。
+ 1 つのリソース共有で複数のプリンシパルを使用でき、リソース共有の作成後も新しいプリンシパルを追加できます。可能であれば、リソース共有を再利用することをお勧めします。
+ 両方のアカウントが 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)」を参照してください。