文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的已驗證許可範例 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-idPSEXAMPLEabcdefg111111
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 與身分提供者搭配使用。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateIdentitySource
。
-
下列程式碼範例示範如何使用 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-idPSEXAMPLEabcdefg111111
檔案 的內容
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 政策範本。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreatePolicyTemplate
。
-
下列程式碼範例示範如何使用 create-policy
。
- AWS CLI
-
範例 1:建立靜態政策
下列
create-policy
範例會建立具有指定主體和資源的政策範圍的靜態政策。aws verifiedpermissions create-policy \ --definition
file://definition1.txt
\ --policy-store-idPSEXAMPLEabcdefg111111
檔案 的內容
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-idPSEXAMPLEabcdefg111111
檔案 的內容
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-idPSEXAMPLEabcdefg111111
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-idPSEXAMPLEabcdefg111111
此命令不會產生輸出。
如需身分來源的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的將 Amazon Verified Permissions 與身分提供者搭配使用。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteIdentitySource
。
-
下列程式碼範例示範如何使用 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-idPSEXAMPLEabcdefg111111
此命令不會產生輸出。
如需政策範本的詳細資訊,請參閱 Amazon Verified Permissions 使用者指南中的 Amazon Verified Permissions 政策範本。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeletePolicyTemplate
。
-
下列程式碼範例示範如何使用 delete-policy
。
- AWS CLI
-
刪除靜態或範本連結政策
下列
delete-policy
範例會刪除具有指定 ID 的政策。aws verifiedpermissions delete-policy \ --policy-id
SPEXAMPLEabcdefg111111
\ --policy-store-idPSEXAMPLEabcdefg111111
此命令不會產生輸出。
如需政策的詳細資訊,請參閱 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-idPSEXAMPLEabcdefg111111
輸出:
{ "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-idPSEXAMPLEabcdefg111111
輸出:
{ "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-idPSEXAMPLEabcdefg111111
輸出:
{ "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 與身分提供者搭配使用。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 IsAuthorizedWithToken
。
-
下列程式碼範例示範如何使用 is-authorized
。
- AWS CLI
-
範例 1:請求使用者請求的授權決策 (允許)
下列
is-authorized
範例會針對User
名為 的主體類型請求授權決策Alice
,而該主體想要在Photo
名為 的 資源上執行updatePhoto
操作VacationPhoto94.jpg
。回應顯示一個政策允許請求。
aws verifiedpermissions is-authorized \ --principal
entityType=User,entityId=alice
\ --actionactionType=Action,actionId=view
\ --resourceentityType=Photo,entityId=VactionPhoto94.jpg
\ --policy-store-idPSEXAMPLEabcdefg111111
輸出:
{ "decision": "ALLOW", "determiningPolicies": [ { "policyId": "SPEXAMPLEabcdefg111111" } ], "errors": [] }
範例 2:請求使用者請求的授權決定 (拒絕)
下列範例與上一個範例相同,但主體為 除外
User::"Bob"
。政策存放區不包含任何允許該使用者存取 的政策Album::"alice_folder"
。輸出指出
Deny
是隱含的,因為 的清單DeterminingPolicies
是空的。aws verifiedpermissions create-policy \ --definition
file://definition2.txt
\ --policy-store-idPSEXAMPLEabcdefg111111
輸出:
{ "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 與身分提供者搭配使用。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListIdentitySources
。
-
下列程式碼範例示範如何使用 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 政策範本。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListPolicyTemplates
。
-
下列程式碼範例示範如何使用 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-configurationfile://config.txt
\ --principal-entity-type"Employee"
\ --policy-store-idPSEXAMPLEabcdefg111111
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 與身分提供者搭配使用。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateIdentitySource
。
-
下列程式碼範例示範如何使用 update-policy-store
。
- AWS CLI
-
更新政策存放區
下列
update-policy-store
範例會透過變更政策存放區驗證設定來修改政策存放區。aws verifiedpermissions update-policy-store \ --validation-settings
"mode=STRICT"
\ --policy-store-idPSEXAMPLEabcdefg111111
輸出:
{ "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
\ --statementfile://template1.txt
\ --policy-store-idPSEXAMPLEabcdefg111111
檔案 的內容
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 政策範本。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdatePolicyTemplate
。
-
下列程式碼範例示範如何使用 update-policy
。
- AWS CLI
-
範例 1:建立靜態政策
下列
create-policy
範例會建立具有指定主體和資源的政策範圍的靜態政策。aws verifiedpermissions create-policy \ --definition
file://definition.txt
\ --policy-store-idPSEXAMPLEabcdefg111111
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-idPSEXAMPLEabcdefg111111
檔案 的內容
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-idPSEXAMPLEabcdefg111111
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
。
-