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.
Configure el motor de consultas y los permisos para crear una base de conocimientos con un almacén de datos estructurado
En este tema se describen los permisos que necesita para conectar su base de conocimientos a un almacén de datos estructurado. Si planea conectar una base de conocimientos de Amazon Bedrock a un almacén de datos estructurado, debe cumplir los requisitos previos. Para ver los requisitos generales de permisos que deben cumplirse, consulte. Configurar los permisos de un usuario o rol para crear y administrar bases de conocimiento
importante
La ejecución de consultas SQL arbitrarias puede suponer un riesgo de seguridad para cualquier Text-to-SQL aplicación. Le recomendamos que tome las precauciones necesarias, como utilizar funciones restringidas, bases de datos de solo lectura y entornos aislados.
Amazon Bedrock Knowledge Bases utiliza Amazon Redshift como motor de consultas para consultar su almacén de datos. Un motor de consultas accede a los metadatos de un almacén de datos estructurado y los utiliza para generar consultas SQL. Amazon Redshift es un servicio de almacenamiento de datos que utiliza SQL para analizar datos estructurados en almacenes de datos, bases de datos y lagos de datos.
Cree el motor de consultas Amazon Redshift
Puede utilizar Amazon Redshift Serverless o Amazon Redshift Provisioned según su caso de uso y conectarse a grupos de trabajo o clústeres para su almacén de datos. Los datos subyacentes que el motor Amazon Redshift puede consultar pueden ser datos almacenados de forma nativa en clústeres de Amazon Redshift o datos ubicados de forma predeterminada AWS Glue Data Catalog (como en Amazon S3, entre otros).
Si ya ha creado un motor de consultas, puede omitir este requisito previo. De lo contrario, lleve a cabo los siguientes pasos para configurar su motor de consultas Amazon Redshift aprovisionado o Amazon Redshift Serverless:
Para configurar un motor de consultas en Amazon Redshift aprovisionado
-
Siga el procedimiento del paso 1: Cree un clúster de Amazon Redshift de muestra en la Guía de introducción a Amazon Redshift.
-
Anote el ID del clúster.
-
(Opcional) Para obtener más información sobre los clústeres aprovisionados de Amazon Redshift, consulte Clústeres aprovisionados de Amazon Redshift en la Guía de administración de Amazon Redshift.
Para configurar un motor de consultas en Amazon Redshift Serverless
-
Siga únicamente el procedimiento de configuración que se describe en Creación de un almacén de datos con Amazon Redshift Serverless de la Guía de introducción a Amazon Redshift y configúrelo con los ajustes predeterminados.
-
Anote el ARN del grupo de trabajo.
-
(Opcional) Para obtener más información sobre los grupos de trabajo sin servidor de Amazon Redshift, consulte Grupos de trabajo y espacios de nombres en la Guía de administración de Amazon Redshift.
Configurar los permisos del motor de consultas de Amazon Redshift
En función del motor de consultas de Amazon Redshift que elija, puede configurar determinados permisos. Los permisos que configure dependen del método de autenticación. En la siguiente tabla se muestran los métodos de autenticación que se pueden usar para los distintos motores de consultas:
Método de autenticación | Amazon Redshift aprovisionado | Amazon Redshift sin servidor |
---|---|---|
IAM |
![]() |
![]() |
Nombre de usuario de base |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Amazon Bedrock Knowledge Bases utiliza un rol de servicio para conectar las bases de conocimiento con los almacenes de datos estructurados, recuperar datos de estos almacenes de datos y generar consultas SQL basadas en las consultas de los usuarios y la estructura de los almacenes de datos.
nota
Si piensa utilizar el AWS Management Console para crear una base de conocimientos, puede omitir este requisito previo. La consola creará un rol de servicio de Amazon Bedrock Knowledge Bases con los permisos adecuados.
Para crear un rol de servicio de IAM personalizado con los permisos adecuados, siga los pasos que se indican en Crear un rol para delegar permisos a un rol Servicio de AWS y vincular la relación de confianza definida en. Relación de confianza
A continuación, añada permisos para que su base de conocimientos pueda acceder al motor de consultas y a las bases de datos de Amazon Redshift. Amplíe la sección correspondiente a su caso de uso:
Adjunte la siguiente política a su rol de servicio personalizado para que pueda acceder a sus datos y generar consultas con ellos:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftDataAPIStatementPermissions", "Effect": "Allow", "Action": [ "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:CancelStatement" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "
${aws:userid}
" } } }, { "Sid": "RedshiftDataAPIExecutePermissions", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement" ], "Resource": [ "arn:aws:redshift:${Region}
:${Account}
:cluster:${Cluster}
" ] }, { "Sid": "SqlWorkbenchAccess", "Effect": "Allow", "Action": [ "sqlworkbench:GetSqlRecommendations", "sqlworkbench:PutSqlGenerationContext", "sqlworkbench:GetSqlGenerationContext", "sqlworkbench:DeleteSqlGenerationContext" ], "Resource": "*" }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery" ], "Resource": "*" } ] }
También debes añadir permisos para permitir que tu función de servicio se autentique en el motor de consultas. Amplía una sección para ver los permisos de ese método.
Los permisos para adjuntar dependen del método de autenticación. Amplíe una sección para ver los permisos de un método.
Permita que el rol de servicio de la base de conocimientos acceda a su almacén de datos
Asegúrese de que sus datos estén almacenados en uno de los siguientes almacenes de datos estructurados compatibles:
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
En la siguiente tabla se resumen los métodos de autenticación disponibles para el motor de consultas, en función del banco de datos:
Método de autenticación | Amazon Redshift | AWS Glue Data Catalog (AWS Lake Formation) |
---|---|---|
IAM |
![]() |
![]() |
Nombre de usuario de base |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Para obtener información sobre cómo configurar los permisos para su función de servicio de Amazon Bedrock Knowledge Bases para acceder a su almacén de datos y generar consultas en función de él, amplíe la sección correspondiente al servicio en el que se encuentra su almacén de datos:
Para conceder a su rol de servicio Amazon Bedrock Knowledge Bases acceso a su base de datos de Amazon Redshift, utilice el editor de consultas Amazon Redshift v2 y ejecute los siguientes comandos SQL:
-
(Si se autentica con IAM y aún no se ha creado un usuario para la base de datos) Ejecute el siguiente comando, que utiliza CREATE USER para crear un usuario de base de datos y permitir que se autentique a través de IAM, sustituyéndolo
${service-role}
por el nombre del rol de servicio personalizado de Amazon Bedrock Knowledge Bases que creó:CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;importante
Si utiliza el rol de servicio Amazon Bedrock Knowledge Bases creado para usted en la consola y, a continuación, sincroniza el almacén de datos antes de realizar este paso, se creará el usuario automáticamente, pero la sincronización fallará porque no se le han concedido permisos para acceder a su almacén de datos. Debe realizar el siguiente paso antes de realizar la sincronización.
-
Otorgue permisos de identidad para recuperar información de su base de datos ejecutando el comando GRANT.
importante
No
CREATE
concedasUPDATE
niDELETE
accedas. La concesión de estas acciones puede provocar una modificación no intencionada de sus datos.Para un control más detallado de las tablas a las que se puede acceder, puede reemplazar nombres de tablas
ALL TABLES
específicos con la siguiente notación:.${schemaName}
${tableName}
Para obtener más información sobre esta notación, consulte la sección de objetos de consulta en consultas entre bases de datos. -
Si ha creado un esquema nuevo en la base de datos de Redshift, ejecute el siguiente comando para conceder permisos de identidad para el nuevo esquema.
GRANT USAGE ON SCHEMA ${schemaName} TO "IAMR:${serviceRole}";
Para conceder a su función de servicio de Amazon Bedrock Knowledge Bases acceso a su almacén de AWS Glue Data Catalog datos, utilice el editor de consultas Amazon Redshift v2 y ejecute los siguientes comandos SQL:
-
Ejecute el siguiente comando, que usa CREATE USER para crear un usuario de base de datos y permitir que se autentique a través de IAM, sustituyéndolo
${service-role}
por el nombre del rol de servicio personalizado de Amazon Bedrock Knowledge Bases que creó:CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;importante
Si utiliza el rol de servicio Amazon Bedrock Knowledge Bases creado para usted en la consola y, a continuación, sincroniza el almacén de datos antes de realizar este paso, se creará el usuario automáticamente, pero la sincronización fallará porque no se le han concedido permisos para acceder a su almacén de datos. Debe realizar el siguiente paso antes de realizar la sincronización.
-
Otorgue al rol de servicio permisos para recuperar información de la base de datos ejecutando el siguiente comando GRANT:
GRANT USAGE ON DATABASE awsdatacatalog TO "IAMR:
${serviceRole}
";importante
No
CREATE
concedasUPDATE
niDELETE
accedas. La concesión de estas acciones puede provocar una modificación no intencionada de sus datos. -
Para permitir el acceso a sus AWS Glue Data Catalog bases de datos, asocie los siguientes permisos a la función de servicio:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetDatabase", "glue:GetTables", "glue:GetTable", "glue:GetPartitions", "glue:GetPartition", "glue:SearchTables" ], "Resource": [ "arn:aws:glue:
${Region}
:${Account}
:table/${DatabaseName}
/${TableName}
", "arn:aws:glue:${Region}
:${Account}
:database/${DatabaseName}
", "arn:aws:glue:${Region}
:${Account}
:catalog" ] } ] } -
Otorgue permisos a su función de servicio de la siguiente manera AWS Lake Formation (para obtener más información sobre Lake Formation y su relación con Amazon Redshift, consulte Fuentes de datos de Redshift):
-
Inicie sesión en y abra la AWS Management Console consola de Lake Formation en https://console.aws.amazon.com/lakeformation/
. -
Seleccione Permisos de datos en el panel de navegación izquierdo.
-
Conceda permisos al rol de servicio que está utilizando para las bases de conocimiento de Amazon Bedrock.
-
Otorgue los permisos de descripción y selección para sus bases de datos y tablas.
-
-
En función de la fuente de datos que utilice AWS Glue Data Catalog, es posible que necesite añadir permisos para acceder a esa fuente de datos (para obtener más información, consulte la sección sobre la AWS Glue dependencia de otras fuentes Servicios de AWS). Por ejemplo, si su fuente de datos se encuentra en una ubicación de Amazon S3, tendrá que añadir la siguiente declaración a la política anterior.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
${BucketName}
", "arn:aws:s3:::${BucketName}
/*" ] } -
(Opcional) Si lo utiliza AWS KMS para cifrar los datos en Amazon S3 o AWS Glue Data Catalog, entonces necesita añadir permisos al rol para descifrar los datos de la clave de KMS.
{ "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${Account}:key/{KmsId}", "arn:aws:kms:${Region}:${Account}:key/{KmsId}" ], "Effect": "Allow" }