驗證權限示例使用 AWS CLI - AWS Command Line Interface

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

驗證權限示例使用 AWS CLI

下列程式碼範例說明如何使用 [已驗證的權限] 來執行動作及實作常見案例。 AWS Command Line Interface

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

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

主題

動作

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

AWS CLI

建立身分識別來源的步驟

下列create-identity-source範例會建立一個身分識別來源,讓您參考存放在指定 Amazon Cognito 使用者集區中的身分。這些識別可在 [已驗證的權限] 中作為類型的實體使用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 驗證許可使用者指南中的對身分提供者使用 Amazon 驗證許可。

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策存放區

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策範本

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策

  • 如需 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 驗證許可使用者指南中的對身分提供者使用 Amazon 驗證許可。

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

AWS CLI

刪除策略存放區

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

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

此命令不會產生輸出。

如需政策存放區的詳細資訊,請參閱 Amazon 驗證許可使用者指南中的 Amazon 驗證許可政策存放區

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

AWS CLI

若要刪除策略範本

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

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

此命令不會產生輸出。

如需政策範本的詳細資訊,請參閱 Amazon 驗證許可使用者指南中的 Amazon 驗證許可政策範本

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

AWS CLI

若要刪除靜態或範本連結原則

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

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

此命令不會產生輸出。

如需有關政策的詳細資訊,請參閱 Amazon 驗證許可使用者指南中的 Amazon 驗證許可政策

  • 如需 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 驗證許可使用者指南中的對身分提供者使用 Amazon 驗證許可。

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策存放區

  • 如需 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 驗證許可使用者指南中的 Amazon 驗證許可政策範本

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策

  • 如需 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 驗證許可使用者指南中的政策存放區結構描述

  • 如需 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 使用者集區和應用程式識別碼的識別。

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

輸出:

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

如需有關使用 Cognito 使用者集區中身分的詳細資訊,請參閱 Amazon 驗證許可使用者指南中的將 Amazon 驗證許可與身分提供搭配使用。

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

AWS CLI

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

下列is-authorized範例會針對名為類型的主參與者 (想要執行updatePhoto作業)Alice,要求對User名為類型Photo的資源進行授權決定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 驗證許可使用者指南

  • 如需 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 驗證許可使用者指南中的對身分提供者使用 Amazon 驗證許可。

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策

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

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

AWS CLI

列出可用的策略存放區

下列list-policy-stores範例會列出區域中的所有原則存放 AWS 區。除了create-policy-storelist-policy-stores要求您指定要使用之原則存放區的識別碼之外的所有命令。

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 驗證許可使用者指南中的 Amazon 驗證許可政策存放區

  • 如需 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 驗證許可使用者指南中的 Amazon 驗證許可政策範本

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

AWS CLI

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

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

輸入檔案中的cedarJson參數會採用 JSON 物件的字串表示。它包含內嵌的引號 (「) 在最外面的引號配對中。這需要您將 JSON 轉換為字串,方法是在所有內嵌的引號前加上反斜線字元 ("),並將所有行合併為單一文字行而不會有換行符號。

為了方便閱讀,可以在此處顯示範例字串包覆多行,但此作業需要將參數提交為單行字串。

aws 驗證權限放置架構-定義文件://schema.txt policy-store-id

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 驗證許可使用者指南中的政策存放區結構描述

  • 如需 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 驗證許可使用者指南中的對身分提供者使用 Amazon 驗證許可。

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策存放區

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策範本

下列程式碼範例會示範如何使用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 驗證許可使用者指南中的 Amazon 驗證許可政策

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