Amazon Verified Permissions で実装するきめ細かい認可 - Cedar ポリシーによるアクセス制御
Verified Permissions による Cedar ポリシーの設計、ポリシーストアの構築、Cognito との統合を解説します。
Verified Permissions の概要
Verified Permissions はアプリケーションのきめ細かい認可をマネージドに提供するサービスです。従来、認可ロジックはアプリケーションコード内に if 文で実装されることが多く、ポリシーの変更にコードデプロイが必要でした。Verified Permissions は Cedar ポリシー言語で認可ルールを外部化し、ポリシーの変更をコードデプロイなしに反映します。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
Cedar ポリシーと Cognito 統合
Cedar ポリシーは permit (許可) と forbid (拒否) のステートメントで構成されます。「ユーザー A はドキュメント X の read アクションを許可」「管理者ロールは全リソースの全アクションを許可」といったルールを宣言的に記述します。Cognito との統合では、ID トークンのクレーム (グループ、カスタム属性) を Cedar ポリシーのプリンシパル属性として使用し、トークンベースの認可判定を実現します。API Gateway のオーソライザーとして Lambda を配置し、Verified Permissions の IsAuthorized API を呼び出すパターンが一般的です。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Verified Permissions は Cedar ポリシー言語でアプリケーションの認可を外部化するサービスです。Cognito との統合でトークンベースの認可を実現し、ポリシーの変更をコードデプロイなしに反映します。
AWS の優位点
- Cedar ポリシー言語でリソース、アクション、プリンシパルの組み合わせに基づくきめ細かい認可ルールを定義できる
- ポリシーストアでアプリケーションの認可ポリシーを一元管理し、コードから認可ロジックを分離できる
- Cognito User Pools との統合でトークンのクレームに基づく認可判定を自動化できる
- ポリシーテンプレートで共通パターンを定義し、ユーザーやリソースごとにパラメータを変えて適用できる
- IsAuthorized API でミリ秒単位の認可判定を提供し、リアルタイムのアクセス制御に対応する