本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Verified Permissions 升級到 Cedar 4 常見問答集
Amazon Verified Permissions 正在將其使用的 Cedar 版本從第 2 版升級至第 4 版。Cedar 是您用來撰寫政策、政策範本和政策存放區中結構描述的開放原始碼語言。透過 Verified Permissions 中的 Cedar 4 支援,您可以使用is
運算子和實體標籤等新功能來撰寫更具表達性的政策。
Amazon Verified Permissions 會自動將政策存放區升級至 Cedar 4。不過,針對 Cedar 2 撰寫的某些政策、結構描述和授權請求與 Cedar 4 不相容。如果您的政策存放區發生這種情況,則我們不會自動升級。您可能需要變更政策、政策範本、結構描述或應用程式程式碼,才能升級至 Cedar 4。
主題
為什麼某些政策、政策範本和結構描述與 Cedar 4 不相容?
Cedar 團隊自 Cedar 2 以來已進行數個回溯不相容的變更,以修正錯誤並簡化語言。這些變更包括:
政策、政策範本和結構描述的語法變更
更精確的政策驗證程式,可偵測更多錯誤
內建函數的行為變更,例如
isInRange
如需回溯不相容變更的完整清單,請在 Cedar 變更日誌(*)
中尋找標示為 的項目。
如何判斷我的政策存放區是使用 Cedar 2 還是 Cedar 4?
您可以使用 Amazon Verified Permissions 主控台或使用 GetPolicyStore操作來檢查政策存放區使用的 Cedar 版本。
注意
相同 AWS 帳戶 和 區域中的所有政策存放區都使用相同版本的 Cedar。
如何升級至 Cedar 4?
Amazon Verified Permissions 已將大多數客戶升級至 Cedar 4。如果您從未建立政策存放區,則您建立的任何新政策存放區都會使用 Cedar 4。如果您是現有客戶,則可能已將您升級至 Cedar 4。請參閱 如何判斷我的政策存放區是使用 Cedar 2 還是 Cedar 4? 以檢查您的政策存放區使用的 Cedar 版本。
如果您尚未升級,則 Verified Permissions 會在與 Cedar 4 不相容的其中一個政策存放區中偵測到政策、政策範本、結構描述或授權請求。我們將在 2025 年稍後傳送電子郵件通知給您,說明哪些資源不相容。若要更快升級,請使用 開啟案例 支援。
重要
相同 中的所有政策存放區都 AWS 帳戶 使用相同版本的 Cedar。如果帳戶中的一個政策存放區與 Cedar 4 不相容,則您無法在該帳戶中的任何政策存放區中使用 Cedar 4。
我可以將政策存放區從 Cedar 4 降級為 Cedar 2 嗎?
否。如果您在政策存放區升級至 Cedar 4 後遇到問題,請使用 開啟案例 支援。
為什麼我會收到錯誤訊息,指出我的政策存放區已設定為 Cedar 2?
Amazon Verified Permissions 的某些功能依賴 Cedar 4 中的新功能。如果您的政策存放區不使用 Cedar 4,則無法使用下列 API 欄位:
-
在 IsAuthorized、 BatchIsAuthorizedIsAuthorizedWithToken和 BatchIsAuthorizedWithToken操作中:
datetime
、decimal
或duration
值,位於attributes
或context
欄位中
在升級政策存放區之前,您無法在 Cedar 2 之後推出的政策、政策範本或結構描述中使用語法或資料類型。
如何使我的結構描述與 Cedar 4 相容?
您可以使用 Verified Permissions 主控台中的程式碼編輯器,查看哪些錯誤阻止您的結構描述與 Cedar 4 搭配使用。
重要
Amazon Verified Permissions 主控台中的程式碼編輯器一律會顯示來自 Cedar 4 的錯誤和警告,即使您的政策存放區使用 Cedar 2。您可以使用儲存變更按鈕或驗證許可 API,繼續進行與 Cedar 4 不相容的結構描述更新。
在主控台中檢視結構描述的錯誤
-
登入 AWS Management Console ,並在已驗證的許可
中開啟 Amazon Verified Permissions 主控台。 -
從導覽窗格中,選擇政策存放區,然後選擇您要檢查的政策存放區。
-
在導覽窗格中選擇結構描述。
-
選擇編輯結構描述。
-
選取 JSON 模式。
-
將滑鼠游標移至程式碼編輯器左側裝訂邊的紅色錯誤圖示上。錯誤訊息會顯示在工具提示中。
以下是您可能會遇到的一些常見錯誤,以及如何解決這些錯誤:
- 無法從 JSON 剖析結構描述:`
field-name
` -
使用 Cedar 2,您可以在結構描述的部分中包含任意欄位,例如類型定義,即使它們在 Cedar 結構描述中沒有任何意義。在 Cedar 4 中,不再允許這麼做。若要解決此錯誤,請從 JSON 結構描述中移除名為
field-name
的欄位。如需有效結構描述欄位的清單,請參閱 Cedar 文件。 - 不明的延伸模組類型 `
extension-name
` -
在 Cedar 2 中,當您宣告屬性
type
為 時Extension
,您可以指定name
欄位的任何值,無論該值是否為有效的延伸類型名稱。這是 Cedar 4 的錯誤。若要解決此問題,請將extension-name
取代為有效的延伸類型名稱。您可以在 Cedar 文件中找到有效的延伸類型名稱清單。