を使用した検証済みアクセス許可の例 AWS CLI - AWS SDKコードの例

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した検証済みアクセス許可の例 AWS CLI

次のコード例は、Verified Permissions AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。

トピック

アクション

次の例は、create-identity-source を使用する方法を説明しています。

AWS CLI

ID ソースを作成するには

次のcreate-identity-source例では、指定された Amazon Cognito ユーザープールに保存されている ID を参照できる ID ソースを作成します。これらの ID は、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" }

ID ソースの詳細については、「Amazon Verified Permissions ユーザーガイド」の「ID プロバイダーでの 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-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 ポリシーテンプレート」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のCreatePolicyTemplate」を参照してください。

次の例は、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

ID ソースを削除するには

次のdelete-identity-source例では、指定された ID を持つ ID ソースを削除します。

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

このコマンドでは何も出力されません。

ID ソースの詳細については、「Amazon Verified Permissions ユーザーガイド」の「ID プロバイダーでの 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-id PSEXAMPLEabcdefg111111

このコマンドでは何も出力されません。

ポリシーテンプレートの詳細については、「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-id PSEXAMPLEabcdefg111111

このコマンドでは何も出力されません。

ポリシーの詳細については、「Amazon Verified Permissions ユーザーガイド」の「Amazon Verified Permissions ポリシー」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のDeletePolicy」を参照してください。

次のコード例は、get-identity-source を使用する方法を示しています。

AWS CLI

ID ソースの詳細を取得するには

次のget-identity-source例では、指定された ID を持つ 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" }

ID ソースの詳細については、「Amazon Verified Permissions ユーザーガイド」の「ID プロバイダーでの 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 が提供する ID トークンを使用します。この例では、指定された情報ストアは、プリンシパルを タイプのエンティティとして返すように設定されています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 から ID を受け入れる次のステートメントを含むポリシーが含まれています。

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

出力:

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

Cognito ユーザープールからの ID の使用の詳細については、「Amazon Verified Permissions ユーザーガイド」の「ID プロバイダーでの Amazon Verified Permissions の使用」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のIsAuthorizedWithToken」を参照してください。

次のコード例は、is-authorized を使用する方法を示しています。

AWS CLI

例 1: ユーザーリクエストの承認決定をリクエストするには (許可)

次のis-authorized例では、 User というタイプのリソースに対して Aliceという名前のプリンシパルの承認決定をリクエストします。このプリンシパルは、 Photoという名前のリソースに対して updatePhotoオペレーションを実行しますVacationPhoto94.jpg

レスポンスは、リクエストが 1 つのポリシーで許可されていることを示します。

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"

出力は、 のリストが空であるため、 DeterminingPoliciesが暗黙Deny的であったことを示します。

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

使用可能な ID ソースを一覧表示するには

次のlist-identity-sources例では、指定されたポリシーストア内のすべての ID ソースを一覧表示します。

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

ID ソースの詳細については、Amazon Verified Permissions ユーザーガイドの「ID プロバイダーでの 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 リージョン内のすべてのポリシーストアを一覧表示します。create-policy-store および を除く検証済みアクセス許可のすべてのコマンドでは、操作するポリシーストアの ID を指定list-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 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 を文字列に変換する必要があります。

文字列の例は、読みやすいように複数の行にラップして表示できますが、オペレーションではパラメータを 1 行の文字列として送信する必要があります。

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

ID ソースを更新するには

次のupdate-identity-source例では、新しい Cognito ユーザープール設定を指定し、ID ソースによって返されるエンティティタイプを変更することで、指定された ID ソースを変更します。

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

ID ソースの詳細については、「Amazon Verified Permissions ユーザーガイド」の「ID プロバイダーでの 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-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 ポリシーテンプレート」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のUpdatePolicyTemplate」を参照してください。

次の例は、update-policy を使用する方法を説明しています。

AWS CLI

例 1: 静的ポリシーを作成するには

次のcreate-policy例では、プリンシパルとリソースの両方を指定するポリシースコープを持つ静的ポリシーを作成します。

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

statement パラメータは、JSON オブジェクトの文字列表現を取得します。これには、最も外側の引用符ペア内に埋め込み引用符 (「) が含まれます。そのためには、バックスラッシュ文字 (「」) で埋め込まれたすべての引用符を先行させ、すべての行を改行のない単一のテキスト行に結合して、JSON を文字列に変換する必要があります。

文字列の例は、読みやすいように複数の行にラップして表示できますが、オペレーションではパラメータを 1 行の文字列として送信する必要があります。

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」を参照してください。