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.
Contenido
- Prácticas recomendadas relativas a políticas
- Uso de la consola QLDB
- Permitir a los usuarios consultar sus propios permisos
- Ejecución de transacciones de datos
- Permisos estándar para acciones de PartiQL y recursos de tablas
- Acceso completo a todas las acciones
- Acceso completo a todas las acciones basadas en las etiquetas de la tabla
- Acceso de lectura/escritura
- Acceso de solo lectura
- Acceso de solo lectura a una tabla específica
- Permitir el acceso para crear tablas
- Permitir el acceso para crear tablas basadas en las etiquetas de solicitud
- Permisos estándar para acciones de PartiQL y recursos de tablas
- Exportación de un diario a un bucket de Amazon S3
- Transmisión de un diario a Kinesis Data Streams
- Actualización de los libros de contabilidad de QLDB basados en etiquetas
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, myExampleLedger
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
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
Temas
- Acceso completo a todas las acciones
- Acceso completo a todas las acciones basadas en las etiquetas de la tabla
- Acceso de lectura/escritura
- Acceso de solo lectura
- Acceso de solo lectura a una tabla específica
- Permitir el acceso para crear tablas
- Permitir el acceso para crear tablas basadas en las etiquetas de solicitud
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, myExampleLedger
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 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, myExampleLedger
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 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, myExampleLedger
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 otorga permisos de solo lectura en todas las tablas de. myExampleLedger
Para usar esta política, sustituya us-east-1
, 123456789012
y, myExampleLedger
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 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
del ejemplo por tu propia información.Au1
myExampleLedger
EiThbt8S0z9wm26rezn
{ "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, myExampleLedger
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 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, myExampleLedger
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 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 myExampleLedger
ejemplo 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.
Esto también es obligatorio para todas las exportaciones de revistas de QLDB.DOC-EXAMPLE-BUCKET
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,
, por su propia información.qldb-kinesis-stream
en el ejemplo myExampleLedger
{ "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-qldb
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, 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, myExampleLedger
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 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.