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

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

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

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

  • 遵循引導式設定 – 在建立第一個政策之前,您將使用有效的動作和委託人類型來定義資源類型。

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

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

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

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

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

  1. Verified Permissions 主控台中,選取建立新政策存放區

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

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

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

  5. 選擇下一步

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

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

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

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

  10. 選擇下一步

  11. 委託人類型視窗中,為您的委託人類型選擇身分來源。

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

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

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

  12. 選擇下一步

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

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

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

      注意

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

    • 選擇所有主體,將政策套用到政策存放區中的所有主體。

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

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

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

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

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

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

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

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

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

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

  1. Verified Permissions 主控台中,選取建立新政策存放區

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

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

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

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

    3. 若要更新資源或動作,請在 API Gateway 主控台中修改您的 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. 選擇下一步

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

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

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

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

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

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

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

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

    6. 選擇下一步

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

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

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

    3. 選擇下一步

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

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

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

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

    Verified Permissions 將在您的 API 中建立 Lambda 函數和 Lambda 授權方。選擇開啟 API 以導覽至您的 API。

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

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

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

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

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

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

    6. 部署 API 階段。

    7. 儲存您的變更。

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

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

  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