Amazon Verified Permissions の特徴

承認モデルの定義

承認モデルに関連する属性や、プリンシパルタイプ、リソースタイプ、アクションの有効な組み合わせなど、各エンティティタイプに基づいてスキーマを定義します。Verified Permissions はスキーマを使用して、静的ポリシーまたはポリシーテンプレートがアプリケーションの承認モデルと一致しているかどうかを検証します。JSON を使用して、Verified Permissions でスキーマを定義できます。JSON スキーマと多少似ていますが、Cedar ポリシー言語のユニークな側面を利用しています。スキーマでアクショングループを定義できます。アクショングループとは、アクションのグループを許可または禁止するポリシーです。

API 経由でアプリケーションをサービスに接続して、ユーザーアクセスリクエストを承認します。各承認リクエストに対して、サービスは関連するポリシーを取得し、それらのポリシーを評価して、ユーザー、ロール、グループメンバーシップ、属性などのコンテキスト入力が与えられたリソースにユーザーがアクションを実行できるかどうかを判断します。

ポリシー管理と検証

ポリシーストアは、他のコンテナから論理的に分離された Verified Permissions 内のポリシーのコンテナです。すべての階層関係と設定を 1 つのポリシーストアに作成して、ポリシーやポリシーテンプレートを他のポリシーストアと区別できます。ポリシーストアは通常、各アプリケーションにマッピングしており、複数のテナント間で共有や接続をしなくても、異なる設定やスキーマルールを作成できます。たとえば、Verified Permissions アプリケーションを使用するテナントごとに個別のポリシーストアを用意できます。他のポリシーストアのリソース、スキーマ、ポリシー、およびポリシーテンプレートに影響を与えることなく、1 つのテナントのポリシーストアを削除できます。

テストベンチ機能は、ポリシーストア内のすべてのポリシーに対してシミュレートされた承認リクエストを実行することにより、Verified Permissions ポリシーをテストおよびトラブルシューティングするためのツールです。テストベンチは、指定したパラメータを使用して、ポリシーストア内のポリシーがリクエストを承認するかどうかを判断します。

ポリシーテンプレートを使用できます。ポリシーテンプレートとは、スコープ内に特定の値を入力するプレースホルダーを持つポリシーステートメントです。ポリシーテンプレートには、プリンシパル、リソース、またはその両方のプレースホルダーを含めることができます。ポリシーテンプレートへの更新は、テンプレートを使用するすべてのプリンシパルとリソース (テンプレートリンクポリシーとも呼ばれます) に反映されます。

ポリシーテンプレートを使用して、アプリケーション全体で共有できるポリシーを作成することをお勧めします。たとえば、エディタ用のポリシーテンプレートを作成し、ポリシーテンプレートを使用するプリンシパルとリソースに読み取り、編集、コメントの権限を与えることができます。ポリシーテンプレートを使用して、アプリケーションのアクセスコントロールを大まか、中程度、またはきめ細かく定義することもできます。たとえば、特定のユーザーをグループに割り当てるにはポリシーテンプレートを使用し、特定のリソースへのアクセスを割り当てるには中程度のコントロールを用い、リソースの最も詳細な属性にはきめ細かいコントロールを使うことができます。

ポリシーのクエリと監査

Verified Permissions API を使用すると、Verified Permissions に保存されているポリシーに対して特定のクエリを実行できます。ポリシーをクエリして、どれが特定のプリンシパル、特定のリソース、またはその両方に適用されるかを判断できます。

Verified Permissions を設定、接続することで、ポリシー管理と承認ログを AWS CloudTrail に送信することができます。

統合と拡張性

Amazon Cognito からの認証トークンを、Verified Permissions で実行される承認リクエストに渡すことができます。これにより、ID プロバイダーの属性をポリシー評価に直接渡して、Verified Permissions によって生成される承認決定を行うことができます。

Verified Permissions は、AWS リソースのモデル化とセットアップを支援するサービスである CloudFormation と統合されているため、リソースとインフラストラクチャの作成と管理に費やす時間を減らすことができます。必要なすべての AWS リソースを記述したテンプレートを作成すると、CloudFormation がそれらのリソースのプロビジョニングと設定を行います。

Verified Permissions SDK は、C++、Go、Java、JavaScript、Kotlin、.NET、Node.js、PHP、Python、Ruby、Rust、Swift を使用して利用できます。