メニュー
Amazon API Gateway
開発者ガイド

Amazon API Gateway の使用開始

Amazon API Gateway では、3 つのタイプのバックエンドにアクセスするための安定したスケーラブルなプログラミングインターフェイスをクライアントに提供できます。AWS Lambda 関数の呼び出し、他の AWS サービスの呼び出し、そして HTTP ウェブサイトまたはウェブページへのアクセスです。これを行うには、API Gateway API を作成して各 API メソッドをバックエンドエンドポイントに統合します。各バックエンドエンドポイントは、統合タイプに関連付けられています。API Gateway での API 統合タイプの詳細については、「API Gateway API 統合タイプを選択する」を参照してください。

Amazon API Gateway の使用を開始するには、次のハンズオンウォークスルーで一般的に使用されるバックエンドと統合された簡単な API を作成、デプロイ、およびテストする方法を示します。ウォークスルーで使用されるサンプル API は、サポートされているそれぞれの統合タイプの実装に関わるものを示します。

開始する前に、以下の手順を使用して、開発環境をセットアップします。

API GatewayAPI を構築する準備を整える

初めて Amazon API Gateway を使用する前に、AWS アカウントを所有している必要があります。

AWS アカウントにサインアップします。

AWS アカウントをお持ちでない場合は、次に説明する手順に従ってアカウントを作成してください。

AWS にサインアップするには

  1. https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。

  2. オンラインの手順に従います。

API Gateway で API を作成、設定、およびデプロイするには、適切な AWS Identity and Access Management ポリシーをプロビジョニングしている必要があります。このポリシーは、API Gateway リソース および リンク関係を操作するためのアクセス権限を持っている必要があります。また、API クライアントが API を API Gateway で呼び出すことを許可するよう IAM 権限を設定できます。そうするには、IAM ロールおよびポリシーを作成し、必要に応じて、AWS アカウントでユーザーまたはグループを作成し、IAM ロールおよびポリシーを指定された IAM ユーザーまたはグループに設定します。

IAM ユーザー、グループ、ロール、およびポリシーを AWS アカウントに作成

より良いセキュリティ実施方法として、新しい AWS Identity and Access Management(IAM) ユーザーを作成するか、AWS アカウントの既存ユーザーを使用します。次に、AWS ルートアカウントを使用する代わりに、その IAM ユーザーの認証情報で API Gateway にアクセスします。

ユーザーのアクセスを管理するには、IAM ユーザーを作成し、そのユーザーに API Gateway アクセス権限を付与します。新しい IAM ユーザーを作成する方法については、「IAM ユーザーを作成する」を参照してください。

ユーザーグループのアクセスを管理するには、IAM グループを作成し、そのグループに API Gateway アクセス権限を付与して、1 人以上の IAM ユーザーをそのグループに追加します。IAM グループを作成するには、「Creating IAM Groups」を参照してください。

特定のユーザー、アプリ、またはサービスにアクセス権を委任するには、IAM ロールを作成し、指定されたユーザーまたはグループをそのロールに追加して、ユーザーまたはグループに API Gateway アクセス権限を付与します。IAM ロールを作成するには、「IAM ロールの作成」を参照してください。

API を設定するときは、API のメソッドへのアクセスを制御するよう IAM ロールの ARN を指定します。この ARN は、API を作成する際に準備ができている必要があります。

IAM ポリシーを作成して API Gateway リソースを設定し、デプロイした API を呼び出す

AWS では、アクセス権限はIAM ポリシーとして表されます。AWS は、AWS 管理ポリシーと呼ばれる一連の事前設定された IAM ポリシーを、個々の AWS サービスに提供します。個々の IAM ユーザーは、カスタマー管理ポリシーと呼ばれる、カスタマイズされた IAM ポリシーを作成できます。

IAM コンソールで、あるいは AWS CLI または AWS SDK を使用して、IAM ポリシー、ロール、ユーザー、またはグループを作成できます。作成すると、IAM ポリシーは ARN に参照されます。AWS が管理するポリシーの ARN は、arn:aws:iam::aws:policy/PolicyName 形式です。カスタマー管理ポリシーの ARN は、arn:aws:iam::123456789012:policy/PolicyName 形式です。

たとえば、次は [AmazonAPIGatewayAdministrator] (arn:aws:iam::aws:policy/AmazonAPIGatewayAdministrator) と名付けられた AWS 管理ポリシーです。API を API Gateway で作成、設定、およびデプロイするためのフルアクセスを付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": "arn:aws:apigateway:*::/*" } ] }

アクセス権限をユーザーに付与するには、ユーザーまたはそのユーザーが属するグループにポリシーをアタッチします。詳細については、「管理ポリシーのアタッチ」を参照してください。

前述のポリシーを IAM ユーザーにアタッチすることで、ユーザーの AWS アカウントに関連付けられているすべての API Gateway リソース (arn:aws:apigateway:*::/*) ですべての API Gateway アクション ("Action":["apigateway:*"]) を実行することを可能 ("Effect":"Allow") にします。

作成された API のドキュメントを IAM ユーザーが読み取りおよび作成することを制限するには、Action プロパティの値を "Action": ["apigateway:*"] から "Action":["apigateway:GET", "apigateway:POST"] に置き換え、Resource プロパティの値を ["apigateway:*"] から ["arn:aws:apigateway::123456789012:/restapis/*/documentation/*"] に置き換えることができます)。詳細については、「IAM アクセス権限により API へのアクセスを制御する」を参照してください。

API が呼び出される方法を制御するには、次の [AmazonAPIGatewayInvokeFullAccess] ( arn:aws:iam::aws:policy/AmazonAPIGatewayInvokeFullAccess) の AWS が管理する IAM が API Gateway で API のいずれかの部分を呼び出すためのフルアクセスを提供します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:*:*:*" } ] }

IAM ユーザーが指定された一連の API パーツを呼び出すように制限する方法を学習するには、「IAM アクセス権限により API へのアクセスを制御する」を参照してください。

明示されたアクセス権限をユーザーに付与するには、ユーザー、またはそのユーザーが属するグループにポリシーをアタッチします。ポリシーをアタッチするには、「管理ポリシーのアタッチ」を参照してください。

このドキュメントでは、可能な限り管理ポリシーを使用します。カスタマー管理の IAM ポリシーを作成して使用するには、「カスタマー管理ポリシーを使用する」を参照してください。

注記

前述のステップを完了するには、IAM ポリシーを作成し、IAM ユーザーにアタッチするためのアクセス権限が必要となります。

API Gateway が AWS Lambda または Amazon Simple Storage Service や Amazon Kinesis といった他の AWS サービスと統合されている場合、バックエンドで AWS サービスを呼び出すには API Gateway を信頼されたエンティティとして有効にする必要があります。そうするには、IAM ロールを作成し、サービス固有のアクセスポリシーをロールにアタッチします。これは、Lambda 関数を次の例で示されています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }

次に、以下の信頼ポリシーを追加して、IAM ロールが割り当てられたアタッチされたユーザーに代わって、API Gateway がバックエンド Lambda 関数を呼び出すことを可能にします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

信頼関係を指定しない限り、ユーザーが直接バックエンドにアクセスする権限を付与されたとしても、API Gateway はユーザーに代わってバックエンドを呼び出す権利を拒否されます。

API Gateway API が、IAM ロールとポリシーでクライアントアクセスを制御するよう設定されている場合、クライアントは API リクエストに署名バージョン 4 で署名する必要があります。または、AWS CLI または AWS SDK のいずれかを使用して、リクエスト署名を自動的に処理します。詳細については、「Amazon API Gateway で API を呼び出す」を参照してください。

次のステップ

AWS アカウントにサインアップし、必要な IAM ロールおよびポリシーを作成したので、API Gateway の使用を開始する準備ができました。API Gateway コンソールの例を使用して、最初のシンプルな API を作成するには、「例から API Gateway API を構築する」を参照してください。