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 conocer el modo de permisos estándar en Amazon QLDB. En esta sección se proporciona una tabla de referencia que le ayudará a redactar una política basada en la identidad 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 un ARN de tabla y crear etiquetas de tabla en QLDB.

El modo de permisos STANDARD

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

nota

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

Puede cambiar el modo de permisos de los libros mayores existentes de ALLOW_ALL a STANDARD. Para obtener más información, consulte Migrar al modo de permisos estándar.

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

Referencia de permisos PartiQL

En la siguiente tabla se muestra cada comando PartiQL de QLDB, las acciones de IAM correspondientes para las que debe conceder permisos para ejecutar el comando AWS y 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 conceden permisos a estos comandos PartiQL solo se aplican a su libro mayor si el modo de permisos STANDARD está asignado al libro mayor. Estas políticas no se aplican a los libros mayores en el modo de permisos ALLOW_ALL.

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

  • Para ejecutar cualquier comando PartiQL en un libro mayor, también debe conceder permiso a la acción de la API SendCommand para el recurso del libro mayor. Esto se suma a las acciones de PartiQL y a los recursos de tabla que se muestran en la siguiente tabla. Para obtener más información, consulte Ejecutar 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 el momento de la creación)
DROP TABLE qldb:PartiQLDropTable

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

UNDROP TABLE 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
FROM (INSERT, REMOVE o SET)
REDACT_REVISION (procedimiento almacenado) qldb:PartiQLRedact

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

SELECT FROM table_name

qldb:PartiQLSelect

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

SELECT FROM information_schema.user_tables

qldb:PartiQLSelect

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

SELECT FROM history(table_name)

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 conceden permisos a estos comandos PartiQL, vaya Tutorial de inicio rápido: Creación de políticas de permisos a o consulte Ejemplos de políticas basadas en identidades para Amazon QLDB.

Búsqueda de un ID y un ARN de tabla

Para encontrar el ID de una 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 permiso SELECT sobre el recurso del catálogo del sistema. Por ejemplo, para encontrar el ID de tabla de la tabla Vehicle, puede ejecutar la siguiente instrucción.

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

Esta consulta devuelve 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 instrucciones PartiQL en una tabla, debe especificar 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 un ARN de tabla para el ID de tabla Au1EiThbt8s0z9wM26REZN.

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

También puede utilizar la consola de QLDB para encontrar un ARN de tabla.

Cómo encontrar el ARN de una tabla (consola)
  1. Inicie sesión en la consola AWS Management Console de Amazon QLDB y ábrala en https://console.aws.amazon.com/qldb.

  2. En el panel de navegación, elija Libros mayores.

  3. En la lista de Libros mayores, elija el nombre del libro mayor cuyo ARN de tabla desee encontrar.

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

Etiquetar tablas

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

nota

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

Actualmente, el etiquetado de tablas al crearlas solo se admite en los libros mayores en el modo de permisos STANDARD.

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

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

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

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. Una vez etiquetada una tabla, puede controlar el acceso a la tabla en función de esas etiquetas. Por ejemplo, puede conceder acceso total solo a las tablas que tengan una etiqueta específica. Para ver una política de ejemplo JSON, consulte Acceso completo a todas las acciones basadas en las etiquetas de las tablas.

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

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

  2. En el panel de navegación, elija Libros mayores.

  3. En la lista de Libros mayores, elija el nombre del libro mayor donde quiere 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 para la tabla.

    • Etiquetas: agregue metadatos a la tabla asociando etiquetas como pares de clave-valor. Puede agregar etiquetas a las tablas para que le resulte más fácil organizarlas e identificarlas.

      Elija Agregar etiqueta y, a continuación, introduzca cualquier par 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 lo guía por los pasos para crear políticas de permisos en IAM para un libro mayor de Amazon QLDB en el modo de permisos STANDARD. A continuación, puede asignar los permisos a los usuarios, grupos o roles.

Para ver ejemplos de documentos de políticas de IAM que conceden permisos a estos comandos PartiQL y recursos de tabla, consulte Ejemplos de políticas basadas en identidades para Amazon QLDB.

Requisitos previos

Antes de comenzar, asegúrese de que hace lo siguiente:

  1. Siga las instrucciones AWS de configuración que aparecen en el documentoAcceso 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 permisos STANDARD para el libro mayor. Para aprender a hacerlo, consulte Paso 1: crear un nuevo libro mayor en Introducción a la consola o Operaciones básicas de libros mayores de Amazon QLDB.

Creación de una política de solo lectura

Para usar 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 consola de IAM AWS Management Console y ábrala en https://console.aws.amazon.com/iam/.

  2. En la columna de navegación de la izquierda, elija Políticas.

    Si es la primera vez que elige Políticas, aparecerá la página Bienvenido a políticas administradas. Elija Comenzar.

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

  4. Seleccione la pestaña JSON.

  5. Copie y pegue la siguiente política JSON. Este ejemplo de política concede acceso de solo lectura a todas las tablas de un libro mayor.

    Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, 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" ] } ] }
  6. Elija 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 total para todas las tablas de un libro mayor de QLDB en el modo de permisos estándar, haga lo siguiente:

  • Repita los pasos anteriores utilizando el siguiente documento de política. Esta política de ejemplo concede acceso a todos los comandos PartiQL de 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, incluida la administración y las operaciones de lectura/escritura en todas las tablas de un libro mayor 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 usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery, 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: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 solo lectura para todas las tablas de un libro mayor de QLDB en el modo de permisos estándar, haga lo siguiente:

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

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

    Esta política de ejemplo concede acceso de solo lectura únicamente a la tabla especificada. En este ejemplo, el ID de tabla es Au1EiThbt8s0z9wM26REZN. Para usar esta política, sustituya us-east-1, 123456789012 myExampleLedgery EiThbt Au1 8S0z9WM26ReZN 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/Au1EiThbt8s0z9wM26REZN" ] } ] }

Asignar permisos

Después de crear una política de permisos de QLDB, asigne los permisos de la siguiente manera.

Para dar acceso, agregue permisos a los usuarios, grupos o roles: