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 los roles no tienen permiso para crear o modificar los recursos de QLDB. Tampoco pueden realizar tareas mediante la AWS Management Console, la AWS Command Line Interface (AWS CLI) o la API de AWS. Para conceder permiso a los usuarios para realizar acciones en los recursos que necesiten, un administrador puede crear políticas de IAM. Luego, el administrador puede agregar las políticas de IAM a roles, y los usuarios pueden asumir esos roles.

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 de cada uno de los tipos de recursos, consulte Acciones, recursos y claves de condiciones de Amazon QLDB en la Referencia de autorización de servicios.

Prácticas recomendadas relativas a políticas

Las políticas basadas en la identidad determinan si alguien puede crear, acceder o eliminar recursos de QLDB en su 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 identidad:

  • Comience con las políticas administradas por AWS y continúe con los permisos de privilegio mínimo: a fin de comenzar a conceder permisos a los usuarios y las cargas de trabajo, utilice las políticas administradas por AWS, que conceden permisos para muchos casos de uso comunes. Están disponibles en la Cuenta de AWS. Se recomienda definir políticas administradas por el cliente de AWS específicas para sus casos de uso a fin de reducir aún más los permisos. 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 de usuario de IAM.

  • Use 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ítica para especificar que todas las solicitudes deben enviarse utilizando SSL. También puede usar condiciones para conceder acceso a acciones de servicios si se emplean a través de un Servicio de AWS determinado, como por ejemplo AWS CloudFormation. Para obtener más información, consulte Elementos de la política JSON de IAM: condición en la Guía del usuario de IAM.

  • Use 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. IAM Access Analyzer proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para obtener más información, consulte la política de validación del Analizador de acceso de IAM en la Guía de usuario de IAM.

  • Solicite la autenticación multifactor (MFA): si se encuentra en una situación en la que necesita usuarios raíz o de IAM en su Cuenta de AWS, active la MFA para mayor seguridad. Para solicitar la MFA cuando se invocan las operaciones de la API, agregue las condiciones de MFA a sus políticas. Para obtener más información, consulte Configuración de acceso a una API protegida 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 de usuario de IAM.

Uso de la consola QLDB

Para acceder a la consola de Amazon QLDB, debe disponer de un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y ver detalles sobre los recursos de QLDB que contiene. Cuenta de AWS Si crea una política basada en identidad 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 conceda permisos mínimos para la consola a los usuarios que solo realizan llamadas a la AWS CLI o a la API de AWS. 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 total a la consola de QLDB y a todas sus funciones, adjunte la siguiente política AWS gestionada a las entidades. Para obtener más informaciónAWSpolíticas gestionadas para Amazon QLDB, consulte Agregar permisos a un usuario en la Guía del usuario de IAM.

AmazonQLDBConsoleFullAccess

Permisos del historial de consultas

Además de los permisos de QLDB, algunas funciones 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 las 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 de 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 para todos los recursos.

O bien, 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 funciones del historial de consultas.

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

Permisos de consola de acceso completo sin historial de consultas

Para permitir el acceso completo 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 comiencen por 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" } } } ] }

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 adjuntan a la identidad de sus usuarios. Esta política incluye permisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la API de 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": "*" } ] }

Ejecución de transacciones de datos

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

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 utiliza el modo de ALLOW_ALL permisos, esta política otorga permisos para ejecutar todos los comandos de PartiQL en cualquier tabla del registro.

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

Permisos estándar para acciones de PartiQL y recursos de tablas

Para los libros de contabilidad en modo de STANDARD permisos, puede consultar los siguientes documentos de política de IAM como ejemplos de cómo conceder los permisos de PartiQL adecuados. Para obtener una lista de los permisos necesarios para cada comando de PartiQL, consulte. Referencia de permisos de PartiQL

Acceso completo a todas las acciones

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

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 la tabla

El siguiente documento de política de JSON utiliza una condición que se basa en las etiquetas de los recursos de la tabla para conceder acceso total al uso de todos los comandos de PartiQL en todas las tablas de. myExampleLedger Los permisos se conceden solo si la etiqueta de la tabla environment tiene el valordevelopment.

aviso

Este es un ejemplo del uso de un carácter comodín (*) para permitir todas las acciones de PartiQL, incluidas las operaciones administrativas y de lectura/escritura en todas las tablas de un registro de QLDB. Por el contrario, se recomienda especificar de forma explícita cada acción que se va a conceder y solo lo que ese usuario, rol o grupo necesita.

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 JSON otorga permisos para seleccionar, insertar, actualizar y eliminar datos de todas las tablas demyExampleLedger. Esta política no otorga permisos para redactar datos ni modificar el esquema, por ejemplo, para crear y eliminar tablas e índices.

nota

Una UPDATE sentencia requiere permisos tanto para las acciones de la qldb:PartiQLUpdate tabla que se está modificando como para qldb:PartiQLSelect las acciones de la tabla que se está modificando. Cuando ejecuta una UPDATE sentencia, realiza una operación de lectura además de la operación de actualización. Al requerir ambas acciones, se garantiza que solo los usuarios a los que se les permite leer el contenido de una tabla reciban UPDATE permisos.

Del mismo modo, una DELETE declaración requiere permisos tanto para las acciones como para qldb:PartiQLDelete las qldb:PartiQLSelect acciones.

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 otorga permisos de solo lectura en todas las tablas de. myExampleLedger Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 otorga permisos de solo lectura en una tabla específica de. myExampleLedger En este ejemplo, el ID de la tabla esAu1EiThbt8s0z9wM26REZN.

Para usar esta política, reemplaza us-east-1, 123456789012 y Au1 myExampleLedgerEiThbt8S0z9wm26rezn del ejemplo por tu 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 otorga permiso para crear tablas enmyExampleLedger. La qldb:PartiQLCreateTable acción requiere permisos para el tipo de recurso de la tabla. Sin embargo, el ID de tabla de una tabla nueva no se conoce en el momento en que se ejecuta una CREATE TABLE sentencia. Por lo tanto, una política que conceda el qldb:PartiQLCreateTable permiso debe usar un comodín (*) en el ARN de la tabla para especificar el recurso.

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 basadas en las etiquetas de solicitud

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

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 revistas de QLDB

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

Para usar esta política, sustituya us-east-1, 123456789012 y qldb-s3-export del 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 de bucket de Amazon S3

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

Además de conceder el s3:PutObject permiso, la política también otorga el s3:PutObjectAcl permiso para establecer los permisos de la lista de control de acceso (ACL) para un objeto.

Para usar esta política, sustituya DOC-EXAMPLE-BUCKET en el ejemplo por su nombre de 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, adjunte esta política de permisos a una función de IAM que QLDB puede 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 la función de IAM solo para cualquier recurso de QLDB 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 transmisión del diario QLDB

En el siguiente ejemplo, usted concede Cuenta de AWS permisos a un usuario para realizar la qldb:StreamJournalToKinesis acción en todos los subrecursos de transmisión de QLDB de un registro. También concede permisos para realizar la iam:PassRole acción 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 y, qldb-kinesis-streamen 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 acceso a QLDB 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 transmisiones de revistas de QLDB.

Para usar esta política, sustituya us-east-1, 123456789012 y, stream-for-qldben 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, adjunte esta política de permisos a una función de IAM que QLDB puede asumir para acceder a su transmisión de datos de Kinesis. El siguiente documento JSON es un ejemplo de una política de confianza que permite a QLDB asumir una función de IAM para cualquier transmisión de QLDB en la cuenta 123456789012 únicamente del libro mayor. myExampleLedger

Para usar esta política, sustituya us-east-1, 123456789012 y, myExampleLedgeren 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 los libros de contabilidad de QLDB basados en etiquetas

Puede usar las condiciones de su política basada en identidades para controlar el acceso a los recursos de QLDB en función de las etiquetas. En este ejemplo se muestra cómo puede crear una política que permita actualizar un libro mayor. Sin embargo, el permiso solo se concede si la etiqueta de registro Owner tiene el valor del nombre de usuario de ese 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 registro de QLDB, el registro debe estar etiquetado o. Owner=richard-roe 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 JSON de IAM: condición en la Guía del usuario de IAM.