本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
最佳實務
本節列出本指南中的一些高階要點。如需各點的詳細討論,請遵循對應區段的連結。
選取適用於您應用程式的存取控制模型
本指南討論數個存取控制模型。根據您的應用程式和業務需求,您應該選取適合您的模型。考慮如何使用這些模型來滿足您的存取控制需求,以及存取控制需求可能如何演變,這需要變更您選擇的方法。
實作 PDP
政策決策點 (PDP) 可以描述為政策或規則引擎。此元件負責套用政策或規則,並傳回是否允許特定存取的決定。PDP 允許將應用程式程式碼中的授權邏輯卸載至不同的系統。這可以簡化應用程式程式碼。它還提供easy-to-use等冪界面,用於對 APIs、微服務、後端前端 (BFF) 層或任何其他應用程式元件進行授權決策。PDP 可用來在整個應用程式中一致地強制執行租用需求。
為應用程式中的每個 API 實作 PEPs
政策強制執行點 (PEP) 的實作需要判斷應用程式應在何處執行存取控制。首先,請在應用程式中找出您可以納入 PEPs點。在決定在何處新增 PEPs 時,請考慮此原則:
如果應用程式公開 API,則該 API 應具備授權和存取控制。
考慮使用 Amazon Verified Permissions 或 OPA 做為 PDP 的政策引擎
Amazon Verified Permissions 的優勢優於自訂政策引擎。它是一種可擴展、精細的許可管理和授權服務,適用於您建置的應用程式。它支援使用高階宣告性開放原始碼語言 Cedar 撰寫政策。因此,使用 Verified Permissions 實作政策引擎比實作您自己的解決方案需要更少的開發工作。此外,已驗證的許可會受到完整管理,因此您不需要管理基礎基礎設施。
開放政策代理程式 (OPA) 的優勢優於自訂政策引擎。OPA 及其使用 Rego 進行的政策評估提供彈性的預先建置政策引擎,支援以高階宣告性語言撰寫政策。這使得實作政策引擎所需的工作量遠低於建置您自己的解決方案。此外,OPA 正迅速成為支援良好的授權標準。
實作適用於 DevOps、監控和記錄的 OPA 控制平面
由於 OPA 不提供透過來源控制更新和追蹤授權邏輯變更的方法,我們建議您實作控制平面來執行這些函數。這可讓更新更輕鬆地分發給 OPA 代理程式,特別是在 OPA 在分散式系統中操作時,這將減少使用 OPA 的管理負擔。此外,控制平面可用來收集日誌以進行彙總,並監控 OPA 代理程式的狀態。
設定 Verified Permissions 中的記錄和可觀測性功能
已驗證的許可可讓您輕鬆存取可觀測性功能。您可以設定 服務來記錄 Amazon CloudWatch 日誌群組 AWS CloudTrail、S3 儲存貯體或 Amazon Data Firehose 交付串流的所有存取嘗試,以便快速回應安全事件和稽核請求。此外,您可以透過 監控服務的運作狀態 AWS Health Dashboard。由於 Verified Permissions 是受管服務,其運作狀態由 維護 AWS,因此您可以使用其他 AWS 受管服務來設定其可觀測性功能。
使用 CI/CD 管道在 Verified Permissions 中佈建和更新政策存放區和政策
Verified Permissions 是一種受管服務,因此您不需要管理、設定或維護控制平面或代理程式來執行更新。不過,我們仍建議您使用持續整合和持續部署 (CI/CD) 管道,透過使用 AWS SDK 來管理 Verified Permissions 政策存放區和政策更新的部署。這項工作可以消除手動工作,並降低變更 Verified Permissions 資源時發生運算子錯誤的可能性。
判斷授權決策是否需要外部資料,並選取模型以容納它
如果 PDP 可以僅根據 JSON Web 權杖 (JWT) 中包含的資料做出授權決策,通常不需要匯入外部資料來協助做出這些決策。如果您使用 Verified Permissions 或 OPA 做為 PDP,它也可以接受作為請求一部分傳遞的額外輸入,即使此資料不包含在 JWT 中。對於 Verified Permissions,您可以使用其他資料的內容參數。對於 OPA,您可以使用 JSON 資料作為過載輸入。如果您使用 JWT,內容或過載輸入方法通常比在另一個來源中維護外部資料要容易得多。如果需要更複雜的外部資料才能做出授權決策,OPA 會提供數種模型來擷取外部資料,而 Verified Permissions 可以透過使用授權服務參考外部來源來補充其授權請求中的資料。