Verified Permissionsと Cedar の違い - Amazon Verified Permissions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Verified Permissionsと Cedar の違い

Amazon Verified Permissionsは、Cedar ポリシー言語エンジンを使用して認証タスクを実行します。ただし、ネイティブの Cedar 実装と「Verified Permissions」にある Cedar の実装にはいくつか違いがあります。このトピックでは、これらの違いについて説明します。

名前空間の定義

Cedar のVerified Permissions実装は、ネイティブの Cedar 実装と以下の違いがあります。

  • Verified Permissionsは、ポリシーストアで定義されたスキーマ内の名前空間1つだけをサポートします。

  • Verified Permissionsでは、awsamazon、または cedar の値を使用して名前空間を作成することはできません。

ポリシーテンプレートのサポート

Verified Permissions と Cedar は両方とも、principalresource のスコープ内でのみプレースホルダーを許可します。ただし、Verified Permissions では、principalresource のどちらも制約されていないことも必要です。

以下のポリシーは Cedar では有効ですが、principalには制約がないためVerified Permissionsでは拒否されます。

permit(principal, action == Action::"view", resource == ?resource);

principalresourceの両方に制約があるため、以下の例はいずれも Cedar と Verified Permissionsの両方で有効です。

permit(principal == User::"alice", action == Action::"view", resource == ?resource);
permit(principal == ?principal, action == Action::"a", resource in ?resource);

スキーマのサポート

Verified Permissions では、すべてのスキーマ JSON キー名が空でない文字列である必要があります。Cedar では、プロパティなどいくつかのケースで空の文字列を使用できます。

拡張タイプのサポート

Verified Permissions はポリシーで Cedar 拡張タイプをサポートしていますが、スキーマの定義に、または IsAuthorized および IsAuthorizedWithToken オペレーションの entities パラメーターの一部としてそれらを含めることは現在サポートされていません。

拡張タイプには、固定小数点 (decimal) データ型と IP アドレス (ipaddr) データ型があります。

エンティティ用の Cedar JSON 形式

現時点では、Verified Permissions では、EntityItem 要素の配列である EntitiesDefinition に定義された構造を使用して、承認リクエストで考慮されるエンティティのリストを渡す必要があります。Verified Permissionsは、現在のところ、承認リクエストで考慮すべきエンティティのリストを Cedar JSON 形式で渡すことをサポートしていません。Verified Permissions で使用するエンティティのフォーマットに関する具体的な要件については、Amazon Verified Permissions のエンティティフォーマットを参照してください。

アクショングループの定義

Cedar の認証方法では、認可リクエストをポリシーと照らし合わせて評価する際に考慮すべきエンティティのリストが必要です。

アプリケーションが使用するアクションとアクショングループをスキーマで定義できます。ただし、Cedar は評価リクエストにスキーマを含めません。代わりに、Cedar は送信したポリシーとポリシーテンプレートの検証にのみスキーマを使用します。Cedar は評価リクエスト時にスキーマを参照しないため、スキーマにアクショングループを定義した場合でも、承認 API オペレーションに渡す必要があるエンティティリストの一部として、アクショングループのリストも含める必要があります。

これはVerified Permissions によって自動的に行われます。スキーマで定義したアクショングループは、IsAuthorizedまたはIsAuthorizedWithTokenオペレーションのパラメータとして渡したエンティティリストに自動的に追加されます。

長さとサイズの制限

Verified Permissionsは、スキーマ、ポリシー、ポリシーテンプレートを格納するためのポリシーストア形式のストレージをサポートします。このストレージが原因で、認証済みアクセス権限には Cedar に関係のない長さとサイズの制限が課されます。

オブジェクト Verified Permissionsの制限 (バイト単位) シダー制限
ポリシーのサイズ ¹ 10,000 なし
インラインポリシーの説明 150 Cedar には適用されません。
ポリシーテンプレートサイズ 10,000 なし
スキーマサイズ 10,000 なし
エンティティタイプ 200 なし
ポリシー ID 64 なし
ポリシーテンプレート ID 64 なし
エンティティ ID 200 なし
ポリシーストア ID 64 シーダーには適用されません。

¹ Verified Permissions では、ポリシーストアで作成されたポリシーのプリンシパル、アクション、リソースの合計サイズに基づいて、ポリシーストアごとのポリシーに制限があります。1 つのリソースに関連するすべてのポリシーの合計サイズは 200,000 バイトを超えることはできません。テンプレートにリンクされたポリシーの場合、ポリシーテンプレートのサイズに、テンプレートにリンクされた各ポリシーのインスタンス化に使用される各パラメータセットのサイズを加えたものが 1 回だけカウントされます。