API Gateway リソースポリシーを作成して API にアタッチする - Amazon API Gateway

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API Gateway リソースポリシーを作成して API にアタッチする

API 実行サービスを呼び出して、ユーザーによる API へのアクセスを許可するには、API Gateway リソースポリシーを作成する必要があります。これにより、API Gateway リソースへのアクセスは制御され、ポリシーが API にアタッチされます。

重要

apigateway:UpdateRestApiPolicy リソースポリシーを更新するには、API Gateway アクセス許可に加えて、apigateway:PATCH アクセス許可も必要です。

リソースポリシーは、API 作成時に API にアタッチできます。または、後でアタッチすることができます。プライベート API の場合、リソースポリシーをプライベート API にアタッチするまで、API へのすべての呼び出しは失敗します。

重要

API 作成後にリソースポリシーを更新する場合は、更新後のポリシーをアタッチしてから API をデプロイし、変更を伝達する必要があります。ポリシーのみ、更新または保存した場合、API のランタイム動作が変更されることはありません。API のデプロイの詳細については、「Amazon API Gateway での REST API のデプロイ」を参照してください。

、ソース VPCs、ソース VPC エンドポイント AWS アカウント、IP 範囲の条件など、IAM 条件要素によってアクセスを制御できます。ポリシーの Principal"*" に設定する場合は、リソースポリシーと一緒にその他の認証タイプを使用できます。ただし、Principal"AWS" に設定している場合、セキュリティで保護されていないリソースなど、AWS_IAM 認証で保護されていないすべてのリソースでは認証に失敗します。

次のセクションでは、独自の API Gateway リソースポリシーを作成し、API にアタッチする方法について説明します。ポリシーをアタッチすると、そのポリシーのアクセス権限が API のメソッドに適用されます。

重要

API Gateway コンソールを使用してデプロイ済み API にリソースポリシーをアタッチする場合、または既存のリソースポリシーを更新する場合、変更を有効にするにはコンソールの API を再デプロイする必要があります。

API Gateway リソースポリシーをアタッチする (コンソール)

AWS マネジメントコンソールを使用して、API Gateway API にリソースポリシーをアタッチできます。

リソースポリシーを API Gateway API にアタッチするには
  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. REST API を選択します。

  3. 左のナビゲーションペインで、[リソースポリシー] を選択します。

  4. [ポリシーの作成] を選択します。

  5. (オプション) [テンプレートを選択] を選択してサンプルポリシーを生成します。

    ポリシーの例では、プレースホルダーは、二重波括弧 ("{{placeholder}}") で囲まれています。各プレースホルダー (波括弧を含む) を必要な情報に置き換えます。

  6. どのテンプレート例も使用しない場合は、リソースポリシーを入力します。

  7. [変更の保存] をクリックします。

API が API Gateway コンソールで以前にデプロイ済みの場合、リソースポリシーを有効にするには再デプロイする必要があります。

API Gateway リソースポリシーのアタッチ (AWS CLI)

を使用して新しい API AWS CLI を作成し、リソースポリシーをアタッチするには、次のように create-rest-api コマンドを呼び出します。

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

を使用してリソースポリシーを既存の API にア AWS CLI タッチするには、次のように update-rest-api コマンドを呼び出します。

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

API Gateway リソースポリシーのアタッチ (AWS CloudFormation)

AWS CloudFormation を使用して、リソースポリシーで API を作成できます。次の例では、リソースポリシーの例 を使用して REST API を作成します例: 送信元の IP アドレスまたは IP アドレスの範囲に基づき、API トラフィックを拒否する

AWSTemplateFormatVersion: 2010-09-09 Resources: Api: Type: 'AWS::ApiGateway::RestApi' Properties: Name: testapi Policy: Statement: - Action: 'execute-api:Invoke' Effect: Allow Principal: '*' Resource: 'execute-api/*' - Action: 'execute-api:Invoke' Effect: Deny Principal: '*' Resource: 'execute-api/*' Condition: IpAddress: 'aws:SourceIp': ["192.0.2.0/24", "198.51.100.0/24" ] Version: 2012-10-17 Resource: Type: 'AWS::ApiGateway::Resource' Properties: RestApiId: !Ref Api ParentId: !GetAtt Api.RootResourceId PathPart: 'helloworld' MethodGet: Type: 'AWS::ApiGateway::Method' Properties: RestApiId: !Ref Api ResourceId: !Ref Resource HttpMethod: GET ApiKeyRequired: false AuthorizationType: NONE Integration: Type: MOCK ApiDeployment: Type: 'AWS::ApiGateway::Deployment' DependsOn: - MethodGet Properties: RestApiId: !Ref Api StageName: test