DataPower API Gateway のみ

ラムダ

Lambda ポリシーを使用して、Amazon API Gatewayを使用せずに API から AWS Lambda 関数を直接トリガーします。

ゲートウェイのサポート

表 1. このポリシーをサポートするゲートウェイと、対応するポリシーのバージョンを示す表
ゲートウェイ ポリシーのバージョン
DataPower® API Gateway 1.3.0

このトピックでは、アセンブリー・ユーザー・インターフェースでのポリシーの構成方法について説明します。 OpenAPI ソースでのポリシーの構成方法について詳しくは、 Lambdaを参照してください。

製品情報

Lambdaポリシーは、Amazon API Gateway を使用することなく、APIのアセンブリ内から AWS Lambda関数をトリガーすることができます。 ポリシーを API アセンブリーに追加するときに、呼び出す Lambda 関数を指定し、それを使用するための資格情報を指定することができます。 認証情報は、 AWS IAMロール、またはアクセスキーID/シークレットアクセスキーのペアのいずれかになります。 ラムダポリシーは、 ラムダポリシー修正パックからダウンロードできます。

API Connectがラムダ関数を呼び出せるようにするには、以下のタスクを実行します:
  1. このトピックの「 AWS 」セクションの説明に従って、 AWS の Lambda 関数へのアクセスを構成します。
  2. このトピックのプロパティセクションにあるポリシーのプロパティを使用して、API ConnectでAPIポリシーを定義します。
注:
  • LambdaポリシーはVPCエンドポイントを使用し、ゲートウェイからLambdaサービスへの通信がAWSプライベートバックボーン経由であることを保証する。
  • ラムダに関する情報とラムダの機能の使用方法については、 AWS ラムダのドキュメントを参照してください。

AWS での許可およびトラストのセットアップ

Lambda ポリシーを使用するには、AWS アカウントでロールを設定し、権限ポリシーと信頼関係を指定して、API Connect が AWS Lambda 関数を呼び出せるようにする必要があります。 AWS Lambdaポリシーを使用する場合、1つの認証オプションがあります:

ニーズに最も適したオプションの説明を使用してください。

アクセス・キー ID/ 秘密アクセス・キー
1 つ以上の Lambda 関数を呼び出す権限を持つアカウントの AWS Access Key ID/AWS 秘密アクセス・キーのペアを指定します。 このアカウントの許可の有効範囲は、できるだけ狭くする必要があります。このアカウントは、1 つ以上の Lambda 関数を呼び出す権限以外の権限を持たないサービス・アカウントにする必要があります。 詳細については、「Identity-Based IAM Policies for Lambda」のドキュメントを参照してください。

アクセスキーID/シークレットアクセスキー認証オプションを使用するには、以下の手順に従ってアカウントのIAMサービスを使用し、API Connectとの限定的な通信を容易にする適切な権限を持つIAMサービスアカウントを作成します:

  1. AWSマネジメントコンソールにサインインし、IAMコンソールを開きます。
  2. AWS IAM コンソールで、ナビゲーション・リストの 「ユーザー」 をクリックし、 「ユーザーの追加」をクリックします。
  3. 「ユーザー詳細の設定 (Set user details)」というプロンプトが出されたら、 「ユーザー名」 ( AWS アカウント内で固有) を指定し、 「アクセス・キー-プログラマチック・アクセス (Access key-Programmatic access)」を選択します。

    Password - AWS Management Console access オプションを選択できますが、API Connect との対話には必要ありません。

    新規ユーザー・アカウントの権限を定義するためのさまざまなオプションがあります。 ユーザーをユーザーグループに追加する、またはユーザーにポリシーを直接添付する方法については、『AWSIdentity and Access Management ユーザーガイド』を参照してください。

    最小特権の原則に準拠するユーザー権限を定義する簡単な方法は、以下のステップで示すように、権限を持たない IAM ユーザーを作成し、そのユーザーを特定の Lambda 関数の権限構成に追加することです。

  4. 「ユーザー詳細の設定 (Set user details)」ページで、新規ユーザー・アカウントを変更せずに 「次: タグ (Next: Tags)」 をクリックします。
  5. 目的の 「タグ」 を作成し、 「次: レビュー」をクリックします。
  6. 設定を確認し、 「ユーザーの作成」をクリックします。

    残りのステップで権限を割り当てるため、 This user has no permissions という警告は無視してください。

  7. 「.csv のダウンロード」 をクリックして、新規ユーザーの 「アクセス・キー ID」「秘密アクセス・キー」を保存し、安全な場所に保管します。 これらの値は、AWS Access Key IDAWS Secret Access Keyとして、API ConnectでAPIのLambdaポリシーを設定する際に使用されます。
  8. Lambda 関数を更新して、新規ユーザーに許可を提供します。
    1. Lambda コンソールで、 「関数」 ページを開きます。
    2. API Connectが呼び出す関数を選択します。
    3. 「構成」をクリックします。
    4. 「リソース・ベースのポリシー・ステートメント」 セクションで、 「許可の追加」をクリックします。
    5. AWS アカウント を選択し、固有の ステートメント IDを追加します。
    6. 「プリンシパル」 を新規ユーザーの ARN に設定します。

      arn:aws:iam::<AWS_account_ID>:user/<username>, available on the ユーザー > <ユーザー名 page.

    7. 「アクション」lambda:InvokeFunctionに設定します。
    8. 保存 をクリックします。

    ユーザー・アカウントが呼び出す Lambda 関数ごとに、このステップを繰り返します。

プロパティ-

以下の表に、このポリシーのプロパティーをリストします。表には、プロパティーが必須かどうか、入力用の有効な値とデフォルト値、および値のデータ型が示されています。

表 2. レート制限 ポリシーのプロパティー
プロパティー・ラベル 必須 説明 データ・タイプ
タイトル いいえ ポリシーのタイトル。 デフォルト値は lambdaです。 ストリング
説明 いいえ ポリシーの説明。 ストリング
AWS アクセス・キー ID はい AWS アクセス・キーは、 AWS IAM ユーザーの長期の資格情報です。 代わりに AWS Asコンシューム・ロール ARN が指定されていない場合は必須です。

AWSでのアクセス・キー・ペアの作成手順については、このトピックの アクセス・キー ID/ 秘密アクセス・キー を参照してください。

ストリング
AWS シークレット・アクセス・キー はい 指定された AWS アクセス・キー IDに対応する秘密アクセス・キー。 ストリング
関数 (Function) はい 実行する AWS Lambda 関数の名前または Amazon リソース名 (ARN)。以下のいずれかの形式を使用します。
  • 関数名 (例: my-function )
  • 関数 ARN。例: arn:aws:lambda:us-east-a:123456789012:function:my-function
  • 部分 ARN- 123456789012:function:my-function

詳細については FunctionNameAWS を参照してください。

ストリング
リージョン はい Lambda 関数がホストされている AWS 領域。 ストリング
クォリファイアー いいえ 実行対象の Lambda 関数の別名またはバージョン。

詳細については QualifierAWS を参照してください。

ストリング