ビデオ: Common design patterns with Azure Cosmos DB | Azure Friday 2024
NoSQLのデータを保護する最も一般的な方法の1つは、データベースの種類に応じて各レコード(またはドキュメントまたはグラフ)を割り当てることです)にロールにリンクされた一連のアクセス権を設定します。これは、ロールベースのアクセス制御、つまりRBACです。
文書(集約)NoSQLデータベースに格納されているWebサイトのニュースリリースを検討してください。エディタロールはドキュメントの更新権限を持つことができますが、パブリックロールは読み取り権限のみを持つことがあります。
このユースケースでは、 role パーミッションではなく user パーミッションを割り当てる必要があります。ユーザーは1つ以上の役割に割り当てることができます。したがって、ユーザーは役割の合計に基づいて権限を継承します。
特定の機能を実行する権限をユーザに与えるために役割を作成することは余分な作業のように見えるかもしれませんが、この方法は非常に便利です。別の部門に移動した、または完全に離れるユーザーを考えてみましょう。
<! - 2 - >このユーザーにアクセス権が付与されているすべてのドキュメントを手作業で調べ、変更または削除する必要はありません。代わりに、そのユーザーの役割の割り当てを1回の操作で変更します。ロールベースのアクセス制御(RBAC)を使用すると、セキュリティ権限の長期間のメンテナンスが容易になります。
データベースがどのように権限継承と役割継承を処理するかを見てください。訓練生、中高生、上級保険引受人がいて、それぞれ異なる種類の情報へのアクセスが増えている保険会社の引受人を考えてみましょう。
<! - 3 - >ジュニア・アンダーライターに、研修生が割り当てられている権限を割り当てることができます。次に、上級引受人にすべての下位引受人の権限を割り当てることができます。ただし、これらのすべての役割に追加の権限を追加する場合は、3つの同じ変更を行う必要があります。
5つのレベルの役割がある場合、それは5つのコピーです。また、すべてのシステムには、これらのような役割が多数あります。同じ世俗的なタスクを繰り返し実行するよりも優れた方法があります:ロールの継承。
一部のシステムにはロール継承が含まれています。この場合、JuniorUnderwriterロールはTraineeUnderwriterロールから継承し、SeniorUnderwriterロールはJuniorUnderwiterロールから継承します。すべてのロールに権限を追加するために必要な作業は、TraineeUnderwriterロール(継承の最下位レベル)にのみ追加することです。すべてのロールは権限を継承します。役割の継承は、理解して維持するのがずっと簡単です。
役割許可ロジックは、一般にORロジックで実装されます。つまり、RoleA、RoleB、RoleCの3つのロールを読み取り権限を持つレコードに割り当てると、RoleAまたはRoleB、またはRoleCがある場合、ユーザーはこのアクセス権を持ちます。ロールに読み取り権限を割り当てないと、ユーザーはそのレコードに対して読み取り権限を持ちません(継承はもちろんのこと、継承)。