使用 的已驗證許可範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

使用 的已驗證許可範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Verified Permissions 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 create-identity-source

AWS CLI

建立身分來源

下列create-identity-source範例會建立身分來源,可讓您參考存放在指定 Amazon Cognito 使用者集區中的身分。這些身分在 Verified Permissions 中可作為類型 的實體使用User

aws verifiedpermissions create-identity-source \ --configuration file://config.txt \ --principal-entity-type "User" \ --policy-store-id PSEXAMPLEabcdefg111111

config.txt 的內容:

{ "cognitoUserPoolConfiguration": { "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5", "clientIds":["a1b2c3d4e5f6g7h8i9j0kalbmc"] } }

輸出:

{ "createdDate": "2023-05-19T20:30:28.214829+00:00", "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-05-19T20:30:28.214829+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }

如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

下列程式碼範例示範如何使用 create-policy-store

AWS CLI

建立政策存放區

下列create-policy-store範例會在目前 AWS 區域中建立政策存放區。

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" }

如需政策存放區的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策存放區。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreatePolicyStore

下列程式碼範例示範如何使用 create-policy-template

AWS CLI

範例 1:建立政策範本

下列create-policy-template範例會建立具有 陳述式的政策範本,其中包含主體的預留位置。

aws verifiedpermissions create-policy-template \ --definition file://template1.txt \ --policy-store-id PSEXAMPLEabcdefg111111

檔案 的內容template1.txt

permit( principal in ?principal, action == Action::"view", resource == Photo::"VacationPhoto94.jpg" );

輸出:

{ "createdDate": "2023-06-12T20:47:42.804511+00:00", "lastUpdatedDate": "2023-06-12T20:47:42.804511+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyTemplateId": "PTEXAMPLEabcdefg111111" }

如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本

下列程式碼範例示範如何使用 create-policy

AWS CLI

範例 1:建立靜態政策

下列create-policy範例會建立具有指定主體和資源的政策範圍的靜態政策。

aws verifiedpermissions create-policy \ --definition file://definition1.txt \ --policy-store-id PSEXAMPLEabcdefg111111

檔案 的內容definition1.txt

{ "static": { "description": "Grant everyone of janeFriends UserGroup access to the vacationFolder Album", "statement": "permit(principal in UserGroup::\"janeFriends\", action, resource in Album::\"vacationFolder\" );" } }

輸出:

{ "createdDate": "2023-06-12T20:33:37.382907+00:00", "lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00", "policyId": "SPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "STATIC", "principal": { "entityId": "janeFriends", "entityType": "UserGroup" }, "resource": { "entityId": "vacationFolder", "entityType": "Album" } }

範例 2:建立靜態政策,將資源的存取權授予每個人

下列create-policy範例會建立具有政策範圍的靜態政策,該範圍僅指定資源。

aws verifiedpermissions create-policy \ --definition file://definition2.txt \ --policy-store-id PSEXAMPLEabcdefg111111

檔案 的內容definition2.txt

{ "static": { "description": "Grant everyone access to the publicFolder Album", "statement": "permit(principal, action, resource in Album::\"publicFolder\");" } }

輸出:

{ "createdDate": "2023-06-12T20:39:44.975897+00:00", "lastUpdatedDate": "2023-06-12T20:39:44.975897+00:00", "policyId": "PbfR73F8oh5MMfr9uRtFDB", "policyStoreId": "PSEXAMPLEabcdefg222222", "policyType": "STATIC", "resource": { "entityId": "publicFolder", "entityType": "Album" } }

範例 3:建立與指定範本相關聯的範本連結政策

下列create-policy範例使用指定的政策範本建立範本連結政策,並將指定的主體與新範本連結政策建立關聯。

aws verifiedpermissions create-policy \ --definition file://definition.txt \ --policy-store-id PSEXAMPLEabcdefg111111

definition.txt 的內容:

{ "templateLinked": { "policyTemplateId": "PTEXAMPLEabcdefg111111", "principal": { "entityType": "User", "entityId": "alice" } } }

輸出:

{ "createdDate": "2023-06-12T20:49:51.490211+00:00", "lastUpdatedDate": "2023-06-12T20:49:51.490211+00:00", "policyId": "TPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "TEMPLATE_LINKED", "principal": { "entityId": "alice", "entityType": "User" }, "resource": { "entityId": "VacationPhoto94.jpg", "entityType": "Photo" } }

如需政策的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreatePolicy

下列程式碼範例示範如何使用 delete-identity-source

AWS CLI

若要刪除身分來源

下列delete-identity-source範例會刪除具有指定 ID 的身分來源。

aws verifiedpermissions delete-identity-source \ --identity-source-id ISEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

此命令不會產生輸出。

如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

下列程式碼範例示範如何使用 delete-policy-store

AWS CLI

若要刪除政策存放區

下列delete-policy-store範例會刪除具有指定 ID 的政策存放區。

aws verifiedpermissions delete-policy-store \ --policy-store-id PSEXAMPLEabcdefg111111

此命令不會產生輸出。

如需政策存放區的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策存放區。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeletePolicyStore

下列程式碼範例示範如何使用 delete-policy-template

AWS CLI

若要刪除政策範本

下列delete-policy-template範例會刪除具有指定 ID 的政策範本。

aws verifiedpermissions delete-policy \ --policy-template-id PTEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

此命令不會產生輸出。

如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本

下列程式碼範例示範如何使用 delete-policy

AWS CLI

刪除靜態或範本連結政策

下列delete-policy範例會刪除具有指定 ID 的政策。

aws verifiedpermissions delete-policy \ --policy-id SPEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

此命令不會產生輸出。

如需政策的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeletePolicy

下列程式碼範例示範如何使用 get-identity-source

AWS CLI

擷取身分來源的詳細資訊

下列get-identity-source範例顯示具有指定 ID 之身分來源的詳細資訊。

aws verifiedpermissions get-identity-source \ --identity-source ISEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "createdDate": "2023-06-12T22:27:49.150035+00:00", "details": { "clientIds": [ "a1b2c3d4e5f6g7h8i9j0kalbmc" ], "discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_1a2b3c4d5", "openIdIssuer": "COGNITO", "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5" }, "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-06-12T22:27:49.150035+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "principalEntityType": "User" }

如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetIdentitySource

下列程式碼範例示範如何使用 get-policy-store

AWS CLI

擷取政策存放區的詳細資訊

下列get-policy-store範例顯示具有指定 ID 的政策存放區詳細資訊。

aws verifiedpermissions get-policy-store \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg111111", "createdDate": "2023-06-05T20:16:46.225598+00:00", "lastUpdatedDate": "2023-06-08T20:40:23.173691+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "validationSettings": { "mode": "OFF" } }

如需政策存放區的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策存放區。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetPolicyStore

下列程式碼範例示範如何使用 get-policy-template

AWS CLI

擷取政策範本的詳細資訊

下列get-policy-template範例顯示具有指定 ID 的政策範本詳細資訊。

aws verifiedpermissions get-policy-template \ --policy-template-id PTEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "createdDate": "2023-06-12T20:47:42.804511+00:00", "lastUpdatedDate": "2023-06-12T20:47:42.804511+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyTemplateId": "PTEXAMPLEabcdefg111111", "statement": "permit(\n principal in ?principal,\n action == Action::\"view\",\n resource == Photo::\"VacationPhoto94.jpg\"\n);" }

如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetPolicyTemplate

下列程式碼範例示範如何使用 get-policy

AWS CLI

擷取政策的詳細資訊

下列get-policy範例顯示具有指定 ID 的政策詳細資訊。

aws verifiedpermissions get-policy \ --policy-id PSEXAMPLEabcdefg111111 \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "createdDate": "2023-06-12T20:33:37.382907+00:00", "definition": { "static": { "description": "Grant everyone of janeFriends UserGroup access to the vacationFolder Album", "statement": "permit(principal in UserGroup::\"janeFriends\", action, resource in Album::\"vacationFolder\" );" } }, "lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00", "policyId": "SPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "STATIC", "principal": { "entityId": "janeFriends", "entityType": "UserGroup" }, "resource": { "entityId": "vacationFolder", "entityType": "Album" } }

如需政策的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetPolicy

下列程式碼範例示範如何使用 get-schema

AWS CLI

若要擷取政策存放區中的結構描述

下列get-schema範例顯示指定政策存放區中結構描述的詳細資訊。

aws verifiedpermissions get-schema \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "policyStoreId": "PSEXAMPLEabcdefg111111", "schema": "{\"MySampleNamespace\":{\"entityTypes\":{\"Employee\":{\"shape\":{\"attributes\":{\"jobLevel\":{\"type\":\"Long\"},\"name\":{\"type\":\"String\"}},\"type\":\"Record\"}}},\"actions\":{\"remoteAccess\":{\"appliesTo\":{\"principalTypes\":[\"Employee\"]}}}}}", "createdDate": "2023-06-14T17:47:13.999885+00:00", "lastUpdatedDate": "2023-06-14T17:47:13.999885+00:00" }

如需結構描述的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的政策存放區結構描述

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetSchema

下列程式碼範例示範如何使用 is-authorized-with-token

AWS CLI

範例 1:請求使用者請求的授權決策 (允許)

下列is-authorized-with-token範例會為 Amazon Cognito 已驗證的使用者請求授權決定。請求使用 Cognito 提供的身分字符,而不是存取字符。在此範例中,指定的資訊存放區設定為將主體傳回為類型 的實體CognitoUser

aws verifiedpermissions is-authorized-with-token \ --action actionId="View",actionType="Action" \ --resource entityId="vacationPhoto94.jpg",entityType="Photo" \ --policy-store-id PSEXAMPLEabcdefg111111 \ --identity-token "AbCdE12345...long.string...54321EdCbA"

政策存放區包含具有下列陳述式的政策,可接受來自指定 Cognito 使用者集區和應用程式 ID 的身分。

permit( principal == CognitoUser::"us-east-1_1a2b3c4d5|a1b2c3d4e5f6g7h8i9j0kalbmc", action, resource == Photo::"VacationPhoto94.jpg" );

輸出:

{ "decision":"Allow", "determiningPolicies":[ { "determiningPolicyId":"SPEXAMPLEabcdefg111111" } ], "errors":[] }

如需從 Cognito 使用者集區使用身分的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

下列程式碼範例示範如何使用 is-authorized

AWS CLI

範例 1:請求使用者請求的授權決策 (允許)

下列is-authorized範例會針對User名為 的主體類型請求授權決策Alice,而該主體想要在Photo名為 的 資源上執行 updatePhoto操作VacationPhoto94.jpg

回應顯示一個政策允許請求。

aws verifiedpermissions is-authorized \ --principal entityType=User,entityId=alice \ --action actionType=Action,actionId=view \ --resource entityType=Photo,entityId=VactionPhoto94.jpg \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "decision": "ALLOW", "determiningPolicies": [ { "policyId": "SPEXAMPLEabcdefg111111" } ], "errors": [] }

範例 2:請求使用者請求的授權決定 (拒絕)

下列範例與上一個範例相同,但主體為 除外User::"Bob"。政策存放區不包含任何允許該使用者存取 的政策Album::"alice_folder"

輸出指出 Deny是隱含的,因為 的清單DeterminingPolicies是空的。

aws verifiedpermissions create-policy \ --definition file://definition2.txt \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "decision": "DENY", "determiningPolicies": [], "errors": [] }

如需詳細資訊,請參閱 Amazon Verified Permissions 使用者指南

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 IsAuthorized

下列程式碼範例示範如何使用 list-identity-sources

AWS CLI

列出可用的身分來源

下列list-identity-sources範例列出指定政策存放區中的所有身分來源。

aws verifiedpermissions list-identity-sources \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "identitySources": [ { "createdDate": "2023-06-12T22:27:49.150035+00:00", "details": { "clientIds": [ "a1b2c3d4e5f6g7h8i9j0kalbmc" ], "discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_1a2b3c4d5", "openIdIssuer": "COGNITO", "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5" }, "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-06-12T22:27:49.150035+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "principalEntityType": "User" } ] }

如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

下列程式碼範例示範如何使用 list-policies

AWS CLI

若要列出可用的政策

下列list-policies範例列出指定政策存放區中的所有政策。

aws verifiedpermissions list-policies \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "policies": [ { "createdDate": "2023-06-12T20:33:37.382907+00:00", "definition": { "static": { "description": "Grant everyone of janeFriends UserGroup access to the vacationFolder Album" } }, "lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00", "policyId": "SPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "STATIC", "principal": { "entityId": "janeFriends", "entityType": "UserGroup" }, "resource": { "entityId": "vacationFolder", "entityType": "Album" } }, { "createdDate": "2023-06-12T20:39:44.975897+00:00", "definition": { "static": { "description": "Grant everyone access to the publicFolder Album" } }, "lastUpdatedDate": "2023-06-12T20:39:44.975897+00:00", "policyId": "SPEXAMPLEabcdefg222222", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "STATIC", "resource": { "entityId": "publicFolder", "entityType": "Album" } }, { "createdDate": "2023-06-12T20:49:51.490211+00:00", "definition": { "templateLinked": { "policyTemplateId": "PTEXAMPLEabcdefg111111" } }, "lastUpdatedDate": "2023-06-12T20:49:51.490211+00:00", "policyId": "SPEXAMPLEabcdefg333333", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "TEMPLATE_LINKED", "principal": { "entityId": "alice", "entityType": "User" }, "resource": { "entityId": "VacationPhoto94.jpg", "entityType": "Photo" } } ] }

如需政策的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListPolicies

下列程式碼範例示範如何使用 list-policy-stores

AWS CLI

列出可用的政策存放區

下列list-policy-stores範例列出 AWS 區域中的所有政策存放區。Verified Permissions 的所有命令,但 list-policy-stores create-policy-store需要您指定要使用的政策存放區的 ID。

aws verifiedpermissions list-policy-stores

輸出:

{ "policyStores": [ { "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg111111", "createdDate": "2023-06-05T20:16:46.225598+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }, { "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg222222", "createdDate": "2023-06-08T18:09:37.364356+00:00", "policyStoreId": "PSEXAMPLEabcdefg222222" }, { "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg333333", "createdDate": "2023-06-08T18:09:46.920600+00:00", "policyStoreId": "PSEXAMPLEabcdefg333333" } ] }

如需政策存放區的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策存放區。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListPolicyStores

下列程式碼範例示範如何使用 list-policy-templates

AWS CLI

列出可用的政策範本

下列list-policy-templates範例列出指定政策存放區中的所有政策範本。

aws verifiedpermissions list-policy-templates \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "policyTemplates": [ { "createdDate": "2023-06-12T20:47:42.804511+00:00", "lastUpdatedDate": "2023-06-12T20:47:42.804511+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyTemplateId": "PTEXAMPLEabcdefg111111" } ] }

如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本

下列程式碼範例示範如何使用 put-schema

AWS CLI

將結構描述儲存至政策存放區

下列put-schema範例會在指定的政策存放區中建立或取代結構描述。

輸入檔案中的 cedarJson 參數會取得 JSON 物件的字串表示法。它包含最外部引號對內的內嵌引號 (")。這需要您將所有內嵌引號前面加上反斜線字元 ( " ),並將所有行合併為單一文字行,沒有換行符號,藉此將 JSON 轉換為字串。

範例字串可在此顯示為橫跨多行,以便讀取,但操作需要以單行字串形式提交參數。

aws verifiedpermissions put-schema -- Definition file://schema.txt --policy-store-id PSEXAMPLEabcdefg111111Word

schema.txt 的內容:

{ "cedarJson": "{\"MySampleNamespace\": {\"actions\": {\"remoteAccess\": { \"appliesTo\": {\"principalTypes\": [\"Employee\"]}}},\"entityTypes\": { \"Employee\": {\"shape\": {\"attributes\": {\"jobLevel\": {\"type\": \"Long\"},\"name\": {\"type\": \"String\"}},\"type\": \"Record\"}}}}}" }

輸出:

{ "policyStoreId": "PSEXAMPLEabcdefg111111", "namespaces": [ "MySampleNamespace" ], "createdDate": "2023-06-14T17:47:13.999885+00:00", "lastUpdatedDate": "2023-06-14T17:47:13.999885+00:00" }

如需結構描述的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的政策存放區結構描述

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 PutSchema

下列程式碼範例示範如何使用 update-identity-source

AWS CLI

更新身分來源

下列update-identity-source範例提供新的 Cognito 使用者集區組態,並變更身分來源傳回的實體類型,藉此修改指定的身分來源。

aws verifiedpermissions update-identity-source --identity-source-id ISEXAMPLEabcdefg111111 \ --update-configuration file://config.txt \ --principal-entity-type "Employee" \ --policy-store-id PSEXAMPLEabcdefg111111

config.txt 的內容:

{ "cognitoUserPoolConfiguration": { "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5", "clientIds":["a1b2c3d4e5f6g7h8i9j0kalbmc"] } }

輸出:

{ "createdDate": "2023-05-19T20:30:28.214829+00:00", "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-05-19T20:30:28.214829+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }

如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用

下列程式碼範例示範如何使用 update-policy-store

AWS CLI

更新政策存放區

下列update-policy-store範例會透過變更政策存放區驗證設定來修改政策存放區。

aws verifiedpermissions update-policy-store \ --validation-settings "mode=STRICT" \ --policy-store-id PSEXAMPLEabcdefg111111

輸出:

{ "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" }

如需政策存放區的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策存放區。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdatePolicyStore

下列程式碼範例示範如何使用 update-policy-template

AWS CLI

範例 1:更新政策範本

下列update-policy-template範例修改指定的範本連結政策以取代其政策陳述式。

aws verifiedpermissions update-policy-template \ --policy-template-id PTEXAMPLEabcdefg111111 \ --statement file://template1.txt \ --policy-store-id PSEXAMPLEabcdefg111111

檔案 的內容template1.txt

permit( principal in ?principal, action == Action::"view", resource == Photo::"VacationPhoto94.jpg" );

輸出:

{ "createdDate": "2023-06-12T20:47:42.804511+00:00", "lastUpdatedDate": "2023-06-12T20:47:42.804511+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyTemplateId": "PTEXAMPLEabcdefg111111" }

如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本

下列程式碼範例示範如何使用 update-policy

AWS CLI

範例 1:建立靜態政策

下列create-policy範例會建立具有指定主體和資源的政策範圍的靜態政策。

aws verifiedpermissions create-policy \ --definition file://definition.txt \ --policy-store-id PSEXAMPLEabcdefg111111

statement 參數會取得 JSON 物件的字串表示法。它包含最外部引號對內的內嵌引號 (")。這需要您將所有內嵌引號前面加上反斜線字元 ( " ),並將所有行合併為單一文字行,沒有換行符號,藉此將 JSON 轉換為字串。

範例字串可在此顯示為橫跨多行,以便讀取,但操作需要以單行字串形式提交參數。

檔案 的內容definition.txt

{ "static": { "description": "Grant everyone of janeFriends UserGroup access to the vacationFolder Album", "statement": "permit(principal in UserGroup::\"janeFriends\", action, resource in Album::\"vacationFolder\" );" } }

輸出:

{ "createdDate": "2023-06-12T20:33:37.382907+00:00", "lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00", "policyId": "SPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "STATIC", "principal": { "entityId": "janeFriends", "entityType": "UserGroup" }, "resource": { "entityId": "vacationFolder", "entityType": "Album" } }

範例 2:建立靜態政策,將資源的存取權授予每個人

下列create-policy範例會建立具有政策範圍的靜態政策,該範圍僅指定資源。

aws verifiedpermissions create-policy \ --definition file://definition2.txt \ --policy-store-id PSEXAMPLEabcdefg111111

檔案 的內容definition2.txt

{ "static": { "description": "Grant everyone access to the publicFolder Album", "statement": "permit(principal, action, resource in Album::\"publicFolder\");" } }

輸出:

{ "createdDate": "2023-06-12T20:39:44.975897+00:00", "lastUpdatedDate": "2023-06-12T20:39:44.975897+00:00", "policyId": "PbfR73F8oh5MMfr9uRtFDB", "policyStoreId": "PSEXAMPLEabcdefg222222", "policyType": "STATIC", "resource": { "entityId": "publicFolder", "entityType": "Album" } }

範例 3:建立與指定範本相關聯的範本連結政策

下列create-policy範例使用指定的政策範本建立範本連結政策,並將指定的主體與新範本連結政策建立關聯。

aws verifiedpermissions create-policy \ --definition file://definition2.txt \ --policy-store-id PSEXAMPLEabcdefg111111

definition3.txt 的內容:

{ "templateLinked": { "policyTemplateId": "PTEXAMPLEabcdefg111111", "principal": { "entityType": "User", "entityId": "alice" } } }

輸出:

{ "createdDate": "2023-06-12T20:49:51.490211+00:00", "lastUpdatedDate": "2023-06-12T20:49:51.490211+00:00", "policyId": "TPEXAMPLEabcdefg111111", "policyStoreId": "PSEXAMPLEabcdefg111111", "policyType": "TEMPLATE_LINKED", "principal": { "entityId": "alice", "entityType": "User" }, "resource": { "entityId": "VacationPhoto94.jpg", "entityType": "Photo" } }

如需政策的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdatePolicy