

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 租戶隔離和資料隱私權的建議
<a name="devops-isolation-privacy"></a>

上一節提供數種搭配 OPA 和 Amazon Verified Permissions 使用外部資料的方法，以協助做出授權決策。如果可能，我們建議您使用過載輸入方法來將 SaaS 內容資料傳遞至 OPA，以做出授權決策，而不是將資料存放在 OPA 記憶體中。此使用案例不適用於 AWS Cloud Map，因為它不支援將外部資料儲存在服務中。

在角色型存取控制 (RBAC) 或 RBAC 和屬性型存取控制 (ABAC) 混合模型中，僅由授權請求或查詢提供的資料可能不足，因為必須參考角色和許可才能做出授權決策。**為了維持租戶隔離和角色映射的隱私權，此資料不應位於 OPA 中。**RBAC 資料應位於資料庫等外部資料來源中，或應做為 JWT 中宣告的一部分從 IdP 傳遞。在 Verified Permissions 中，RBAC 資料可以維護為每個租用戶政策存放區模型中政策和結構描述的一部分，因為每個租用戶都有自己的邏輯分隔政策存放區。不過，**在一個共用的多租用戶政策存放區模型中，角色映射資料不應位於 Verified Permissions 中，以維持租用戶隔離**。

此外，OPA 和 Verified Permissions 不應用於將預先定義的角色映射至特定許可，因為這會使租戶難以定義自己的角色和許可。它也會讓您的授權邏輯更嚴格，且需要持續更新。本指南的例外是 Verified Permissions 中的每個租用戶政策存放區模型，因為此模型允許每個租用戶擁有自己的政策，可以根據每個租用戶獨立評估。

## Amazon Verified Permissions
<a name="avp-data-storage"></a>

Verified Permissions 可以存放潛在私有 RBAC 資料的唯一位置是在結構描述中。這是每個租用戶政策存放區模型中可接受的，因為每個租用戶都有自己的邏輯分隔政策存放區。不過，這可能會影響一個共用多租用戶政策存放區模型中的租用戶隔離。在需要這些資料才能做出授權決策的情況下，應該從外部來源擷取資料，例如 DynamoDB 或 Amazon RDS，並納入 Verified Permissions 授權請求。

## OPA
<a name="opa-data-storage"></a>

使用 OPA 安全方法來維護 RBAC 資料的隱私權和租用戶隔離，包括使用動態資料擷取或複寫來取得外部資料。這是因為您可以使用上圖中說明的授權服務，僅提供租戶特定或使用者特定外部資料，以進行授權決策。例如，您可以使用複寫器，在使用者登入時將 RBAC 資料或許可矩陣提供給 OPA 快取，並根據輸入資料 中提供的使用者來參考資料 。您可以將類似的方法與動態提取的資料搭配使用，以僅擷取進行授權決策的相關資料。此外，在動態資料擷取方法中，此資料不必快取在 OPA 中。綁定方法與維持租用戶隔離的動態擷取方法不那麼有效，因為它會更新 OPA 快取中的所有內容，而且無法處理精確的更新。綁定模型仍然是更新 OPA 政策和非RBAC 資料的好方法。