Amazon API Gateway のアクセスポリシー言語の概要 - Amazon API Gateway

Amazon API Gateway のアクセスポリシー言語の概要

このページでは、Amazon API Gateway リソースポリシーで使用される基本的な要素について説明します。

リソースポリシーは、IAM ポリシーと同じ構文を使用して指定されます。ポリシー言語の詳細については、IAM ユーザーガイドの「IAM でのポリシーとアクセス許可」および「IAM JSON ポリシーのリファレンス」を参照してください。

指定されたリクエストを AWS のサービスが許可または拒否する方法については、「リクエストの許可または拒否を決定する」を参照してください。

アクセスポリシーの一般的なエレメント

基本的に、リソースポリシーには以下のエレメントが含まれます。

  • リソース – アクセス許可を許可または拒否できる Amazon API Gateway のリソースが API です。ポリシーでは、Amazon リソースネーム (ARN) を使用して、リソースを識別します。略式構文を使用することもできます。この構文はリソースポリシーの保存時に API Gateway によって完全な ARN に自動的に展開されます。詳細については、「API Gateway リソースポリシーの例」を参照してください。

    完全な Resource 要素の形式については、「API Gateway で API を実行するためのアクセス許可のリソース形式」を参照してください。

  • アクション – Amazon API Gateway により、リソースごとに一連のオペレーションがサポートされています。許可 (または拒否) するリソースのオペレーションは、アクションキーワードを使用して識別します。

    たとえば、apigateway:invoke アクセス権限は、クライアントリクエスト時の API の呼び出しをユーザーに許可します。

    Action エレメントの形式については、「API Gateway で API を実行するためのアクセス許可のアクション形式」を参照してください。

  • エフェクト – ユーザーが特定のアクションをリクエストする際のエフェクト – 値は Allow または Deny のいずれかになります。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

    注記

    「暗黙的な拒否」は、「デフォルトでは拒否」と同じ意味です。

    「暗黙的な拒否」は「明示的な拒否」とは異なります。詳細については、「デフォルトによる拒否と明示的な拒否の違い」を参照してください。

  • プリンシパル – ステートメントのアクションやリソースへのアクセスが許可されているアカウントまたはユーザーを指します。リソースポリシーでは、プリンシパルは、このアクセス許可の被付与者である IAM ユーザーまたはアカウントを指します。

以下のリソースポリシーの例は、前述の一般的なポリシーのエレメントを示しています。このポリシーは、指定したリージョンで指定した account-id の API へのアクセスを、送信元 IP アドレスがアドレスブロック 123.4.5.6/24 にあるすべてのユーザーに許可します。このポリシーでは、ユーザーの送信元 IP がこの範囲外の場合、API へのアクセスはすべて拒否されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:account-id:*" }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:account-id:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "123.4.5.6/24" } } } ] }