別の AWS アカウントから Amazon API Gateway の API にアクセスする方法を教えてください。

所要時間2分
0

別の AWS アカウントから Amazon API Gateway の API にアクセスしたいのですが。これを行うにはどうすればよいですか?

簡単な説明

パブリック API エンドポイント (リージョン or エッジ最適化) には、パブリックエンドポイントステージ URL またはカスタムドメイン名から直接アクセスできます。

プライベート REST API エンドポイントには、インターフェイス VPC エンドポイントを使用して Amazon Virtual Private Cloud (Amazon VPC) の仮想プライベートクラウドからアクセスできます。

Amazon API Gateway エンドポイントには、クロスアカウントアクセスによる AWS Identity and Access Management (IAM) 認証を使用してアクセスできます。

解決方法

パブリック API エンドポイント

API Gateway パブリックエンドポイントには、API ステージ URL から直接アクセスできます。例: https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}

パブリックホストゾーンのカスタムドメイン名を使用して API Gateway パブリックエンドポイントにアクセスすることもできます。

注: カスタムドメイン名は、プライベート API ではサポートされていません。

詳細については、「How can I set up a custom domain name for my API Gateway API?」(API Gateway API のカスタムドメイン名を設定するにはどうすればよいですか?) を参照してください。

プライベート REST API エンドポイント

インターフェイスエンドポイントを使用して、Amazon Virtual Private Cloud (Amazon VPC) で別の AWS アカウントの API Gateway プライベート REST API にアクセスできます。

プライベート REST API が AWS アカウントにあり、別のアカウントからアクセスしたい場合は、リソースポリシーを編集できます。

詳細については、「インターフェイス VPC エンドポイントを使用して、別の AWS アカウントの API Gateway プライベート REST API にアクセスする方法を教えてください。」を参照してください。

IAM 認証を使用する API

IAM 認証を使用するクロスアカウントアクセスで API Gateway API にアクセスするには、追加の設定が必要です。ソースアカウントの IAM ロールには、次のようなリソースポリシーで明示的なアクセスが許可されている必要があります。

REST API

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::account-id-2:user/Alice",
          "account-id-2"
        ]
      },
      "Action": "execute-api:Invoke",
      "Resource": [
        "arn:aws:execute-api:us-east-1:{account-id}:{api-id}/*/*/*"
      ]
    }
  ]
}

詳細については、「API Gateway REST API の IAM 認証を有効にするにはどうすればよいですか?」を参照してください。

HTTP API

リソースポリシーを使用してクロスアカウントに IAM 認証を提供するオプションは、API Gateway HTTP API では使用できません。

sts:AssumeRole API アクションを使用して、HTTP API アカウントのロールを引き受けることができます。引き受けたロールは、別のアカウントで HTTP API を呼び出すために使用できる一時的なセキュリティ認証情報を提供します。

詳細については、「API Gateway HTTP API 用にクロスアカウント IAM 認証を指定するにはどうすればよいですか?」を参照してください。


関連情報

Amazon API Gateway でのプライベート API の作成

例: 別の AWS アカウントのユーザーに API の使用を許可する

コメントはありません

関連するコンテンツ