API Gateway API に IAM 認証を有効化するにはどうすればよいですか?

最終更新日: 2020 年 11 月 10 日

Amazon API Gateway API にアクセスするために、AWS Identity and Access Management (IAM) 認証を有効にしたいと考えています。設定する方法を教えてください。

簡単な説明

API ゲートウェイコンソールで API メソッドの IAM 認証を有効にします。次に、IAM ポリシーとリソースポリシーを使用して、API ユーザーのアクセス許可を指定します。

API Gateway で使用できるさまざまなセキュリティ機能の詳細については、API Gateway での REST API へのアクセスの制御と管理を参照してください。

解決方法

API の IAM 認証を有効にする

  1. API Gateway コンソールで、API の名前を選択します。
  2. [Resources] (リソース) ペインで、IAM 認証を有効にするメソッド (GET または POST など) を選択します。
  3. [Method Execution] (メソッドの実行) ペインで、[Method Request] (メソッドリクエスト) を選択します。
  4. SettingsAuthorization で、鉛筆アイコン ([Edit]) を選択し、ドロップダウンメニューから [AWS_IAM] を選んで、チェックマークアイコン ([更新]) をクリックします。
  5. (オプション) IAM 認証を有効にする追加の API メソッドごとに、手順 2〜4 を繰り返します。
  6. API をデプロイして、変更を有効にします。
  7. [Stage Editor] (ステージエディター) ペインで、呼び出し URL を書き留めます。後でテストするために、呼び出し URL が必要になります。

詳細については、API Gateway コンソールを使用してメソッドを設定するAPI Gateway コンソールで API の呼び出し URL を取得するを参照してください。

IAM ユーザーのグループへ API 認証を付与する

  1. API ユーザーに付与するアクセス許可を決定します。IAM アクセス許可の詳細については、IAM アクセス許可で API へのアクセスを制御するを参照してください。
  2. 必要なアクセス許可を持つ IAM ポリシードキュメントを作成します。例とフォーマットのガイダンスについては、次を参照してください。
    API を呼び出すためのアクセスの制御
    API 実行許可の IAM ポリシーの例
    API Gateway API を管理するための IAM ポリシーの例
    注: この記事の最後にあるテスト手順を完了するには、呼び出し権限を許可する必要があります。
  3. 次のいずれかを実行して、IAM ポリシーを IAM グループにアタッチします。
    ポリシーを既存の IAM グループにアタッチする
    新しい IAM グループの作成時にポリシーをアタッチする

詳細については、ポリシーを作成して IAM ユーザーにアタッチするを参照してください。

注: 個々の IAM ユーザーに API アクセスを許可できますが、IAM グループレベルでアクセスを許可することがベストプラクティスです。

(オプション) API Gateway リソースポリシーの設定

API Gateway リソースポリシー(リソースベースのアクセス許可) を IAM ポリシー (ID ベースのアクセス許可) とともに使用して、API Gateway API へのアクセスの管理を強化できます。詳細については、「IAM 認証およびリソースポリシー」と「ID ベースのポリシーおよびリソースベースのポリシー」を参照してください。

注: リソースポリシーを使用して API へのアクセスを拒否し、IAM ポリシーを使用してアクセスを許可した場合 (またはその逆)、アクセスは拒否されます。セキュリティ機能がユースケースで期待どおりに機能するようにアクセス許可構造を設計してください。詳細については、「ポリシー評価結果テーブル」を参照してください。

認証設定をテストするリクエストを送信する

テストとして、Postman アプリを使用し、IAM 認証を有効にした (GET または POST などの) メソッドを使用して API リソースにリクエストを送信します。

注: 別のツールまたは環境を使用して API Gateway に送信されたリクエストを手動で認証するには、署名バージョン 4 署名プロセスを使用する必要があります。詳細については、API Gateway REST API リファレンスの「署名リクエスト」を参照してください。

  1. Postman の Authorization タブで、次を実行します。
    Type では、[AWS Signature] を選択します。
    AccessKey および SecretKey には、API にアクセスできる IAM グループに属する IAM ユーザーの IAM アクセスキー ID とシークレットアクセスキーを入力します。
  2. [Enter request URL] (リクエスト URL を入力) フィールドに、先ほど書き留めた呼び出し URL を貼り付けます。特定の API リソースのメソッドで IAM 認証を有効にした場合、呼び出し URL の末尾にリソース名を追加します。リソース名を含む完全なリクエスト URL は次のようになります。
    https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName

認証に成功すると、200 OK レスポンスコードが返されます。許可されていないリクエストは、Missing Authentication Token のメッセージと 403 Forbidden レスポンスコードを返します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?