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