Yuutsuna’s blog

日々の勉強のアウトプット

AWS DVA AWS開発 参考書読み6日目

今日やったこと

API Gatewayの続きを読んだ

API Gatewayの機能

認証・認可

IAMアクセス権限

AWS署名バージョン4を利用した認証と認可を行う

クライアントはAWS署名バージョン4をHTTPリクエストヘッダに設定して、API Gatewayにリクエストを送信する

AWS署名バージョン4

IAMユーザのアクセスキー(アクセスキーIDとシークレットアクセスキー)を元に作成したハッシュ値

Lambdaオーソライザ

名前の通り、Lambda関数を利用した認証と認可を行う

クライアントは、Bearerトークンもしくは、HTTPリクエストヘッダのパラメータに認証情報を付与したリクエストを送信する

Bearerトーク

読み方:ベアラートーク

トークンを所有していることで、認証と認可がされる仕組み

Bearerトークンは、リクエストの送信元を確認しないため、第三者トークンが漏れたら第三者の認証と認可ができてしまうため、注意が必要

Cognitoオーソライザ

名前の通り、Amazon Cognitoを利用した認証と認可を行う

クライアントは、Cognitoのユーザープールで認証を行ってトークン(Json Web Token)を取得し、HTTPリクエストヘッダにセットしてリクエストを送信する

JWTオーソライザ

OpenID ConnectまたはOAuth2.0の一部として、JWTを利用した認証を行う

クライアントは、OpenID ConnectまたはOAuth2.0で認証を行なってトークン(JWT)を取得し、HTTPリクエストヘッダにセットしてリクエストを送信する

相互TLS認証

サーバがクライアントにクライアント証明書を要求して検証を行い、接続元クライアントの正しさを確認することにより、クライアントとサーバの双方向の認証をサポートする

ロットリング

トークバケットアルゴリズムに基づく流量制御の仕組み

トークバケットアルゴリズムでは、1リクエスト処理する度にバケット内に保持していたトークンを1つ消費する

トークンの補充速度を「定常レート」、バケット内に格納するトークンの最大サイズを「バースト」と呼ぶ

APIのキャッシュ

API Gatewayではステージごとにキャッシュを定義し、バックエンドのトラフィックを削減することができる

カナリアリリース

任意のステージに対して、「Canary」という特別なステージを定義できる

API Gatewayへのリクエストを、指定した比率でCanaryステージへ分配することができる

WAF連携

WAFのACLを指定することで、SQLインジェクションクロスサイトスクリプティングなどのセキュリティ攻撃を防ぐことができる

監視連携

CloudWatchやX-Rayとシームレスに連携でき、リクエストの処理パフォーマンス分析やデバッグが可能になる

終わりに

TLSって言葉が出て来るたびにググって「あ〜これだった」となるのでそろそろ覚えたい

API Gateway単体ではなく、他サービスと連携して何ができるかを意識していきたい