例 5: Verified Permissions と Cedar を使用した UI フィルタリング - AWS 規範ガイダンス

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

例 5: Verified Permissions と Cedar を使用した UI フィルタリング

Verified Permissions を使用して、承認されたアクションに基づいて UI 要素の RBAC フィルタリングを実装することもできます。これは、マルチテナント SaaS アプリケーションの場合、特定のユーザーまたはテナントに関連付けられる可能性のあるコンテキスト依存の UI 要素を持つアプリケーションにとって非常に役立ちます。

次の例では、 UsersRoleviewerは更新を実行できません。これらのユーザーの場合、UI は更新ボタンをレンダリングしないでください。

Amazon Verified Permissions と Cedar を使用した UI フィルタリングの例

この例では、単一ページのウェブアプリケーションには 4 つのボタンがあります。表示されるボタンは、現在アプリケーションにログインしているRoleユーザーの によって異なります。単一ページのウェブアプリケーションが UI をレンダリングすると、Verified Permissions にクエリを実行して、ユーザーが実行を許可されているアクションを決定し、承認の決定に基づいてボタンを生成します。

次のポリシーでは、値が の タイプRoleがユーザーとデータの両方を表示viewerできることを指定します。このポリシーの承認ALLOW決定には、 viewDataまたは viewUsersアクションが必要です。また、リソースを Dataまたは タイプに関連付ける必要がありますUsersALLOW 決定により、UI は viewDataButtonと の 2 つのボタンをレンダリングできますviewUsersButton

permit ( principal in GuiAPP::Role::"viewer", action in [GuiAPP::Action::"viewData", GuiAPP::Action::"viewUsers"], resource ) when { resource in [GuiAPP::Type::"Data", GuiAPP::Type::"Users"] };

次のポリシーでは、値が の 型Roleがデータのみを表示viewerDataOnlyできるように指定します。このポリシーの承認ALLOW決定には viewDataアクションが必要であり、 タイプに関連付けるリソースも必要ですDataALLOW 決定により、UI はボタン をレンダリングできますviewDataButton

permit ( principal in GuiApp::Role::"viewerDataOnly", action in [GuiApp::Action::"viewData"], resource in [GuiApp::Type::"Data"] );

次のポリシーでは、 の値Roleを持つ タイプがデータとユーザーを編集して表示adminできるように指定します。このポリシーの承認ALLOW決定には、updateData、、updateUsersviewData,または のアクションが必要です。またviewUsers、リソースをタイプ Dataまたは に関連付ける必要がありますUsersALLOW 決定により、UI は updateDataButton、、updateUsersButtonviewDataButtonの 4 つのボタンをすべてレンダリングできますviewUsersButton

permit ( principal in GuiApp::Role::"admin", action in [ GuiApp::Action::"updateData", GuiApp::Action::"updateUsers", GuiApp::Action::"viewData", GuiApp::Action::"viewUsers" ], resource ) when { resource in [GuiApp::Type::"Data", GuiApp::Type::"Users"] };