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

De forma predeterminada, los usuarios y roles de no tienen permiso para crear ni modificar los recursos de QLDB. Tampoco pueden realizar tareas mediante laAWS Management Console,AWS Command Line Interface(AWS CLI), oAWSAPI. Un administrador de IAM debe crear políticas de IAM que concedan a los usuarios y a los roles permiso para realizar acciones en los recursos que necesitan. El administrador debe adjuntar esas políticas a los usuarios de que las necesiten.

Para obtener información sobre cómo crear una política basada en identidad de IAM mediante estos documentos de políticas JSON de ejemplo, consulteCrear políticas de IAMen laIAM User Guide.

Prácticas recomendadas relativas a políticas

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

  • Introducción aAWSpolíticas administradas y el objetivo de permisos de privilegios mínimos: para empezar a conceder permisos a los usuarios y las cargas de trabajo, utilice la guíaAWSpolíticas administradasque conceden permisos para muchos casos de uso comunes. Están disponibles en la Cuenta de AWS. Le recomendamos que aún más los permisos definiendoAWSpolíticas administradas por el cliente que son específicas para sus casos de uso. Para obtener más información, consulteAWSpolíticas administradasoAWSManaged Policies de para funciones de trabajoen laIAM User Guide.

  • Aplicar permisos de privilegios mínimos: al establecer permisos con políticas de IAM, conceda solo los permisos necesarios para llevar a cabo 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. Para obtener más información acerca del uso de IAM para aplicar permisos, consultePolíticas y permisos en IAMen laIAM User Guide.

  • Utilizar condiciones en las políticas de IAM para restringir aún más el acceso— Puedes añadir una condición a tus 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 utilizar condiciones para conceder acceso a acciones de servicio si se utilizan a través de un determinadoServicio de AWS, como, por ejemplo,AWS CloudFormation. Para obtener más información, consulteElemento de la política de JSON de Condiciónen laIAM User Guide.

  • Utilizar IAM Access Analyzer para validar las políticas de IAM con objeto de garantizar la seguridad y funcionalidad de los permisos— IAM Access Analyzer valida las políticas nuevas y existentes para que respeten el lenguaje de las políticas de IAM (JSON) y las prácticas recomendadas para 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, consultepolítica de validación de IAM Access Analyzeren laIAM User Guide.

  • Exigir autenticación multifactor (MFA)— Si tiene una situación en la que se requieren usuarios raíz o usuarios raíz de IAM en su cuenta, active MFA para mayor seguridad. Para solicitar la MFA cuando se llaman a las operaciones de la API, agrega condiciones de MFA a tus políticas. Para obtener más información, consulteConfiguración del acceso a una API protegido por MFAen laIAM User Guide.

Para obtener más información acerca de las prácticas recomendadas de IAM, consulte.Prácticas recomendadas de seguridad en IAMen laIAM User Guide.

Mediante la consola de QLDB

Para acceder a la consola de Amazon QLDB, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle registrar y consultar los detalles sobre los recursos de QLDB en suCuenta 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 de IAM) 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 intenta realizar.

Para garantizar que los usuarios y los roles tengan acceso total a la consola de QLDB y a todas sus funciones, adjunte lo siguienteAWSpolítica administrada a las entidades. Para obtener más información, consulteAWSPolíticas administradas por para Amazon QLDB, yAdición de permisos a un usuarioen laIAM User Guide.

AmazonQLDBConsoleFullAccess

Registros de historial de consultas

Además de los permisos de QLDB, algunas funciones de la consola requieren permisos paraDatabase Query Metadata Service(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 otrosAWSServicios de . Para obtener una lista completa de las acciones de la API de DBQMS, consulteDatabase Query Metadata Serviceen laReferencia de autorizaciones de servicio.

Para permitir los permisos del historial de consultas, puede usar laAWSpolítica administradaAmazon QLDBConsoleFullAccess. Esta política utiliza un comodín (dbqms:*) para permitir todas las acciones de 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 en la consola de QLDB requiere permisos para usar estas acciones para 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 total sin historial de consultas

Para permitir acceso completo a la consola de QLDBsincualquier permiso de historial de consultas, puede crear una política de IAM personalizada que excluyaTodas las acciones de DBQMS. Por ejemplo, el siguiente documento de política permite los mismos permisos otorgados porAWSpolítica administradaAmazon QLDBConsoleFullAccess,exceptoacciones de que empiezan por el prefijo del serviciodbqms.

{ "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ónPartiQLestados de cuenta en un libro mayor, debe conceder permiso alSendCommandAcción de la API. El siguiente documento JSON es un ejemplo de política que otorga permiso solo aSendCommandAcción de la API en el libro mayormyExampleLedger.

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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" } ] }

SimyExampleLedgerusa elALLOW_ALLpermisos, esta política concede permisos para ejecutar todos los comandos PartiQL en cualquier tabla del libro de contabilidad.

También puede utilizar unAWSpolítica administrada para conceder acceso completo a todos los recursos de QLDB. Para obtener más información, consulte AWSPolíticas administradas por para Amazon QLDB.

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

Para los libros de contabilidad delSTANDARDpermisos, puede consultar los siguientes documentos de políticas de IAM como ejemplos de concesión de los permisos de PartiQL adecuados. Para obtener una lista de los permisos necesarios para cada comando de PartiQL, consulte la guíaReferencia de permisos PartiQL.

Acceso completo a todas las acciones

En el siguiente documento de política JSON se concede acceso completo al uso detodosComandos de PartiQL entodostables enmyExampleLedger. Esta política produce el mismo efecto que el uso deALLOW_ALLmodo de permisos para el libro de contabilidad.

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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: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 etiquetas de tabla

El siguiente documento de política JSON utiliza una condición que se basa en etiquetas de recursos de tabla para conceder acceso total al usotodosComandos de PartiQL entodostables enmyExampleLedger. Los permisos se conceden solo si la etiqueta tableenvironmenttiene 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 libro 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 utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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 y escritura

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

nota

UnUPDATErequiere permisos tanto para elqldb:PartiQLUpdateyqldb:PartiQLSelectacciones de la tabla que se está modificando. Cuando ejecutas unUPDATE, realiza una operación de lectura además de la operación de actualización. Exigir ambas acciones garantiza que solo se conceda acceso a los usuarios a los que se les permite leer el contenido de una tablaUPDATEpermisos.

Del mismo modo, unDELETErequiere permisos tanto para elqldb:PartiQLDeleteyqldb:PartiQLSelectacciones.

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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 de política JSON otorga permisos de solo lectura en todas las tablas demyExampleLedger. Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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 de política JSON concede permisos de solo lectura en una tabla específica demyExampleLedger. En este ejemplo, el ID de tabla esAu1EiThbt8s0z9wM26REZN.

Para utilizar esta política, sustituyaus-east-1,123456789012,myExampleLedger, yAu 1EiThbt8S0Z9WM26 REZNen 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 de política JSON concede permiso para crear tablas enmyExampleLedger. Laqldb:PartiQLCreateTableacción requiere permisos para el tipo de recurso de tabla. Sin embargo, el ID de tabla de una tabla nueva no se conoce en el momento en que se ejecuta unCREATE TABLEstatement. Por lo tanto, una política que otorgaqldb:PartiQLCreateTabledebe usar un comodín (*) en el ARN de la tabla para especificar el recurso.

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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 basadas en etiquetas de solicitud

El siguiente documento de política JSON utiliza una condición basada en laaws:RequestTagclave de contexto para conceder permiso para crear tablas enmyExampleLedger. Los permisos se conceden solo si la etiqueta requestenvironmenttiene el valordevelopment. El etiquetado de tablas en el momento de la creación requiere acceso tanto aqldb:PartiQLCreateTableyqldb:TagResourceacciones. Para obtener información sobre cómo etiquetar tablas en la creación de, consulteTablas de etiquetado.

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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 de revistas QLDB

En el siguiente ejemplo, concede a un usuario de IAM en suAWSpermisos de cuenta para realizar elqldb:ExportJournalToS3acción en un recurso de contabilidad de QLDB. También concede permisos para llevar a cabo laiam:PassRoleacción en el recurso de rol de IAM que desea pasar al servicio de QLDB. Esto es obligatorio para todas las solicitudes de exportación de asientos.

Para utilizar esta política, sustituyaus-east-1,123456789012,myExampleLedger, yqldb-s3-exporten 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 de bucket de Amazon S3

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

Además de conceder las3:PutObjectpermiso, la política también otorga els3:PutObjectAclpermiso para establecer los permisos de la lista de control de acceso (ACL) para un objeto.

Para utilizar esta política, sustituyaDOC-EJEMPLO-CUBOen el ejemplo con 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, adjunte 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 que QLDB adopte el rol de IAM para cualquier recurso de QLDB de la cuenta.123456789012Solo la .

Para utilizar esta política, sustituyaus-east-1y123456789012en 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" } } } ] }

Transmitir un diario a Kinesis Data Streams

Paso 1: Permisos de flujo del diario QLDB

En el siguiente ejemplo, concede a un usuario de IAM en suAWSpermisos de cuenta para realizar elqldb:StreamJournalToKinesisacción en todos los subrecursos de flujo de QLDB en un libro mayor. También concede permisos para llevar a cabo laiam:PassRoleacción en el recurso de rol de IAM que desea pasar al servicio de QLDB. Esto es necesario para todas las solicitudes de secuencias.

Para utilizar esta política, sustituyaus-east-1,123456789012,myExampleLedger, yqldb-kinesis-streamen 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 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 necesario para todas las transmisiones de diario de QLDB.

Para utilizar esta política, sustituyaus-east-1,123456789012, ystream-for-qldben 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, adjunte esta política de permisos a una función de IAM que QLDB pueda asumir para acceder a la transmisión de datos de Kinesis. El siguiente documento JSON es un ejemplo de una política de confianza que permite que QLDB adopte un rol de IAM para cualquier transmisión QLDB de la cuenta.123456789012para el libro mayormyExampleLedgerSolo la .

Para utilizar esta política, sustituyaus-east-1,123456789012, ymyExampleLedgeren 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" } } } ] }

Actualización de libros de contabilidad de QLDB basados en etiquetas

Puede utilizar las condiciones de su política basada en 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 mayorOwnertiene 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 asociar esta política al usuario de IAM en su cuenta. Si un usuario llamadorichard-roeintenta actualizar un libro mayor QLDB, el libro mayor debe estar etiquetadoOwner=richard-roeoowner=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, consulteElemento de la política de JSON de Condiciónen laIAM User Guide.