建立已驗證許可政策存放區 - Amazon Verified Permissions

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

建立已驗證許可政策存放區

您可以使用下列方法建立政策存放區:

  • 遵循引導式設定 – 建立第一個政策之前,您將定義具有有效動作和主體類型的資源類型。

  • 使用 API Gateway 和身分來源設定 - 使用身分提供者 (IdP) 登入的使用者,以及 Amazon API Gateway 的動作和資源實體來定義您的主體實體API。如果您希望應用程式授權具有使用者群組成員資格或其他屬性的API請求,建議您使用此選項。

  • 從範例政策存放區開始 – 選擇預先定義的範例專案政策存放區。如果您了解 Verified Permissions 並想要檢視和測試範例政策,建議您使用此選項。

  • 建立空的政策存放區 – 您將自行定義結構描述和所有存取政策。如果您已經熟悉設定政策存放區,建議您使用此選項。

Guided setup
使用引導式設定組態方法建立政策存放區

引導式設定精靈會引導您完成建立政策存放區的第一次反覆運算的程序。您將為第一個資源類型建立結構描述,描述適用於該資源類型的動作,以及您授予許可的委託人類型。然後,您將建立您的第一個政策。完成此精靈後,您就可以將 新增至您的政策存放區、擴展結構描述來描述其他資源和主體類型,以及建立其他政策和範本。

  1. 驗證許可主控台中,選取建立新政策存放區。

  2. 開始選項區段中,選擇引導式設定

  3. 輸入政策存放區描述。此文字可以是適合您組織的任何內容,做為目前政策存放區的 函數的易記參考,例如 天氣更新 Web 應用程式

  4. 詳細資訊區段中,輸入結構描述的命名空間。如需命名空間的詳細資訊,請參閱 命名空間定義

  5. 選擇 Next (下一步)

  6. 資源類型視窗中,輸入資源類型的名稱。例如, currentTemperature 可以是天氣更新 Web 應用程式的資源。

  7. (選用) 選擇新增屬性以新增資源屬性。輸入屬性名稱,並為資源的每個屬性選擇屬性類型。選擇是否需要每個屬性。例如, temperatureFormat可以是currentTemperature資源的屬性,可以是華氏或攝氏。若要移除為資源類型新增的屬性,請選擇屬性旁的移除

  8. 動作欄位中,輸入要授權給指定資源類型的動作。若要為資源類型新增其他動作,請選擇新增動作。例如, viewTemperature 可能是天氣更新 Web 應用程式中的動作。若要移除為資源類型新增的動作,請選擇動作旁的移除

  9. 主體類型名稱欄位中,輸入將針對資源類型使用指定動作的主體類型名稱。根據預設,使用者會新增至此欄位,但可以取代。

  10. 選擇 Next (下一步)

  11. 主體類型視窗中,選擇主體類型的身分來源。

    • 如果您的 Verified Permissions 應用程式將直接提供委託人的 ID 和屬性,請選擇自訂。選擇新增屬性以新增主體屬性。已驗證的許可在針對結構描述驗證政策時使用指定的屬性值。若要移除已針對委託人類型新增的屬性,請選擇屬性旁的移除

    • 如果委託人的 ID 和屬性是從 Amazon Cognito Cognito 產生的 ID 或存取字符提供,請選擇 Cognito 使用者集區。選擇 Connect 使用者集區。選取要連線之 Amazon Cognito 使用者集區的使用者集區 ID AWS 區域和類型。選擇連線。如需詳細資訊,請參閱《Amazon Cognito 開發人員指南》中的授權 Amazon 驗證許可Amazon Cognito

    • 如果委託人的 ID 和屬性將從外部OIDC提供者產生的 ID 和/或存取字符中擷取,請選擇外部OIDC提供者,並新增提供者和字符詳細資訊。

  12. 選擇 Next (下一步)

  13. 政策詳細資訊區段中,輸入第一個 Cedar 政策的選用政策描述

  14. 主體範圍欄位中,選擇將從政策授予許可的主體。

    • 選擇特定委託人,將政策套用至特定委託人。在委託人中選擇允許採取動作的委託人欄位,並輸入委託人的實體識別符。例如, user-id可以是天氣更新 Web 應用程式中的實體識別符。

      注意

      如果您使用的是 Amazon Cognito,實體識別符必須格式化為 <userpool-id>|<sub>

    • 選擇所有委託人,將政策套用到政策存放區中的所有委託人。

  15. 資源範圍欄位中,選擇指定委託人將有權執行的資源。

    • 選擇特定資源,將政策套用至特定資源。在資源中選擇此政策應套用至 欄位的資源,並輸入資源的實體識別碼。例如, temperature-id可以是天氣更新 Web 應用程式中的實體識別符。

    • 選擇所有資源,將政策套用至政策存放區中的所有資源。

  16. 動作範圍欄位中,選擇指定主體將獲授權執行的動作。

    • 選擇特定動作集,將政策套用至特定動作。選取此政策應套用到 (Action) 欄位的動作旁的核取方塊。

    • 選擇所有動作,將政策套用至政策存放區中的所有動作。

  17. 在政策預覽區段中檢閱政策。選擇建立政策存放區

Set up with API Gateway and an identity source
使用設定API閘道和身分來源組態方法建立政策存放區

API Gateway 選項APIs使用 Verified Permissions 政策進行保護,這些政策旨在從使用者群組或角色進行授權決策。此選項會建置政策存放區,以使用身分來源群組和API使用 Lambda 授權方的 來測試授權。

IdP 中的使用者及其群組會成為您的主體 (ID 字符) 或您的內容 (存取字符)。Gateway 中的方法和路徑會APIAPI成為政策授權的動作。您的應用程式會成為 資源。由於此工作流程,驗證許可會建立政策存放區、Lambda 函數和 API Lambda 授權方。完成此工作流程API後,您必須將 Lambda 授權方指派給您的 。

  1. 驗證許可主控台中,選取建立新政策存放區。

  2. 開始選項區段中,選擇使用API閘道和身分來源設定,然後選取下一步

  3. 匯入資源和動作步驟的 下API,選擇將做為政策存放區資源和動作模型API的 。

    1. 從 中設定的階段中選擇部署階段API,然後選取匯入 API。如需API階段的詳細資訊,請參閱《Amazon API Gateway 開發人員指南RESTAPI》中的為 設定階段

    2. 預覽匯入資源和動作的映射

    3. 若要更新資源或動作,請在API閘道主控台中修改API路徑或方法,然後選取匯入API以查看更新。

    4. 當您滿意您的選擇時,請選擇下一步

  4. 身分來源中,選擇身分提供者類型。您可以選擇 Amazon Cognito 使用者集區或 OpenID Connect (OIDC) IdP 類型。

  5. 如果您選擇 Amazon Cognito

    1. 選擇與政策存放區相同 AWS 區域 和 AWS 帳戶 中的使用者集區。

    2. 選擇要傳遞給您想要提交以進行授權的權杖類型API。任一種字符類型都包含使用者群組,這是此 API連結授權模型的基礎。

    3. 應用程式用戶端驗證下,您可以將政策存放區的範圍限制為多租戶使用者集區中 Amazon Cognito 應用程式用戶端的子集。若要要求該使用者使用使用者集區中的一或多個指定應用程式用戶端進行身分驗證,請選取僅接受具有預期應用程式用戶端 的字符IDs。若要接受任何使用使用者集區進行身分驗證的使用者,請選取不驗證應用程式用戶端 IDs

    4. 選擇 Next (下一步)

  6. 如果您選擇外部OIDC提供者:

    1. 發行者 URL中,輸入URLOIDC發行者的 。這是提供服務端點,可提供授權伺服器、簽署金鑰,以及有關提供者的其他資訊,例如 https://auth.example.com。您的發行者URL必須在 託管OIDC探索文件/.well-known/openid-configuration

    2. 權杖類型中,選擇您希望應用程式提交以進行授權OIDCJWT的類型。如需詳細資訊,請參閱將身分提供者字符映射至結構描述

    3. (選用) 在權杖宣告中 - 選用,選擇新增權杖宣告,輸入權杖的名稱,然後選擇值類型。

    4. 使用者和群組字符宣告中,執行下列動作:

      1. 在身分來源的字符中輸入使用者宣告名稱。這是來自您的 ID 或存取字符sub的宣告,該宣告會保留要評估之實體的唯一識別符。來自已連線 OIDC IdP 的身分將映射至政策存放區中的使用者類型。

      2. 在身分來源的字符中輸入群組宣告名稱。這是您的 ID 或存取權杖groups中通常包含使用者群組清單的宣告。您的政策存放區會根據群組成員資格來授權請求。

    5. 對象驗證中,選擇Add value並新增您希望政策存放區在授權請求中接受的值。

    6. 選擇 Next (下一步)

  7. 如果您選擇 Amazon Cognito,驗證許可會查詢您的使用者集區是否有群組。對於OIDC提供者,手動輸入群組名稱。將動作指派給群組步驟會為您的政策存放區建立政策,以允許群組成員執行動作。

    1. 選擇或新增您要包含在政策中的群組。

    2. 將動作指派給您選取的每個群組。

    3. 選擇 Next (下一步)

  8. 部署應用程式整合中,選擇是否要稍後手動連接 Lambda 授權方,還是要 Verified Permissions 現在為您執行,並檢閱 Verified Permissions 建立政策存放區和 Lambda 授權方時將採取的步驟。

  9. 當您準備好建立新資源時,請選擇建立政策存放區。

  10. 在瀏覽器中保持政策存放區狀態步驟開啟,以監控驗證許可建立資源的進度。

  11. 一段時間後,通常是大約一小時,或者當部署 Lambda 授權方步驟顯示成功時,如果您選擇手動連接授權方,請設定授權方。

    已驗證的許可將在您的 中建立 Lambda 函數和 Lambda 授權方API。選擇開啟API以導覽至您的 API。

    若要了解如何指派 Lambda 授權方,請參閱《Amazon API Gateway 開發人員指南》中的使用 Gateway Lambda 授權方 API

    1. 導覽至 的授權方,API並記下驗證許可建立的授權方名稱。

    2. 導覽至 資源,然後在 中選取最上層方法API。

    3. 選取方法請求設定下的編輯

    4. 授權方設定為您先前記下的授權方名稱。

    5. 展開HTTP請求標頭,輸入名稱AUTHORIZATION,然後選取必要

    6. 部署API階段。

    7. 儲存您的變更。

  12. 使用您在選擇身分來源步驟中選取的字符類型的使用者集區字符來測試您的授權方。如需使用者集區登入和擷取權杖的詳細資訊,請參閱《Amazon Cognito 開發人員指南》中的使用者集區身分驗證流程

  13. 在 請求的AUTHORIZATION標頭中使用使用者集區字符再次測試身分驗證API。

  14. 檢查您的新政策存放區。新增和精簡政策。

Sample policy store
使用範例政策存放區組態方法建立政策存放區
  1. 開始選項區段中,選擇範例政策存放區。

  2. 範例專案區段中,選擇要使用的範例已驗證許可應用程式類型。

    • PhotoFlash 是面向客戶的 Web 應用程式範例,可讓使用者與好友共用個別的相片和相簿。使用者可以針對允許檢視、評論和重新共用其相片的人員設定精細的許可。帳戶擁有者也可以建立朋友群組,並將相片整理成相簿。

    • DigitalPetStore 是範例應用程式,任何人都可以註冊成為客戶。客戶可以新增寵物以進行銷售、搜尋寵物,以及下訂單。新增寵物的客戶會記錄為寵物擁有者。寵物擁有者可以更新寵物的詳細資訊、上傳寵物影像或刪除寵物清單。下訂單的客戶會記錄為訂單擁有者。訂單擁有者可以取得訂單的詳細資訊或取消訂單。寵物商店管理員具有管理存取權。

      注意

      DigitalPetStore 範例政策存放區不包含政策範本。PhotoFlashTinyTodo 範例政策存放區包含政策範本。

    • TinyTodo 是一種範例應用程式,可讓使用者建立任務和任務清單。清單擁有者可以管理和共用其清單,並指定誰可以檢視或編輯其清單。

  3. 根據您選擇的範例專案,會自動產生範例政策存放區的結構描述命名空間。

  4. 選擇建立政策存放區

    您的政策存放區是使用您所選範例政策存放區的政策和結構描述建立的。如需您可以為範例政策存放區建立的範本連結政策的詳細資訊,請參閱 Amazon Verified Permissions 範本連結政策範例

Empty policy store
使用空白政策存放區組態方法建立政策存放區
  1. 開始選項區段中,選擇空白政策存放區。

  2. 選擇建立政策存放區

建立空白政策存放區時沒有結構描述,這表示政策不會驗證。如需更新政策存放區結構描述的詳細資訊,請參閱 Amazon Verified Permissions 政策存放區結構描述

如需為您的政策存放區建立政策的詳細資訊,請參閱 建立 Amazon Verified Permissions 靜態政策建立 Amazon Verified Permissions 範本連結政策

AWS CLI
使用 建立空的政策存放區 AWS CLI。

您可以使用 create-policy-store操作建立政策存放區。

注意

您使用 建立的政策存放區 AWS CLI 是空的。

$ aws verifiedpermissions create-policy-store \ --validation-settings "mode=STRICT" { "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg111111", "createdDate": "2023-05-16T17:41:29.103459+00:00", "lastUpdatedDate": "2023-05-16T17:41:29.103459+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }
AWS SDKs

您可以使用 CreatePolicyStore 建立政策存放區API。如需詳細資訊,請參閱《Amazon Verified Permissions API參考指南CreatePolicyStore》中的 。