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

API を管理するためのアクセスの制御

このセクションでは、API Gateway での API の作成、デプロイ、更新を誰に許可するか誰に許可しないかを制御するための IAM ポリシーステートメントを記述する方法について説明します。また、API 管理サービスに関連する Action フィールドと Resource フィールドの形式など、ポリシーステートメントのリファレンスも提供します。

IAM ポリシーを使用した API Gateway API の作成と管理を誰に許可するかを制御する

API Gateway の API 管理サービスを使用した API の作成、デプロイ、更新を誰に許可するか誰に許可しないかを制御するには、次のポリシーテンプレートで示すように、必要なアクセス権限を設定した IAM ポリシードキュメントを作成します。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Permission", "Action": [ "apigateway:HTTP_VERB" ], "Resource": [ "arn:aws:apigateway:region::resource1-path", "arn:aws:apigateway:region::resource2-path", ... ] } ] }

ここでは、Permission として Allow または Deny を使用し、ポリシーステートメントに定めるアクセス権限をそれぞれ付与または拒否します。詳細については、「AWS IAM アクセス権限の概要」を参照してください。

HTTP_VERB は、API Gateway でサポートされている HTTP 動詞のいずれかです。* を使用すると、任意の HTTP 動詞を使用できます。

Resource は、RestApiResourceMethodIntegrationDocumentationPartModelAuthorizerUsagePlan など、影響を受ける API エンティティの ARN のリストです。詳細については、「API Gateway で API を管理するためのアクセス権限のリソースの形式。」を参照してください。

複数の異なるポリシーステートメントを結合することで、個々のユーザー、グループ、または役割のアクセス権限をカスタマイズし、選択された API エンティティにアクセスして、それらのエンティティに対して指定されたアクションを実行できます。たとえば、次のようなポリシーを作成すると、指定された API のドキュメントパーツの作成、発行、更新、削除と API エンティティの表示を行うためのアクセス権限をドキュメントチームに付与できます。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET" ], "Resource": [ "arn:aws:apigateway:region::/restapis/api-id/*" ] }, { "Effect": "Allow", "Action": [ "apigateway:POST", "apigateway:PATCH", "apigateway:DELETE" ], "Resource": [ "arn:aws:apigateway:region::/restapis/api-id/documentation/*" ] } ] }

すべてのオペレーションを担当する API 開発のコアチームの場合は、次のような IAM ポリシーを作成して、より広範なアクセス権限をチームに付与できます。

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

API Gateway で API を管理するための IAM ポリシーのステートメントの参照

以下では、API Gateway API エンティティを管理するためのアクセス権限を付与または拒否するために IAM ポリシーステートメントで使用する Action 要素と Resource 要素の形式について説明します。

API Gateway で API を管理するためのアクセス権限のアクションの形式

API 管理の Action 式には、以下の一般的な形式があります。

Copy
apigateway:action

action が、以下の API Gateway アクションの 1 つである場合。

  • *。以下のすべてのアクションを表します。

  • GET。リソースに関する情報を取得するために使用します。

  • POST。子リソースを作成するために主に使用します。

  • PUT。リソースを更新するために主に使用します (推奨されていませんが、子リソースを作成するために使用できます)。

  • DELETE。リソースを削除するために使用します。

  • PATCH。リソースを更新するために使用できます。

  • HEAD。GET と同じですが、リソースの表現を返しません。HEAD はテストシナリオで主に使用します。

  • OPTIONS。対象サービスに使用できる通信オプションに関する情報を取得するために呼び出し元が使用できます。

Action 式のいくつかの例は以下の通りです。

  • apigateway:*。API Gateway のすべてのアクションを表します。

  • apigateway:GET。API Gateway の GET アクションのみを表します。

API Gateway で API を管理するためのアクセス権限のリソースの形式。

API 管理の Resource 式には、以下の一般的な形式があります。

Copy
arn:aws:apigateway:region::resource-path-specifier

ここで、region は、ターゲット AWS リージョン (us-east-1、またはサポートされているすべての AWS リージョンを表す * など) であり、resource-path-specifier はターゲットリソースへのパスです。

以下に示しているのは、いくつかのリソース式の例です。

  • arn:aws:apigateway:region::/restapis/*。AWS リージョンが region の、すべてのリソース、メソッド、モデル、ステージを表します。

  • arn:aws:apigateway:region::/restapis/api-id/*。AWS リージョンが region で、識別子が api-id の API の、すべてのリソース、メソッド、モデル、ステージを表します。

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/*。AWS リージョンが region で、識別子が api-id の API で、すべてのリソースと、識別子が resource-id のリソースのすべてのメソッドを表します。

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/*。AWS リージョンが region で、識別子が api-id の API で、識別子が resource-id のリソースのすべてのメソッドを表します。

  • arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/GET。AWS リージョンが region で、識別子が api-id の API で、識別子が resource-id のリソースの GET メソッドのみを表します。

  • arn:aws:apigateway:region::/restapis/api-id/models/*。AWS リージョンが region で、識別子が api-id の API のすべてのメソッドを表します。

  • arn:aws:apigateway:region::/restapis/api-id/models/model-name。AWS リージョンが region で、識別子が api-id の API で、名前が model-name のモデルを表します。

  • arn:aws:apigateway:region::/restapis/api-id/stages/*。AWS リージョンが region で、識別子が api-id の API のすべてのステージを表します。

  • arn:aws:apigateway:region::/restapis/api-id/stages/stage-name。AWS リージョンが region で、識別子が api-id の API で、名前が stage-name のステージのみを表します。