Ejemplos de políticas basadas en identidades para Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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 políticas basadas en identidades para Amazon QLDB

De forma predeterminada, los usuarios y roles no tienen permiso para crear, ver ni modificar recursos de QLDB. Tampoco pueden realizar tareas mediante la AWS Management Console, AWS Command Line Interface (AWS CLI) o la AWS API. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan. A continuación, el administrador puede añadir las políticas de IAM a roles y los usuarios pueden asumirlos.

Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Para obtener más información sobre las acciones y los tipos de recursos definidos por QLDB, incluido el formato de los ARN para cada tipo de recurso, consulte Acciones, recursos y claves de condición para Amazon QLDB en la Referencia de autorizaciones de servicio.

Prácticas recomendadas sobre las políticas

Las políticas basadas en identidades determinan si alguien puede crear, acceder o eliminar los recursos de QLDB de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:

  • Comience con las políticas AWS administradas y avance hacia los permisos con privilegios mínimos: para empezar a conceder permisos a sus usuarios y cargas de trabajo, utilice las políticas AWS administradas que otorgan permisos para muchos casos de uso comunes. Están disponibles en su. Cuenta de AWS Le recomendamos que reduzca aún más los permisos definiendo políticas administradas por el AWS cliente que sean específicas para sus casos de uso. Con el fin de obtener más información, consulte las políticas administradas por AWS o las políticas administradas por AWS para funciones de trabajo en la Guía de usuario de IAM.

  • Aplique permisos de privilegio mínimo: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.

  • Utilice condiciones en las políticas de IAM para restringir aún más el acceso: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de una acción específica Servicio de AWS, por ejemplo AWS CloudFormation. Para obtener más información, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.

  • Utilice el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte Política de validación de Analizador de acceso de IAM en la Guía de usuario de IAM.

  • Requerir autenticación multifactor (MFA): si tiene un escenario que requiere usuarios de IAM o un usuario raíz en Cuenta de AWS su cuenta, active la MFA para mayor seguridad. Para solicitar la MFA cuando se invocan las operaciones de la API, agregue las condiciones de la MFA a sus políticas. Para más información, consulte Configuración del acceso a una API protegido por MFA en la Guía de usuario de IAM.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte las Prácticas recomendadas de seguridad en IAM en la Guía del usuario de IAM.

Uso de la consola de QLDB

Para acceder a la consola de Amazon QLDB, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y ver detalles sobre los recursos de QLDB en su. Cuenta de AWS Si crea una política basada en identidades que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles) que tengan esa política.

No es necesario que concedas permisos mínimos de consola a los usuarios que solo realizan llamadas a la API AWS CLI o a la AWS API. En su lugar, permite acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.

Para garantizar que los usuarios y los roles tengan acceso completo a la consola de QLDB y a todas sus funciones, adjunte la AWS siguiente política administrada a las entidades. Para obtener más información, consulte AWS políticas gestionadas para Amazon QLDB, y Adición de permisos para un usuario en la Guía del usuario de IAM.

AmazonQLDBConsoleFullAccess

Permisos de historial de consultas

Además de los permisos de QLDB, algunas características de la consola requieren permisos para el servicio de metadatos de consulta de bases de datos (prefijo de servicio: dbqms). Este es un servicio solo interno que administra sus consultas recientes y guardadas en el editor de consultas de la consola para QLDB y otros Servicios de AWS. Para obtener una lista completa de las acciones de la API del DBQMS, consulte el Servicio de metadatos de consultas de bases de datos en la Referencia de autorización del servicio.

Para permitir los permisos del historial de consultas, puede utilizar la política AWS gestionada AmazonQLDB. ConsoleFullAccess Esta política utiliza un comodín (dbqms:*) para permitir todas las acciones del DBQMS en todos los recursos.

También puede crear una política de IAM personalizada e incluir las siguientes acciones de DBQMS. El editor de consultas PartiQL de la consola de QLDB requiere permisos para usar estas acciones en las características del historial de consultas.

dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery

Permisos de acceso total a la consola sin historial de consultas

Para permitir el acceso total a la consola de QLDB sin ningún permiso de historial de consultas, puede crear una política de IAM personalizada que excluya todas las acciones del DBQMS. Por ejemplo, el siguiente documento de política permite los mismos permisos que concede la política AWS gestionada AmazonQLDB ConsoleFullAccess, excepto las acciones que comienzan con el prefijo de servicio. dbqms

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "qldb:CreateLedger", "qldb:UpdateLedger", "qldb:UpdateLedgerPermissionsMode", "qldb:DeleteLedger", "qldb:ListLedgers", "qldb:DescribeLedger", "qldb:ExportJournalToS3", "qldb:ListJournalS3Exports", "qldb:ListJournalS3ExportsForLedger", "qldb:DescribeJournalS3Export", "qldb:CancelJournalKinesisStream", "qldb:DescribeJournalKinesisStream", "qldb:ListJournalKinesisStreamsForLedger", "qldb:StreamJournalToKinesis", "qldb:GetBlock", "qldb:GetDigest", "qldb:GetRevision", "qldb:TagResource", "qldb:UntagResource", "qldb:ListTagsForResource", "qldb:SendCommand", "qldb:ExecuteStatement", "qldb:ShowCatalog", "qldb:InsertSampleData", "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kinesis:ListStreams", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Cómo permitir a los usuarios consultar sus propios permisos

En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante la API o. AWS CLI AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Ejecutar transacciones de datos

Para interactuar con la API de datos transaccionales de QLDB (sesión de QLDB) mediante la ejecución de instrucciones PartiQL en un libro mayor, debe conceder permiso a la acción SendCommand de la API. El siguiente documento JSON es un ejemplo de una política que concede permiso únicamente a la acción SendCommand de la API en el libro mayor myExampleLedger.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" } ] }

Si myExampleLedger usa el modo de permisos ALLOW_ALL, esta política concede permisos para ejecutar todos los comandos PartiQL en cualquier tabla del libro mayor.

También puede utilizar una política AWS gestionada para conceder acceso total a todos los recursos de la QLDB. Para obtener más información, consulte AWS políticas gestionadas para Amazon QLDB.

Permisos estándar para acciones PartiQL y recursos de tabla

Para los libros mayores en el modo de permisos STANDARD, los siguientes documentos de política de IAM pueden servirle de ejemplo de casos de concesión de los permisos PartiQL adecuados. Para obtener una lista de los permisos necesarios para cada comando de PartiQL, consulte la Referencia de permisos PartiQL.

Acceso completo a todas las acciones

El siguiente documento de política de JSON concede acceso completo para usar todos los comandos PartiQL en todas las tablas de myExampleLedger. Esta política produce el mismo efecto que el uso del modo de permisos ALLOW_ALL para el libro mayor.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLRedact", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Acceso completo a todas las acciones basadas en las etiquetas de las tablas

El siguiente documento de política de JSON utiliza un condición basada en las etiquetas de recurso de tabla para conceder acceso completo para usar todos los comandos PartiQL en todas las tablas de myExampleLedger. Los permisos se conceden solo si la etiqueta de la tabla environment tiene el valor development.

aviso

Este es un ejemplo del uso de un carácter comodín (*) para permitir todas las acciones de PartiQL, incluida la administración y las operaciones de lectura/escritura en todas las tablas de un libro mayor de QLDB. En su lugar, es una práctica recomendada especificar explícitamente cada acción que se va a conceder y solo lo que necesita ese usuario, rol o grupo.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissionsBasedOnTags", "Effect": "Allow", "Action": [ "qldb:PartiQL*" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ], "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } } ] }

Acceso de lectura/escritura

El siguiente documento de política de JSON otorga permisos para seleccionar, insertar, actualizar y eliminar datos en todas las tablas de myExampleLedger. Esta política no concede permisos para redactar datos ni modificar el esquema, por ejemplo, para crear y eliminar tablas e índices.

nota

Una instrucción UPDATE requiere permisos tanto para la acción qldb:PartiQLUpdate como para la qldb:PartiQLSelect de la tabla que se va a modificar. Cuando se ejecuta una instrucción UPDATE, esta realiza una operación de lectura además de la operación de actualización. Al requerir ambas acciones, se garantiza que solo se concederán permisos UPDATE a los usuarios que estén autorizados para leer el contenido de una tabla.

Del mismo modo, una instrucción DELETE requiere permisos tanto para la acción qldb:PartiQLDelete como para la acción qldb:PartiQLSelect.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadWritePermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Acceso de solo lectura

El siguiente documento de política de JSON concede permisos de solo lectura en todas las tablas de myExampleLedger. Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Acceso de solo lectura a una tabla específica

El siguiente documento de política de JSON concede permisos de solo lectura en una tabla determinada de myExampleLedger. En este ejemplo, el ID de tabla es Au1EiThbt8s0z9wM26REZN.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery EiThbt Au1 8S0z9WM26ReZN en el ejemplo por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissionsOnTable", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

Permitir el acceso para crear tablas

El siguiente documento de política de JSON concede permisos para crear tablas en myExampleLedger. La acción qldb:PartiQLCreateTable requiere permisos para el tipo de recurso de la tabla. Sin embargo, no se conoce el identificador de tabla de una tabla nueva en el momento en que se ejecuta una instrucción CREATE TABLE. Por lo tanto, una política que conceda el permiso qldb:PartiQLCreateTable debe usar un comodín (*) en la tabla ARN para especificar el recurso.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ] } ] }

Permitir el acceso para crear tablas en función de las etiquetas de solicitud

El siguiente documento de política de JSON utiliza una condición basada en la clave de contexto aws:RequestTag para conceder permiso para crear tablas en myExampleLedger. Los permisos se conceden solo si la etiqueta de la solicitud environment tiene el valor development. Para etiquetar las tablas al crearlas, es necesario acceder a las acciones qldb:PartiQLCreateTable y qldb:TagResource. Para obtener información sobre cómo etiquetar tablas al crearlas, consulteEtiquetar tablas.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable", "qldb:TagResource" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ], "Condition": { "StringEquals": { "aws:RequestTag/environment": "development" } } } ] }

Exportación de un diario a un bucket de Amazon S3

Paso 1: permisos de exportación de diarios QLDB

En el siguiente ejemplo, usted concede a un usuario sus Cuenta de AWS permisos para realizar la qldb:ExportJournalToS3 acción en un recurso de registro de QLDB. También concede permisos para realizar la acción iam:PassRole en el recurso de rol de IAM que desea transferir al servicio QLDB. Esto es necesario para todas las solicitudes de exportación de diarios.

Para usar esta política, sustituya us-east-1, 123456789012 y qldb-s3-export en el myExampleLedgerejemplo por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportPermission", "Effect": "Allow", "Action": "qldb:ExportJournalToS3", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Paso 2: permisos en un bucket de Amazon S3

En el siguiente ejemplo, se utiliza un rol de IAM para conceder a QLDB acceso para escribir en uno de sus buckets de Amazon S3, DOC-EXAMPLE-BUCKET. Esto también es obligatorio para todas las exportaciones de diarios de QLDB.

Además del permiso s3:PutObject, la política también concede el permiso s3:PutObjectAcl que permite configurar los permisos de la lista de control de acceso (ACL) para un objeto.

Para utilizar esta regla de ejemplo, sustituya DOC-EXAMPLE-BUCKET en el ejemplo por el nombre del bucket de Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

A continuación, asocie esta política de permisos a un rol de IAM que QLDB pueda asumir para acceder a su bucket de Amazon S3. El siguiente documento JSON es un ejemplo de una política de confianza que permite a QLDB asumir el rol de IAM para cualquier recurso de QLDB solo de la cuenta 123456789012.

Para usar esta política, sustituya us-east-1 y 123456789012 del ejemplo por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Transmisión de un diario a Kinesis Data Streams

Paso 1: permisos de secuencia del diario QLDB

En el siguiente ejemplo, usted concede a un usuario sus Cuenta de AWS permisos para realizar la qldb:StreamJournalToKinesis acción en todos los subrecursos de flujo de QLDB de un libro mayor. También concede permisos para realizar la acción iam:PassRole en el recurso de rol de IAM que desea transferir al servicio QLDB. Esto es necesario para todas las solicitudes de secuencias.

Para usar esta política, sustituya us-east-1, 123456789012 qldb-kinesis-streamy, en el ejemplo myExampleLedger, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalStreamPermission", "Effect": "Allow", "Action": "qldb:StreamJournalToKinesis", "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Paso 2: permisos de Kinesis Data Streams

En el siguiente ejemplo, utiliza una función de IAM para conceder a QLDB acceso para escribir registros de datos en su transmisión de datos de Amazon Kinesis,. stream-for-qldb Esto también es obligatorio para todas las secuencias de diarios de QLDB.

Para usar esta política, sustituya us-east-1, 123456789012 stream-for-qldby, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb" } ] }

A continuación, asocie esta política de permisos a un rol de IAM que QLDB pueda asumir para acceder a su flujo de datos de Kinesis. El siguiente documento JSON es un ejemplo de una política de confianza que permite a QLDB asumir un rol de IAM para cualquier secuencia de QLDB solo de la cuenta 123456789012 del libro mayor myExampleLedger.

Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, en el ejemplo, por su propia información.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Actualización de libros mayores de QLDB basada en etiquetas

Puede utilizar las condiciones de su política basada en la identidad para controlar el acceso a los recursos de QLDB basados en etiquetas. En este ejemplo, se muestra cómo crear una política que permita actualizar un libro mayor. Sin embargo, los permisos solo se conceden si la etiqueta del libro mayor Owner tiene el valor del nombre de usuario de dicho usuario. Esta política también proporciona los permisos necesarios para llevar a cabo esta acción en la consola.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListLedgersInConsole", "Effect": "Allow", "Action": "qldb:ListLedgers", "Resource": "*" }, { "Sid": "UpdateLedgerIfOwner", "Effect": "Allow", "Action": "qldb:UpdateLedger", "Resource": "arn:aws:qldb:*:*:ledger/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

También puede adjuntar esta política al usuario de en su cuenta. Si un usuario llamado richard-roe intenta actualizar un libro mayor de QLDB, el libro mayor debe estar etiquetado como Owner=richard-roe o owner=richard-roe. De lo contrario, se le deniega el acceso. La clave de la etiqueta de condición Owner coincide con los nombres de las claves de condición Owner y owner porque no distinguen entre mayúsculas y minúsculas. Para obtener más información, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.