今日やったこと
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って言葉が出て来るたびにググって「あ〜これだった」となるのでそろそろ覚えたい