Ejemplos de permisos verificados mediante AWS CLI - AWS SDKEjemplos de código

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de permisos verificados mediante AWS CLI

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar situaciones comunes mediante el uso de permisos AWS Command Line Interface verificados.

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.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Acciones

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

AWS CLI

Para crear una fuente de identidad

El siguiente create-identity-source ejemplo crea una fuente de identidad que le permite hacer referencia a las identidades almacenadas en el grupo de usuarios de Amazon Cognito especificado. Esas identidades están disponibles en los permisos verificados como entidades de tipoUser.

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

Contenidos 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 sobre las fuentes de identidad, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte CreateIdentitySourcela Referencia de AWS CLI comandos.

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

AWS CLI

Para crear un almacén de políticas

En el siguiente create-policy-store ejemplo, se crea un almacén de políticas en la AWS región 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 sobre los almacenes de políticas, consulta los almacenes de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte CreatePolicyStorela Referencia de AWS CLI comandos.

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

AWS CLI

Ejemplo 1: Para crear una plantilla de políticas

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

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 sobre las plantillas de políticas, consulte las plantillas de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte CreatePolicyTemplatela Referencia de AWS CLI comandos.

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

AWS CLI

Ejemplo 1: Para crear una política estática

El siguiente create-policy ejemplo crea una política estática con un alcance de política que especifica tanto un 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: Crear una política estática que conceda acceso a un recurso a todos

El siguiente create-policy ejemplo crea una política estática con un alcance de política que especifica solo 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: Para crear una política vinculada a una plantilla que esté asociada a la plantilla especificada

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

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

Contenidos 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, consulta las políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte CreatePolicyla Referencia de AWS CLI comandos.

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

AWS CLI

Para eliminar una fuente de identidad

En el siguiente delete-identity-source ejemplo, se elimina la fuente de identidad que tiene el identificador 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 sobre las fuentes de identidad, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte DeleteIdentitySourcela Referencia de AWS CLI comandos.

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

AWS CLI

Para eliminar un almacén de políticas

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

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

Este comando no genera ninguna salida.

Para obtener más información sobre los almacenes de políticas, consulta los almacenes de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte DeletePolicyStorela Referencia de AWS CLI comandos.

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

AWS CLI

Para eliminar una plantilla de política

En el siguiente delete-policy-template ejemplo, se elimina la plantilla de política que tiene el identificador 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 sobre las plantillas de políticas, consulte las plantillas de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte DeletePolicyTemplatela Referencia de AWS CLI comandos.

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

AWS CLI

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

En el siguiente delete-policy ejemplo, se elimina la política que tiene el identificador 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, consulta las políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte DeletePolicyla Referencia de AWS CLI comandos.

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

AWS CLI

Para recuperar detalles sobre una fuente de identidad

En el siguiente get-identity-source ejemplo, se muestran los detalles de la fuente de identidad con el identificador 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 sobre las fuentes de identidad, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte GetIdentitySourcela Referencia de AWS CLI comandos.

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

AWS CLI

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

En el siguiente get-policy-store ejemplo, se muestran los detalles del almacén de políticas con el identificador 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 sobre los almacenes de políticas, consulta los almacenes de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte GetPolicyStorela Referencia de AWS CLI comandos.

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

AWS CLI

Para recuperar detalles sobre una plantilla de política

En el siguiente get-policy-template ejemplo, se muestran los detalles de la plantilla de política 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 sobre las plantillas de políticas, consulte las plantillas de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte GetPolicyTemplatela Referencia de AWS CLI comandos.

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

AWS CLI

Para recuperar detalles sobre una política

En el siguiente get-policy ejemplo, 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, consulta las políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte GetPolicyla Referencia de AWS CLI comandos.

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

AWS CLI

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

En el siguiente get-schema ejemplo, 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 el esquema del almacén de políticas en la Guía del usuario de Amazon Verified Permissions.

  • Para API obtener más información, consulte GetSchemala Referencia de AWS CLI comandos.

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

AWS CLI

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

En el siguiente is-authorized-with-token ejemplo, 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 los 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 declaración que acepta identidades del grupo de usuarios y del identificador 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 sobre el uso de identidades de un grupo de usuarios de Cognito, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

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

AWS CLI

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

El siguiente is-authorized ejemplo solicita una decisión de autorización para un principal del tipo User denominadoAlice, que desea realizar la updatePhoto operación, en un recurso del tipo Photo denominadoVacationPhoto94.jpg.

La respuesta muestra que la solicitud está permitida por una política.

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: solicitar una decisión de autorización para una solicitud de un usuario (denegar)

El siguiente ejemplo es el mismo que el anterior, excepto que el principal sí lo esUser::"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, consulta la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte IsAuthorizedla Referencia de AWS CLI comandos.

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

AWS CLI

Para enumerar las fuentes de identidad disponibles

En el siguiente list-identity-sources ejemplo, se enumeran todas las fuentes de 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 sobre las fuentes de identidad, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte ListIdentitySourcesla Referencia de AWS CLI comandos.

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

AWS CLI

Para ver una lista de las políticas disponibles

En el siguiente list-policies ejemplo, 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, consulta las políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte ListPoliciesla Referencia de AWS CLI comandos.

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

AWS CLI

Para ver una lista de los almacenes de políticas disponibles

En el siguiente list-policy-stores ejemplo, se enumeran todos los almacenes de políticas de la AWS región. Todos los comandos de permisos create-policy-store verificados, excepto los que list-policy-stores requieren que especifique el identificador 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 sobre los almacenes de políticas, consulta los almacenes de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte ListPolicyStoresla Referencia de AWS CLI comandos.

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

AWS CLI

Para ver una lista de las plantillas de políticas disponibles

En el siguiente list-policy-templates ejemplo, se enumeran todas las plantillas 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 sobre las plantillas de políticas, consulte las plantillas de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte ListPolicyTemplatesla Referencia de AWS CLI comandos.

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

AWS CLI

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

El siguiente put-schema ejemplo crea o reemplaza el esquema en el almacén de políticas especificado.

El cedarJson parámetro del archivo de entrada toma una representación en cadena de un JSON objeto. Contiene comillas incrustadas («) dentro del par de comillas más externas. Para ello, debe convertir la JSON cadena en una cadena poniendo una barra invertida (") delante de todas las comillas incrustadas y combinando 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 --fichero de definición: //schema.txt -- policy-store-id PSEXAMPLEabcdefg111111

Contenidos 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 el esquema del almacén de políticas en la Guía del usuario de Amazon Verified Permissions.

  • Para API obtener más información, consulte PutSchemala Referencia de AWS CLI comandos.

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

AWS CLI

Para actualizar una fuente de identidad

El siguiente update-identity-source ejemplo modifica la fuente de identidad especificada proporcionando una nueva configuración de grupo de usuarios de Cognito y cambiando el tipo de entidad devuelto por la fuente de identidad.

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

Contenidos 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 sobre las fuentes de identidad, consulte Uso de permisos verificados de Amazon con proveedores de identidad en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte UpdateIdentitySourcela Referencia de AWS CLI comandos.

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

AWS CLI

Para actualizar un almacén de políticas

En el siguiente update-policy-store ejemplo, se modifica un almacén de políticas cambiando 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 sobre los almacenes de políticas, consulta los almacenes de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte UpdatePolicyStorela Referencia de AWS CLI comandos.

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

AWS CLI

Ejemplo 1: Para actualizar una plantilla de política

El siguiente update-policy-template ejemplo modifica la política vinculada a la plantilla especificada para reemplazar su declaració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 sobre las plantillas de políticas, consulte las plantillas de políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte UpdatePolicyTemplatela Referencia de AWS CLI comandos.

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

AWS CLI

Ejemplo 1: Para crear una política estática

El siguiente create-policy ejemplo crea una política estática con un alcance de política que especifica tanto un principal como un recurso.

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

El statement parámetro toma una representación en cadena de un JSON objeto. Contiene comillas incrustadas («) dentro del par de comillas más externas. Para ello, debe convertir la JSON cadena en una cadena poniendo una barra invertida (") delante de todas las comillas incrustadas y combinando 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: Crear una política estática que conceda acceso a un recurso a todos

El siguiente create-policy ejemplo crea una política estática con un alcance de política que especifica solo 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: Para crear una política vinculada a una plantilla que esté asociada a la plantilla especificada

En el siguiente create-policy ejemplo, se crea una política vinculada a una plantilla mediante la plantilla de política especificada y se asocia el principio especificado que se va 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, consulta las políticas de permisos verificados de Amazon en la Guía del usuario de permisos verificados de Amazon.

  • Para API obtener más información, consulte UpdatePolicyla Referencia de AWS CLI comandos.