Ejemplos de Verified Permissions que utilizan la AWS CLI - AWS Command Line Interface

Ejemplos de Verified Permissions que utilizan la AWS CLI

En los siguientes ejemplos de código, se muestra cómo realizar acciones e implementar escenarios comunes usando AWS Command Line Interface con Verified Permissions.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar create-identity-source.

AWS CLI

Para crear un origen de identidad

En el siguiente ejemplo de create-identity-source, se crea un origen de identidad que permite hacer referencia a las identidades almacenadas en el grupo de usuarios de Amazon Cognito especificado. Esas identidades están disponibles en Verified Permissions como entidades de tipo User.

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

Contenido de config.txt:

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

Salida:

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

Para obtener más información los orígenes de las identidades, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte CreateIdentitySource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-policy-store.

AWS CLI

Para crear un almacén de políticas

En el siguiente ejemplo de create-policy-store, se crea un almacén de políticas en la región de AWS actual.

aws verifiedpermissions create-policy-store \ --validation-settings "mode=STRICT"

Salida:

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

Para obtener más información, consulte Amazon Verified Permissions policy stores en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte CreatePolicyStore en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-policy-template.

AWS CLI

Ejemplo 1: creación de una plantilla de políticas

En el siguiente ejemplo de create-policy-template, se crea una plantilla de política con una instrucción que contiene un marcador de posición para la entidad principal.

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

Contenido del archivo template1.txt:

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

Salida:

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

Para obtener más información acerca de las plantillas de políticas, consulte Amazon Verified Permissions policy templates en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte CreatePolicyTemplate en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-policy.

AWS CLI

Ejemplo 1: creación de una política estática

En el siguiente ejemplo de create-policy, se crea una política estática con un ámbito de la política que especifica tanto una entidad principal como un recurso.

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

Contenido del archivo 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\" );" } }

Salida:

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

Ejemplo 2: creación de una política estática que conceda acceso general a un recurso

En el siguiente ejemplo de create-policy, se crea una política estática con un ámbito de la política que especifica únicamente un recurso.

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

Contenido del archivo definition2.txt:

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

Salida:

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

Ejemplo 3: creación de una política vinculada a una plantilla que esté asociada a la plantilla especificada

En el siguiente ejemplo de create-policy, se crea una política vinculada a una plantilla mediante la plantilla de política especificada y se asocia la entidad principal especificada a utilizar con la nueva política vinculada a la plantilla.

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

Contenido de definition.txt:

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

Salida:

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

Para obtener más información sobre las políticas, consulte Amazon Verified Permissions policies en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte CreatePolicy en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-identity-source.

AWS CLI

Para eliminar un origen de identidad

En el siguiente ejemplo de delete-identity-source, se elimina el origen de la identidad que tiene el ID especificado.

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

Este comando no genera ninguna salida.

Para obtener más información los orígenes de las identidades, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte DeleteIdentitySource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-policy-store.

AWS CLI

Para eliminar un almacén de políticas

En el siguiente ejemplo de delete-policy-store, se elimina el almacén de políticas que tiene el ID especificado.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Amazon Verified Permissions policy stores en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte DeletePolicyStore en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-policy-template.

AWS CLI

Para eliminar una plantilla de políticas

En el siguiente ejemplo de delete-policy-template, se elimina la plantilla de políticas que tiene el ID especificado.

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

Este comando no genera ninguna salida.

Para obtener más información acerca de las plantillas de políticas, consulte Amazon Verified Permissions policy templates en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte DeletePolicyTemplate en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-policy.

AWS CLI

Para eliminar una política estática o vinculada a una plantilla

En el siguiente ejemplo de delete-policy, se elimina la política que tiene el ID especificado.

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

Este comando no genera ninguna salida.

Para obtener más información sobre las políticas, consulte Amazon Verified Permissions policies en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte DeletePolicy en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-identity-source.

AWS CLI

Para recuperar detalles sobre un origen de identidad

En el siguiente ejemplo de get-identity-source, se muestran los detalles del origen de la identidad con el ID especificado.

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

Salida:

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

Para obtener más información los orígenes de las identidades, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte GetIdentitySource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-policy-store.

AWS CLI

Para recuperar detalles sobre un almacén de políticas

En el siguiente ejemplo de get-policy-store, se muestran los detalles del almacén de políticas con el ID especificado.

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

Salida:

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

Para obtener más información, consulte Amazon Verified Permissions policy stores en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte GetPolicyStore en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-policy-template.

AWS CLI

Para recuperar detalles sobre una plantilla de políticas

En el siguiente ejemplo de get-policy-template, se muestran los detalles de la plantilla de políticas con el ID especificado.

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

Salida:

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

Para obtener más información acerca de las plantillas de políticas, consulte Amazon Verified Permissions policy templates en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte GetPolicyTemplate en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-policy.

AWS CLI

Para recuperar información sobre una política

En el siguiente ejemplo de get-policy, se muestran los detalles de la política con el ID especificado.

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

Salida:

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

Para obtener más información sobre las políticas, consulte Amazon Verified Permissions policies en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte GetPolicy en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-schema.

AWS CLI

Para recuperar el esquema en un almacén de políticas

En el siguiente ejemplo de get-schema, se muestran los detalles del esquema en el almacén de políticas especificado.

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

Salida:

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

Para obtener más información sobre el esquema, consulte Policy store schema en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte GetSchema en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar is-authorized-with-token.

AWS CLI

Ejemplo 1: solicitud de una decisión de autorización para una solicitud de usuario (permitir)

En el siguiente ejemplo de is-authorized-with-token, se solicita una decisión de autorización para un usuario autenticado por Amazon Cognito. La solicitud utiliza el token de identidad proporcionado por Cognito en lugar del token de acceso. En este ejemplo, el almacén de información especificado está configurado para devolver las entidades principales como entidades de tipo 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"

El almacén de políticas contiene una política con la siguiente instrucción que acepta identidades del grupo de usuarios y del ID de aplicación de Cognito especificados.

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

Salida:

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

Para obtener más información las identidades de un grupo de usuarios de Cognito, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener más información sobre la API, consulte IsAuthorizedWithToken en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar is-authorized.

AWS CLI

Ejemplo 1: solicitud de una decisión de autorización para una solicitud de usuario (permitir)

En el siguiente ejemplo de is-authorized, se solicita una decisión de autorización para una entidad principal del tipo User denominada Alice que desea realizar la operación updatePhoto en un recurso del tipo Photo denominado VacationPhoto94.jpg.

La respuesta muestra que una política permite la solicitud.

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

Salida:

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

Ejemplo 2: solicitud de una decisión de autorización para una solicitud de usuario (denegar)

El ejemplo siguiente es igual al ejemplo anterior, con la salvedad de que la entidad principal es User::"Bob". El almacén de políticas no contiene ninguna política que permita a ese usuario acceder aAlbum::"alice_folder".

El resultado indica que Deny estaba implícito porque la lista de DeterminingPolicies está vacía.

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

Salida:

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

Para obtener más información, consulte la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte IsAuthorized en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-identity-sources.

AWS CLI

Para enumerar los orígenes de la identidad disponibles

En el siguiente ejemplo de list-identity-sources, se enumeran todos los orígenes de la identidad del almacén de políticas especificado.

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

Salida:

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

Para obtener más información los orígenes de las identidades, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte ListIdentitySources en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-policies.

AWS CLI

Para enumerar las políticas disponibles

En el siguiente ejemplo de list-policies, se enumeran todas las políticas del almacén de políticas especificado.

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

Salida:

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

Para obtener más información sobre las políticas, consulte Amazon Verified Permissions policies en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte ListPolicies en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-policy-stores.

AWS CLI

Para enumerar los almacenes de políticas disponibles

En el siguiente ejemplo de list-policy-stores, se enumeran todos los almacenes de políticas de la región de AWS. Todos los comandos de Verified Permissions, excepto create-policy-store y list-policy-stores requieren que especifique el ID del almacén de políticas con el que desea trabajar.

aws verifiedpermissions list-policy-stores

Salida:

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

Para obtener más información, consulte Amazon Verified Permissions policy stores en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte ListPolicyStores en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-policy-templates.

AWS CLI

Para enumerar las plantillas de políticas disponibles

En el siguiente ejemplo de list-policy-templates, se enumeran todas las plantilla de políticas del almacén de políticas especificado.

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

Salida:

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

Para obtener más información acerca de las plantillas de políticas, consulte Amazon Verified Permissions policy templates en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte ListPolicyTemplates en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar put-schema.

AWS CLI

Para guardar un esquema en un almacén de políticas

En el siguiente ejemplo de put-schema, se crea o reemplaza el esquema del almacén de políticas especificado.

El parámetro cedarJson del archivo de entrada toma una representación de cadena de un objeto JSON. Contiene comillas incrustadas (") dentro del par de comillas más externas. Para ello, debe convertir el JSON en una cadena y poner una barra invertida (\) delante de todas las comillas incrustadas y combinar todas las líneas en una sola línea de texto sin saltos de línea.

Las cadenas de ejemplo se pueden mostrar agrupadas entre varias líneas para facilitar la lectura, pero la operación requiere que los parámetros se envíen como cadenas de una sola línea.

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

Contenido de schema.txt:

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

Salida:

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

Para obtener más información sobre el esquema, consulte Policy store schema en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte PutSchema en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-identity-source.

AWS CLI

Para actualizar un origen de identidad

En el siguiente ejemplo de update-identity-source, se modifica el origen de la identidad especificada al proporcionar una nueva configuración de grupo de usuarios de Cognito y cambiar el tipo de entidad devuelto por el origen de la identidad.

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

Contenido de config.txt:

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

Salida:

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

Para obtener más información los orígenes de las identidades, consulte Using Amazon Verified Permissions with identity providers en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte UpdateIdentitySource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-policy-store.

AWS CLI

Para actualizar un almacén de políticas

En el siguiente ejemplo de update-policy-store, se modifica un almacén de políticas al cambiar su configuración de validación.

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

Salida:

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

Para obtener más información, consulte Amazon Verified Permissions policy stores en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte UpdatePolicyStore en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-policy-template.

AWS CLI

Ejemplo 1: actualización de una plantilla de políticas

En el siguiente ejemplo de update-policy-template, se modifica la política vinculada a la plantilla especificada para reemplazar su instrucción de política.

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

Contenido del archivo template1.txt:

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

Salida:

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

Para obtener más información acerca de las plantillas de políticas, consulte Amazon Verified Permissions policy templates en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte UpdatePolicyTemplate en la Referencia de comandos de AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-policy.

AWS CLI

Ejemplo 1: creación de una política estática

En el siguiente ejemplo de create-policy, se crea una política estática con un ámbito de la política que especifica tanto una entidad principal como un recurso.

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

El parámetro statement toma una representación de cadena de un objeto JSON. Contiene comillas incrustadas (") dentro del par de comillas más externas. Para ello, debe convertir el JSON en una cadena y poner una barra invertida (\) delante de todas las comillas incrustadas y combinar todas las líneas en una sola línea de texto sin saltos de línea.

Las cadenas de ejemplo se pueden mostrar agrupadas entre varias líneas para facilitar la lectura, pero la operación requiere que los parámetros se envíen como cadenas de una sola línea.

Contenido del archivo 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\" );" } }

Salida:

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

Ejemplo 2: creación de una política estática que conceda acceso general a un recurso

En el siguiente ejemplo de create-policy, se crea una política estática con un ámbito de la política que especifica únicamente un recurso.

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

Contenido del archivo definition2.txt:

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

Salida:

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

Ejemplo 3: creación de una política vinculada a una plantilla que esté asociada a la plantilla especificada

En el siguiente ejemplo de create-policy, se crea una política vinculada a una plantilla mediante la plantilla de política especificada y se asocia la entidad principal especificada a utilizar con la nueva política vinculada a la plantilla.

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

Contenido del archivo definition3.txt:

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

Salida:

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

Para obtener más información sobre las políticas, consulte Amazon Verified Permissions policies en la Guía del usuario de Amazon Verified Permissions.

  • Para obtener información sobre la API, consulte UpdatePolicy en la Referencia de comandos de la AWS CLI.