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

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

を使用した検証済みアクセス許可の例 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というタイプのリソースに対して AliceupdatePhotoオペレーションを実行する Photoというタイプのプリンシパルの承認決定をリクエストします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 および を除く Verified Permissions のすべてのコマンドでは、操作するポリシーストアの 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オブジェクトの文字列表現を取得します。これには、最も外側の引用符ペア内に埋め込まれた引用符 (「) が含まれます。そのためには、すべての埋め込み引用符にバックスラッシュ文字 (「」) を付け、すべての行を改行のない 1 つのテキスト行に結合して、 JSONを文字列に変換する必要があります。

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

aws verifiedpermissions put-schema --definition file://schema.txt --policy-store-id PSEXAMPLEabcdefg111111

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オブジェクトの文字列表現を取得します。これには、最も外側の引用符ペア内に埋め込まれた引用符 (「) が含まれます。そのためには、すべての埋め込み引用符にバックスラッシュ文字 (「」) を付け、すべての行を改行のない 1 つのテキスト行に結合して、 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」の「」を参照してください。