Introducción al modo de permisos estándar en 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.

Introducción al modo de permisos estándar en Amazon QLDB

Utilice esta sección para empezar a utilizar el modo de permisos estándar en Amazon QLDB. Esta sección proporciona una tabla de referencia que le ayudará a escribir una política basada en identidades en AWS Identity and Access Management (IAM) para las acciones de PartiQL y los recursos de tablas en QLDB. También incluye un step-by-step tutorial para crear políticas de permisos en IAM e instrucciones para encontrar el ARN de una tabla y crear etiquetas de tablas en QLDB.

El modo STANDARD de permisos

QLDB ahora admite un modo de STANDARD permisos para los recursos del libro mayor. El modo de permisos estándar permite el control de acceso con una granularidad más precisa para los libros de contabilidad, las tablas y los comandos de PartiQL. De forma predeterminada, este modo niega todas las solicitudes para ejecutar cualquier comando de PartiQL en cualquier tabla de un registro.

nota

Anteriormente, el único modo de permisos disponible para un libro mayor eraALLOW_ALL. El ALLOW_ALL modo permite el control de acceso con granularidad a nivel de API para los libros de contabilidad y sigue siendo compatible (aunque no se recomienda) con los libros de contabilidad de QLDB. Este modo permite a los usuarios que tienen el permiso de la SendCommand API ejecutar todos los comandos de PartiQL en cualquier tabla del registro especificada en la política de permisos (de ahí, «permitir todos» los comandos de PartiQL).

Puede cambiar el modo de permisos de los libros de contabilidad existentes de ALLOW_ALL aSTANDARD. Para obtener información, consulte Migración al modo de permisos estándar.

Para permitir los comandos en el modo estándar, debe crear una política de permisos en IAM para recursos de tabla específicos y acciones de PartiQL. Esto se suma al permiso de la SendCommand API para el libro mayor. Para facilitar las políticas en este modo, QLDB introdujo un conjunto de acciones de IAM para los comandos de PartiQL y Amazon Resource Names (ARN) para las tablas de QLDB. Para obtener más información sobre el modelo de objetos de datos de QLDB, consulte. Conceptos básicos y terminología de Amazon QLDB

Referencia de permisos de PartiQL

La siguiente tabla muestra cada comando de QLDB PartiQL, las acciones de IAM correspondientes para las que debe conceder permisos para ejecutar el comando y AWS los recursos para los que puede conceder los permisos. Las acciones se especifican en el campo Action de la política y el valor del recurso se especifica en el campo Resource de la política.

importante
  • Las políticas de IAM que otorgan permisos a estos comandos de PartiQL solo se aplican a su libro mayor si el modo de STANDARD permisos está asignado al libro mayor. Dichas políticas no se aplican a los libros de contabilidad en el modo de ALLOW_ALL permisos.

    Para obtener información sobre cómo especificar el modo de permisos al crear o actualizar un libro mayorOperaciones básicas de libros mayores de Amazon QLDB, consulte o Paso 1: Crear un libro mayor nuevo en Introducción a la consola.

  • Para ejecutar cualquier comando de PartiQL en un libro mayor, también debes conceder permiso a la acción de la SendCommand API para el recurso del libro mayor. Esto se suma a las acciones de PartiQL y a los recursos de la tabla que se enumeran en la siguiente tabla. Para obtener más información, consulte Ejecución de transacciones de datos.

Comandos PartiQL de Amazon QLDB y permisos necesarios
Comando Permisos necesarios (acciones de IAM) Recursos Acciones dependientes
CREATE TABLE qldb:PartiQLCreateTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/*

qldb:TagResource(para etiquetar en la creación)
DROP TABLE qldb:PartiQLDropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

TABLA DE UNDROP qldb:PartiQLUndropTable

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

CREATE INDEX qldb:PartiQLCreateIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DROP INDEX qldb:PartiQLDropIndex

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

DELETE qldb:PartiQLDelete

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
FROM-REMOVE (para documentos completos)
INSERT qldb:PartiQLInsert

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

UPDATE qldb:PartiQLUpdate

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

qldb:PartiQLSelect
DESDE (INSERTAR, QUITAR o CONFIGURAR)
REDACT_REVISION(procedimiento almacenado) qldb:PartiQLRedact

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECCIONE DESDE table_name

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

SELECCIONE DE information_schema.user_tables

qldb:PartiQLSelect

arn:aws:qldb:region:account-id:ledger/ledger-name/information_schema/user_tables

SELECCIONA DEL historial (nombre_tabla)

qldb:PartiQLHistoryFunction

arn:aws:qldb:region:account-id:ledger/ledger-name/table/table-id

Para ver ejemplos de documentos de políticas de IAM que otorgan permisos a estos comandos de PartiQL, vaya a Tutorial de inicio rápido: Creación de políticas de permisos o consulte. Ejemplos de políticas basadas en identidades para Amazon QLDB

Búsqueda de un identificador de tabla y un ARN

Para encontrar un identificador de tabla, utilice AWS Management Console o consulte la tabla information_schema.user_tables. Para ver los detalles de la tabla en la consola o consultar esta tabla del catálogo del sistema, debe tener SELECT permiso sobre el recurso del catálogo del sistema. Por ejemplo, para buscar el identificador de la Vehicle tabla, puede ejecutar la siguiente sentencia.

SELECT * FROM information_schema.user_tables WHERE name = 'Vehicle'

Esta consulta devuelve los resultados en un formato similar al del ejemplo siguiente.

{ tableId: "Au1EiThbt8s0z9wM26REZN", name: "Vehicle", indexes: [ { indexId: "Djg2nt0yIs2GY0T29Kud1z", expr: "[VIN]", status: "ONLINE" }, { indexId: "4tPW3fUhaVhDinRgKRLhGU", expr: "[LicensePlateNumber]", status: "BUILDING" } ], status: "ACTIVE" }

Para conceder permisos para ejecutar sentencias PartiQL en una tabla, especifique un recurso de tabla en el siguiente formato ARN.

arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}

A continuación se muestra un ejemplo de ARN de tabla para el ID de tablaAu1EiThbt8s0z9wM26REZN.

arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN

También puede utilizar la consola de QLDB para buscar el ARN de una tabla.

Para buscar el ARN de una tabla (consola)
  1. Inicie sesión en y abra la AWS Management Console consola de Amazon QLDB en https://console.aws.amazon.com/qldb.

  2. En el panel de navegación, seleccione Ledgers.

  3. En la lista de libros de contabilidad, elija el nombre del libro mayor cuyo ARN de tabla desee buscar.

  4. En la página de detalles del libro mayor, en la pestaña Tablas, busque el nombre de la tabla cuyo ARN desea buscar. Para copiar el ARN, seleccione el icono de copia ( 
                  Copy icon.
                ) que aparece junto a él.

Tablas de etiquetado

Puede etiquetar los recursos de su tabla. Para administrar las etiquetas de las tablas existentes, utilice las operaciones de la API AWS Management Console o las operaciones de la API TagResourceUntagResource, yListTagsForResource. Para obtener más información, consulte Etiquetado de recursos de Amazon QLDB.

nota

Los recursos de tablas no heredan las etiquetas de su recurso de registro raíz.

Actualmente, el etiquetado de tablas en el momento de la creación solo se admite para los libros de contabilidad en el modo de STANDARD permisos.

También puede definir etiquetas de tabla mientras crea la tabla mediante la consola de QLDB o especificándolas en una CREATE TABLE sentencia PartiQL. En el siguiente ejemplo, se crea una tabla denominada Vehicle con la etiquetaenvironment=production.

CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)

Para etiquetar tablas al crearlas, es necesario acceder tanto a las acciones como a qldb:PartiQLCreateTable las qldb:TagResource acciones.

Al etiquetar los recursos en el momento de su creación, ya no es necesario ejecutar scripts de etiquetado personalizados después de la creación del recurso. Después de etiquetar una tabla, puede controlar el acceso a la tabla en función de esas etiquetas. Por ejemplo, puede conceder acceso completo solo a las tablas que tengan una etiqueta específica. Para ver un ejemplo de política JSON, consulteAcceso completo a todas las acciones basadas en las etiquetas de la tabla.

También puede utilizar la consola de QLDB para definir las etiquetas de la tabla mientras crea la tabla.

Para etiquetar una tabla al crearla (consola)
  1. Inicie sesión en y abra la AWS Management Console consola de Amazon QLDB en https://console.aws.amazon.com/qldb.

  2. En el panel de navegación, seleccione Ledgers.

  3. En la lista de libros de contabilidad, elija el nombre del libro mayor en el que desea crear la tabla.

  4. En la página de detalles del libro mayor, en la pestaña Tablas, elija Crear tabla.

  5. En la página Crear tabla, haga lo siguiente:

    • Nombre de tabla: introduzca un nombre de tabla.

    • Etiquetas: añada metadatos a la tabla adjuntando etiquetas como pares clave-valor. Puede añadir etiquetas a la tabla para ayudar a organizarlas e identificarlas.

      Elija Agregar etiqueta y, a continuación, introduzca los pares clave-valor según corresponda.

  6. Cuando la configuración sea la deseada, elija Create table (Crear tabla).

Tutorial de inicio rápido: Creación de políticas de permisos

Este tutorial le guiará a través de los pasos necesarios para crear políticas de permisos en IAM para un registro de Amazon QLDB en el modo de permisos. STANDARD A continuación, puede asignar los permisos a sus usuarios, grupos o roles.

Para obtener más ejemplos de documentos de políticas de IAM que otorgan permisos a los comandos de PartiQL y a los recursos de tablas, consulte. Ejemplos de políticas basadas en identidades para Amazon QLDB

Requisitos previos

Antes de empezar, asegúrese de hacer lo siguiente:

  1. Siga las instrucciones AWS de configuración que aparecen en la secciónAcceso a Amazon QLDB, si aún no lo ha hecho. Estos pasos incluyen registrarse AWS y crear un usuario administrativo.

  2. Cree un nuevo libro mayor y elija el modo de STANDARD permisos para el libro mayor. Para obtener información sobre cómo hacerlo, consulte Paso 1: Crear un libro mayor nuevo Primeros pasos con la consola oOperaciones básicas de libros mayores de Amazon QLDB.

Creación de una política de solo lectura

Para utilizar el editor de políticas JSON para crear una política de solo lectura para todas las tablas de un libro mayor en el modo de permisos estándar, haga lo siguiente:

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En la columna de navegación de la izquierda, elija Policies.

    Si es la primera vez que elige Policies (Políticas), aparecerá la página Welcome to Managed Policies (Bienvenido a políticas administradas). Elija Get Started (Comenzar).

  3. En la parte superior de la página, seleccione Crear política.

  4. Seleccione la pestaña JSON.

  5. Copia y pega el siguiente documento de política JSON. Esta política de ejemplo otorga acceso de solo lectura a todas las tablas de un 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": "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" ] } ] }
  6. Elija Review policy (Revisar política).

    nota

    Puede alternar entre las pestañas Visual editor (Editor visual) y JSON en cualquier momento. Sin embargo, si realiza cambios o elige Review policy en la pestaña Visual editor, IAM podría reestructurar la política para optimizarla para el editor visual. Para obtener más información, consulte Reestructuración de política en la Guía del usuario de IAM.

  7. En la página Review Policy (Revisar política), ingrese un Nombre y una descripción (opcional) para la política que está creando. Revise el Summary (Resumen) de la política para ver los permisos concedidos por su política. A continuación, elija Create policy (Crear política) para guardar su trabajo.

Crear una política de acceso completo

Para crear una política de acceso completo para todas las tablas de un registro de QLDB en el modo de permisos estándar, haga lo siguiente:

  • Repita los pasos anteriores con el siguiente documento de política. Esta política de ejemplo otorga acceso a todos los comandos de PartiQL para todas las tablas de un libro mayor, mediante el uso de caracteres comodín (*) para cubrir todas las acciones de PartiQL y todos los recursos de un libro mayor.

    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": "QLDBPartiQLFullPermissions", "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" ] } ] }

Crear una política de solo lectura para una tabla específica

Para crear una política de acceso de solo lectura para una tabla específica de un registro de QLDB en el modo de permisos estándar, haga lo siguiente:

  1. Busque el ARN de la tabla mediante la tabla del catálogo del sistema AWS Management Console o consultando la misma. information_schema.user_tables Para obtener instrucciones, consulte Búsqueda de un identificador de tabla y un ARN.

  2. Utilice el ARN de la tabla para crear una política que permita el acceso de solo lectura a la tabla. Para ello, repita los pasos anteriores con el siguiente documento de política.

    Esta política de ejemplo concede acceso de solo lectura a la tabla especificada. 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": "QLDBPartiQLReadOnlyPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

Asignación de permisos

Tras crear una política de permisos de QLDB, asigne los permisos de la siguiente manera.

Para proporcionar acceso, agregue permisos a sus usuarios, grupos o roles: