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 identidad para Amazon QLDB
De forma predeterminada, los usuarios y los roles no tienen permiso para crear o modificar QLDB recursos. Tampoco pueden realizar tareas con AWS Management Console, AWS Command Line Interface (AWS CLI) o AWS API. Para conceder a los usuarios permiso para realizar acciones en los recursos que necesitan, un IAM administrador puede crear IAM políticas. A continuación, el administrador puede añadir las IAM políticas a las funciones y los usuarios pueden asumir las funciones.
Para obtener información sobre cómo crear una política IAM basada en la identidad mediante estos documentos de JSON política de ejemplo, consulte Crear IAM políticas (consola) en la Guía del IAMusuario.
Para obtener más información sobre las acciones y los tipos de recursos definidos porQLDB, incluido el ARNs formato de cada uno de los tipos de recursos, consulte Acciones, recursos y claves de condición de Amazon QLDB en la Referencia de autorización de servicio.
Contenido
- Prácticas recomendadas sobre las políticas
- Uso de la QLDB consola
- Cómo permitir a los usuarios consultar sus propios permisos
- Ejecutar transacciones de datos
- Permisos estándar para acciones PartiQL y recursos de tabla
- Acceso completo a todas las acciones
- Acceso completo a todas las acciones basadas en las etiquetas de las tablas
- 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 en función de las etiquetas de solicitud
- Permisos estándar para acciones PartiQL y recursos de tabla
- Exportación de un diario a un bucket de Amazon S3
- Transmisión de un diario a Kinesis Data Streams
- Actualizar los QLDB libros de contabilidad en función de las etiquetas
importante
Aviso de fin de soporte: los clientes actuales podrán usar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre
Prácticas recomendadas sobre las políticas
Las políticas basadas en la identidad determinan si alguien puede crear recursos de su cuenta, acceder a ellos o eliminarlosQLDB. Estas acciones puedes generar costes 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. Para obtener más información, consulte las políticas AWS gestionadas o las políticas AWS gestionadas para las funciones laborales en la Guía del IAM usuario.
-
Aplique permisos con privilegios mínimos: cuando establezca permisos con IAM políticas, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se puedes llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Para obtener más información sobre cómo IAM aplicar permisos, consulte Políticas y permisos IAM en la IAM Guía del usuario.
-
Utilice las condiciones en IAM las políticas para restringir aún más el acceso: puede añadir 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 medianteSSL. 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 los elementos IAM JSON de la política: Condición en la Guía del IAM usuario.
-
Utilice IAM Access Analyzer para validar sus IAM políticas y garantizar permisos seguros y funcionales: IAM Access Analyzer valida las políticas nuevas y existentes para que se ajusten al lenguaje de las políticas (JSON) y IAM a las IAM mejores prácticas. IAMAccess Analyzer proporciona más de 100 comprobaciones de políticas y recomendaciones prácticas para ayudarle a crear políticas seguras y funcionales. Para obtener más información, consulte Validar políticas con IAM Access Analyzer en la Guía del IAM usuario.
-
Requerir autenticación multifactorial (MFA): si se encuentra en una situación en la que se requieren IAM usuarios o un usuario raíz Cuenta de AWS, actívela MFA para aumentar la seguridad. Para solicitarlo MFA cuando se convoque a API las operaciones, añada MFA condiciones a sus políticas. Para obtener más información, consulte APIAcceso seguro con MFA en la Guía del IAM usuario.
Para obtener más información sobre las prácticas recomendadasIAM, consulte las prácticas recomendadas de seguridad IAM en la Guía del IAM usuario.
Uso de la QLDB consola
Para acceder a la QLDB consola de Amazon, debes tener un conjunto mínimo de permisos. Estos permisos deben permitirte enumerar y ver detalles sobre los QLDB recursos de tu cuenta 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 realicen llamadas únicamente al AWS CLI o al AWS API. En su lugar, permita el acceso únicamente a las acciones que coincidan con la API operación que están intentando realizar.
Para garantizar que los usuarios y los roles tengan acceso completo a la QLDB consola y a todas sus funciones, adjunte la siguiente política AWS administrada a las entidades. Para obtener más informaciónAWS políticas gestionadas para Amazon QLDB, consulte y Añadir permisos a un usuario en la Guía del IAM usuario.
AmazonQLDBConsoleFullAccess
Permisos de historial de consultas
Además de los QLDB permisos, algunas funciones de la consola requieren permisos para el servicio de metadatos de consulta de bases de datos (prefijo de servicio:dbqms
). Se trata de un servicio exclusivamente interno que gestiona las consultas recientes y guardadas en el editor de consultas de la consola, entre otros. QLDB Servicios de AWS Para obtener una lista completa de DBQMS API acciones, consulte el Servicio de metadatos de consultas de bases de datos en la Referencia de autorización de servicios.
Para permitir los permisos del historial de consultas, puede utilizar la política AWS gestionada mazonQLDBConsole FullAccess A. Esta política usa un comodín (dbqms:*
) para permitir todas DBQMS las acciones de todos los recursos.
O bien, puede crear una IAM política personalizada e incluir las siguientes DBQMS acciones. El editor de consultas PartiQL de la QLDB consola 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 acceso total a la consola sin historial de consultas
Para permitir el acceso total a la QLDB consola sin ningún permiso de historial de consultas, puedes crear una IAM política personalizada que excluya todas las DBQMS acciones. Por ejemplo, el siguiente documento de política permite los mismos permisos que otorga la política AWS administrada A mazonQLDBConsole FullAccess, excepto las acciones que comienzan con el prefijo dbqms
de servicio.
{ "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 se puede crear una política que permita a IAM los usuarios ver las políticas integradas y administradas asociadas a su identidad de usuario. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante la tecla o. AWS CLI AWS API
{ "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 los datos QLDB transaccionales API (QLDBsesión) mediante la ejecución de declaraciones PartiQL en un libro mayor, debe conceder permiso a la acción. SendCommand
API El siguiente JSON documento es un ejemplo de una política que concede permiso únicamente a la SendCommand
API acción del libro mayor. myExampleLedger
Para usar esta política, sustituya us-east-1
,
123456789012
, y myExampleLedger
en el ejemplo, con 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 QLDB recursos. 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 de contabilidad en el modo de STANDARD
permisos, puedes consultar los siguientes documentos de IAM política como ejemplos 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.
Temas
- Acceso completo a todas las acciones
- Acceso completo a todas las acciones basadas en las etiquetas de las tablas
- 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 en función de las etiquetas de solicitud
Acceso completo a todas las acciones
El siguiente documento JSON de política otorga 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
, y myExampleLedger
en el ejemplo, con 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 JSON de política utiliza una condición que se basa en las etiquetas de recursos de la tabla para conceder acceso total y poder utilizar 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 PartiQL, incluidas las operaciones administrativas y de lectura/escritura en todas las tablas de un libro mayor. 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
, y myExampleLedger
en el ejemplo, con 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 JSON de política otorga permisos para seleccionar, insertar, actualizar y eliminar datos en todas las tablas demyExampleLedger
. 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
, y myExampleLedger
en el ejemplo, con 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 JSON de política concede 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, con 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 JSON de política concede permisos de solo lectura en una tabla específica de. myExampleLedger
En este ejemplo, el ID de tabla es Au1EiThbt8s0z9wM26REZN
.
Para usar esta política, sustituya us-east-1
,
123456789012
,
myExampleLedger
, y Au1EiThbt8s0z9wM26REZN
en el ejemplo, con 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 JSON de política otorga permiso para crear tablas enmyExampleLedger
. 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 qldb:PartiQLCreateTable
permiso debe usar un comodín (*) en la tabla ARN para especificar el recurso.
Para usar esta política, sustituya us-east-1
,
123456789012
, y myExampleLedger
en el ejemplo, con 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 JSON de política utiliza una condición basada en la clave de aws:RequestTag
contexto para conceder permiso para crear tablas en ellasmyExampleLedger
. 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
, y myExampleLedger
en el ejemplo, con 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 del QLDB diario
En el siguiente ejemplo, concedes a un usuario tus Cuenta de AWS permisos para realizar la qldb:ExportJournalToS3
acción en un recurso QLDB contable. También concede permisos para realizar la iam:PassRole
acción en el recurso de IAM rol que desea transferir al QLDB servicio. Esto es necesario para todas las solicitudes de exportación de diarios.
Para usar esta política, sustituya us-east-1
,
123456789012
,
myExampleLedger
, y qldb-s3-export
en el ejemplo, con 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, utiliza un IAM rol para conceder QLDB acceso a la escritura en uno de sus buckets de Amazon S3,amzn-s3-demo-bucket
. Esto también es obligatorio para todas las exportaciones de QLDB revistas.
Además de conceder el s3:PutObject
permiso, la política también concede 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 amzn-s3-demo-bucket del ejemplo por el nombre de su bucket de Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
A continuación, asocie esta política de permisos a un IAM rol que QLDB pueda asumir para acceder a su bucket de Amazon S3. El siguiente JSON documento es un ejemplo de una política de confianza que QLDB permite asumir el IAM rol 123456789012
únicamente para cualquier QLDB recurso de la cuenta.
Para usar esta política, sustituya us-east-1
y 123456789012
en el ejemplo, con 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 QLDB diario
En el siguiente ejemplo, se conceden Cuenta de AWS permisos a un usuario para que lleve a cabo la qldb:StreamJournalToKinesis
acción en todos los subrecursos de una QLDB transmisión de un libro mayor. También concedes permisos para realizar la iam:PassRole
acción en el recurso de IAM rol que deseas transferir al QLDB servicio. Esto es necesario para todas las solicitudes de secuencias.
Para usar esta política, sustituya us-east-1
,
123456789012
,
myExampleLedger
, y qldb-kinesis-stream
en el ejemplo, con 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 un IAM rol para conceder QLDB acceso a la escritura de registros de datos en su transmisión de datos de Amazon Kinesis, stream-for-qldb
. Esto también es obligatorio para todas las transmisiones del QLDB diario.
Para usar esta política, sustituya us-east-1
,
123456789012
, y stream-for-qldb
en el ejemplo, con 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 IAM rol que QLDB pueda asumir para acceder a su transmisión de datos de Kinesis. El siguiente JSON documento es un ejemplo de una política de confianza que permite QLDB asumir un IAM rol para cualquier QLDB flujo de la cuenta 123456789012
únicamente en el libro mayormyExampleLedger
.
Para usar esta política, sustituya us-east-1
,
123456789012
, y myExampleLedger
en el ejemplo, con 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
" } } } ] }
Actualizar los QLDB libros de contabilidad en función de las etiquetas
Puede utilizar las condiciones de su política basada en la identidad para controlar el acceso a los QLDB recursos en función de las 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 QLDB libro mayor, éste 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 los elementos IAM JSON de la política: condición en la Guía del IAMusuario.