Closed1
Cognito でのロール単位の操作権限の制御
ユーザーの権限管理の制御について
ユーザーごとに操作できる権限の制御を行いたい。
とおもって、調べたときに見た資料などを残しとく。
前提条件
- SPAのWebアプリケーション
- ユーザー管理はCognitoを使用しAmplifyを使用してサインイン/サインアップの処理を実装
- 基本的にサーバーとのデータの処理は、フロントエンド→CloudFront→API Gatewayの流れ
- APIの認可方式はCognito Authorizer (今は)
ユーザーグループにIAMロールを割り当ててそのロールを使う方法
- API GatewayのIAM認証は一時的認証情報を使用した呼び出し
- Cognito Authorizerとはリクエスト方法が異なる。
- Cognito Authorizer: ユーザープールによって発行されたIDトークンをAuthorizationヘッダに付与
- IAM認証: 一時認証情報を使用してHostヘッダ等に署名をする
- CloudFrontがHostヘッダをオリジンに転送する際にHostヘッダは書き換えても署名は書き換えないため、API Gatewayは不正な署名として扱い401エラーとなってしまう
Amazon Verified Permissions
割とよさそう。
- Lambda Authorizer to Amazon Verified Permissions の構成でやれそう
- 独自のCedarという独自言語でポリシーを書くらしい
このスクラップは3ヶ月前にクローズされました