Creación de un rol de servicio para bases de conocimientos de Amazon Bedrock - Amazon Bedrock

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.

Creación de un rol de servicio para bases de conocimientos de Amazon Bedrock

Para usar un rol personalizado para una base de conocimientos en lugar del que Amazon Bedrock crea automáticamente, cree un rol de IAM y adjunte los siguientes permisos siguiendo los pasos que se indican en Crear un rol para delegar permisos a un AWS servicio. Incluya solo los permisos necesarios para su propia seguridad.

  • Relación de confianza

  • Acceso a los modelos base de Amazon Bedrock

  • Acceso al origen de datos en el que almacena los datos

  • (Si creas una base de datos vectorial en Amazon OpenSearch Service) Accede a tu colección OpenSearch de servicios

  • (Si crea una base de datos vectorial en Amazon Aurora) Acceso al clúster de Aurora

  • (Si crea una base de datos vectorial en Pinecone o Redis Enterprise Cloud) Permisos AWS Secrets Manager para autenticar su Pinecone o Redis Enterprise Cloud inscrita

  • (Opcional) Si cifra alguno de los siguientes recursos con una clave KMS, permisos para descifrar la clave (consulte Cifrado de recursos de bases de conocimientos).

    • Su base de conocimientos

    • Orígenes de datos para bases de conocimientos

    • Tu base de datos vectoriales en Amazon OpenSearch Service

    • El secreto de tu base de datos vectorial de terceros en AWS Secrets Manager

    • Un trabajo de ingesta de datos

Relación de confianza

La siguiente política permite a Amazon Bedrock asumir este rol y crear y gestionar bases de conocimientos. A continuación se muestra un ejemplo de política que puede utilizar. Puede restringir el alcance del permiso mediante una o más claves de contexto de condiciones globales. Para obtener más información, consulte las claves de contexto de condición globales de AWS. Configure el valor aws:SourceAccount en el ID de su cuenta. Use la condición ArnEquals o ArnLike para restringir el alcance a bases de conocimiento específicas.

nota

Como práctica recomendada por motivos de seguridad, sustitúyala * por una base de conocimientos específica una IDs vez que la haya creado.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${AccountId}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${Region}:${AccountId}:knowledge-base/*" } } }] }

Permisos para acceder a los modelos de Amazon Bedrock

Asocie la siguiente política para proporcionar permisos al rol para usar modelos de Amazon Bedrock para incrustar sus datos de origen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:ListCustomModels" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${Region}::foundation-model/amazon.titan-embed-text-v1", "arn:aws:bedrock:${Region}::foundation-model/cohere.embed-english-v3", "arn:aws:bedrock:${Region}::foundation-model/cohere.embed-multilingual-v3" ] } ] }

Permisos de acceso a los orígenes de datos

Seleccione uno de los siguientes orígenes de datos para asociar los permisos necesarios para el rol.

Permisos de acceso al origen de datos en Amazon S3

Si su fuente de datos es Amazon S3, adjunte la siguiente política para proporcionar permisos para que el rol acceda al bucket de S3 al que se conectará como fuente de datos.

Si cifró la fuente de datos con una AWS KMS clave, adjunte los permisos para descifrar la clave al rol siguiendo los pasos que se indican enPermisos para descifrar la AWS KMS clave de las fuentes de datos en Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${Bucket}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}] } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketAndKeyPrefix}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}] } } } ] }

Permisos de acceso al origen de datos de Confluence

nota

El conector del origen de datos de Confluence está en versión preliminar y sujeta a cambios.

Asocie la siguiente política para conceder permisos al rol para acceder a Confluence.

nota

secretsmanager:PutSecretValuesolo es necesario si utiliza la autenticación OAuth 2.0 con un token de actualización.

El token de acceso OAuth2 3.0 de Confluence tiene un tiempo de caducidad predeterminado de 60 minutos. Si este token caduca mientras se está sincronizando el origen de datos (trabajo de sincronización), Amazon Bedrock utilizará el token de actualización proporcionado para regenerar este token. Esta regeneración actualiza los tokens de acceso y de actualización. Para mantener los tokens actualizados desde el trabajo de sincronización actual al siguiente trabajo de sincronización, Amazon Bedrock necesita permisos de escritura o colocación para las credenciales secretas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${secret-id}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Permisos para acceder a la fuente de SharePoint datos de Microsoft

nota

SharePoint El conector de la fuente de datos se encuentra en versión preliminar y está sujeto a cambios.

Adjunta la siguiente política para proporcionar permisos de acceso al rol SharePoint.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Permisos de acceso al origen de datos de Salesforce

nota

El conector del origen de datos de Salesforce está en versión preliminar y sujeta a cambios.

Asocie la siguiente política para conceder permisos al rol para acceder a Salesforce.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Permisos para chatear con su documento

Asocie la siguiente política para proporcionar permisos al rol para usar modelos de Amazon Bedrock para chatear con su documento:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" } ] }

Si solo quiere conceder acceso a un usuario para chatear con su documento (y no RetrieveAndGenerate en todas las bases de conocimientos), utilice la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "bedrock:Retrieve" ], "Resource": "*" } ] }

Si quieres chatear con tu documento y usarlo RetrieveAndGenerate en una base de conocimientos específica, proporciona una ${KnowledgeBaseArn} y usa la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": ${KnowledgeBaseArn} } ] }

(Opcional) Permisos para acceder al índice GenAI de Amazon Kendra

Si ha creado un índice GenAI de Amazon Kendra para su base de conocimientos, adjunte la siguiente política a su función de servicio de Amazon Bedrock Knowledge Bases para permitir el acceso al índice. En la política, sustituya${Partition}, ${Region}${AccountId}, y por los valores ${IndexId} de su índice. Puede permitir el acceso a varios índices agregándolos a la Resource lista. Para permitir el acceso a todos los índices de su lista Cuenta de AWS, ${IndexId} sustitúyalos por un comodín (*).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Retrieve", // To call their Retrieve API "kendra:DescribeIndex" // For validation when creating the KB ], "Resource": "arn:${${Partition}}:kendra:${${Region}}:${${AccountId}}:index/${${IndexId}}" } ] }

(Opcional) Permisos para acceder a tu base de datos vectoriales en Amazon OpenSearch Service

Si ha creado una base de datos vectorial en Amazon OpenSearch Service para su base de conocimientos, adjunte la siguiente política a su función de servicio de Amazon Bedrock Knowledge Bases para permitir el acceso a la colección. Sustituya ${Region} y ${AccountId} por la región y el identificador de cuenta a los que pertenece la base de datos. Introduce el ID de tu colección OpenSearch de Amazon Service${CollectionId}. Puede permitir el acceso a varias colecciones si las agrega a la lista de Resource.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:${Region}:${AccountId}:collection/${CollectionId}" ] }] }

(Opcional) Permisos para acceder al clúster de base de datos de Amazon Aurora

Si ha creado un clúster de base de datos (DB) en Amazon Aurora para la base de conocimientos, asocie la siguiente política al rol de servicio de bases de conocimientos de Amazon Bedrock para permitir el acceso al clúster de base de datos y proporcionarle permisos de lectura y escritura. Sustituya ${Region} y ${AccountId} por la región y el ID de cuenta a los que pertenece el clúster de base de datos. Introduzca el ID de su clúster de base de datos de Amazon Aurora${DbClusterId}. Puede permitir el acceso a varios clústeres de bases de datos si las agrega a la lista Resource.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsDescribeStatementID", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters" ], "Resource": [ "arn:aws:rds:${Region}:${AccountId}:cluster:${DbClusterId}" ] }, { "Sid": "DataAPIStatementID", "Effect": "Allow", "Action": [ "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement" ], "Resource": [ "arn:aws:rds:${Region}:${AccountId}:cluster:${DbClusterId}" ] }] }

(Opcional) Permisos para acceder a una base de datos vectorial configurada con un AWS Secrets Manager secreto

Si su base de datos vectorial está configurada con un AWS Secrets Manager secreto, adjunte la siguiente política a su rol de servicio de Amazon Bedrock Knowledge Bases para permitir AWS Secrets Manager autenticar su cuenta para acceder a la base de datos. Sustituya ${Region} y ${AccountId} por la región y el ID de cuenta a los que pertenece la base de datos. ${SecretId}Sustitúyala por la ID de tu secreto.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

Si has cifrado tu secreto con una AWS KMS clave, adjunta los permisos para descifrar la clave al rol siguiendo los pasos que se indican enPermisos para descifrar un AWS Secrets Manager secreto para el almacén de vectores que contiene tu base de conocimientos.

(Opcional) Permisos AWS para administrar una AWS KMS clave para el almacenamiento transitorio de datos durante la ingesta de datos

Para permitir la creación de una AWS KMS clave para el almacenamiento transitorio de datos en el proceso de ingesta de su fuente de datos, adjunte la siguiente política a su función de servicio de Amazon Bedrock Knowledge Bases. Sustituya los ${Region} valores${AccountId}, y y por ${KeyId} los correspondientes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ] } ] }

(Opcional) Permisos AWS para administrar una fuente de datos desde la AWS cuenta de otro usuario.

Para permitir el acceso a la AWS cuenta de otro usuario, debe crear un rol que permita el acceso entre cuentas a un bucket de Amazon S3 de la cuenta de otro usuario. Sustituya los valores ${BucketName}${BucketOwnerAccountId}, y y ${BucketNameAndPrefix} por los correspondientes.

Se requieren permisos para el rol de base de conocimientos

El rol de base de conocimientos que se proporciona durante la creación de la base de conocimientos createKnowledgeBase requiere los siguientes permisos de Amazon S3.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } } },{ "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } }] }

Si el bucket de Amazon S3 se cifra con una AWS KMS clave, también es necesario añadir lo siguiente a la función de base de conocimientos. Sustituya ${BucketOwnerAccountId} y ${Region} por los valores adecuados.

{ "Sid": "KmsDecryptStatement", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${BucketOwnerAccountId}:key/${KeyId}" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.${Region}.amazonaws.com" ] } } }

Permisos necesarios en una política de bucket de Amazon S3 en diversas cuentas

El bucket de la otra cuenta requiere la siguiente política de bucket de Amazon S3. Sustituya los valores ${KbRoleArn}${BucketName}, y y ${BucketNameAndPrefix} por los valores adecuados.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example ListBucket permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ] }, { "Sid": "Example GetObject permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ] } ] }

Se requieren permisos en la política de AWS KMS claves multicuenta

Si el bucket multicuenta de Amazon S3 se cifra con una AWS KMS clave de esa cuenta, la política de la AWS KMS clave exige la siguiente política. Sustituya ${KbRoleArn} y por ${KmsKeyArn} los valores adecuados.

{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "${KbRoleArn}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "${KmsKeyArn}" }