Criar um perfil de serviço para o Amazon Bedrock Knowledge Bases - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar um perfil de serviço para o Amazon Bedrock Knowledge Bases

Para usar uma função personalizada para uma base de conhecimento em vez da que o Amazon Bedrock cria automaticamente, crie uma função do IAM e anexe as seguintes permissões seguindo as etapas em Criar uma função para delegar permissões a um AWS serviço. Inclua somente as permissões necessárias para sua própria segurança.

  • Relação de confiança

  • Acesso aos modelos de base do Amazon Bedrock

  • Acesso da fonte de dados ao local em que os dados são armazenados

  • (Se você criar um banco de dados vetoriais no Amazon OpenSearch Service) Acesso à sua coleção OpenSearch de serviços

  • (Se você criar um banco de dados de vetores do Amazon Aurora) Acesso ao cluster do Aurora

  • (Se você criar um banco de dados vetoriais no Pinecone or Redis Enterprise Cloud) Permissões AWS Secrets Manager para autenticar seu Pinecone or Redis Enterprise Cloud conta

  • (Opcional) Se você criptografar qualquer um dos recursos a seguir com uma chave do KMS, permissões para descriptografar a chave (consulte Criptografia de recursos da base de conhecimento):

    • Sua base de conhecimento

    • Fontes de dados para sua base de conhecimento

    • Seu banco de dados vetoriais no Amazon OpenSearch Service

    • O segredo do seu banco de dados vetoriais de terceiros em AWS Secrets Manager

    • Um trabalho de ingestão de dados

Relação de confiança

A política a seguir permite que o Amazon Bedrock assuma esse perfil e crie e gerencie bases de conhecimento. Veja a seguir um exemplo de política que você pode usar. É possível restringir o escopo da permissão usando uma ou mais chaves de contexto de condição global. Para obter mais informações, consulte Chaves de contexto de condição global da AWS. Defina o valor aws:SourceAccount para o ID da conta. Use a condição ArnEquals ou ArnLike para restringir o escopo a bases de conhecimento específicas.

nota

Como prática recomendada para fins de segurança, substitua-os * por uma base de conhecimento específica IDs depois de criá-los.

{ "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/*" } } }] }

Permissões para acessar os modelos do Amazon Bedrock

Anexe a política a seguir a fim de fornecer permissões ao perfil para usar os modelos do Amazon Bedrock para incorporar os dados de origem.

{ "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" ] } ] }

Permissões para acessar as fontes de dados

Selecione uma das fontes de dados a seguir para anexar as permissões necessárias ao perfil.

Permissões para acessar as fontes de dados no Amazon S3

Se sua fonte de dados for o Amazon S3, anexe a seguinte política para fornecer permissões para que a função acesse o bucket do S3 ao qual você se conectará como sua fonte de dados.

Se você criptografou a fonte de dados com uma AWS KMS chave, anexe permissões para descriptografar a chave à função seguindo as etapas em. Permissões para descriptografar sua AWS KMS chave para suas fontes de dados no 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}] } } } ] }

Permissões para acessar as fontes de dados do Confluence

nota

O conector de fonte de dados do Confluence está em versão de prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para que o perfil acesse o Confluence.

nota

secretsmanager:PutSecretValuesó é necessário se você usar a autenticação OAuth 2.0 com um token de atualização.

O token de acesso do Confluence OAuth2 4.0 tem um tempo de expiração padrão de 60 minutos. Se esse token expirar enquanto a fonte de dados estiver em sincronização (trabalho de sincronização), o Amazon Bedrock usará o token de atualização fornecido para regenerar esse token. Essa regeneração atualiza os tokens de acesso e de atualização. Para manter os tokens atualizados no trabalho de sincronização atual até o próximo trabalho de sincronização, o Amazon Bedrock exige permissões de gravação/colocação das credenciais 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" ] } } }, }

Permissões para acessar sua fonte de SharePoint dados da Microsoft

nota

SharePoint o conector da fonte de dados está na versão prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para o acesso da função 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" ] } } }, }

Permissões para acessar as fontes de dados do Salesforce

nota

O conector de fonte de dados do Salesforce está em versão prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para que o perfil acesse o 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" ] } } }, }

Permissões para conversar com seu documento

Anexe a política a seguir a fim de fornecer permissões para que o perfil use os modelos do Amazon Bedrock para executar conversar com seu documento:

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

Se você quiser conceder acesso a um usuário apenas para conversar com seu documento (e não RetrieveAndGenerate em todas as bases de conhecimento), use a seguinte política:

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

Se você quiser conversar com seu documento e usá-lo RetrieveAndGenerate em uma Base de Conhecimento específica, forneça uma ${KnowledgeBaseArn} e use a seguinte política:

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

(Opcional) Permissões para acessar seu índice Amazon Kendra GenAI

Se você criou um índice Amazon Kendra GenAI para sua base de conhecimento, anexe a seguinte política à sua função de serviço do Amazon Bedrock Knowledge Bases para permitir o acesso ao índice. Na política, substitua ${Partition}${Region},${AccountId}, e ${IndexId} pelos valores do seu índice. Você pode permitir o acesso a vários índices adicionando-os à Resource lista. Para permitir o acesso a todos os índices do seu Conta da AWS, ${IndexId} substitua por um caractere curinga (*).

{ "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) Permissões para acessar seu banco de dados vetoriais no Amazon OpenSearch Service

Se você criou um banco de dados vetoriais no Amazon OpenSearch Service para sua base de conhecimento, anexe a seguinte política à sua função de serviço do Amazon Bedrock Knowledge Bases para permitir o acesso à coleção. Substitua ${Region} e ${AccountId} pela região e o ID da conta aos quais o banco de dados pertence. Insira o ID da sua coleção de OpenSearch serviços da Amazon em${CollectionId}. É possível permitir acesso a várias coleções adicionando-as à lista Resource.

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

(Opcional) Permissões para acessar o cluster de banco de dados do Amazon Aurora

Se tiver criado um cluster de banco de dados no Amazon Aurora para a base de conhecimento, anexe a política a seguir ao perfil de serviço do Amazon Bedrock Knowledge Bases a fim de permitir acesso ao cluster de banco de dados e fornecer permissões de leitura e gravação nele. Substitua ${Region} e ${AccountId} pela região e o ID da conta aos quais o cluster de banco de dados pertence. Insira o ID do seu cluster de banco de dados Amazon Aurora em. ${DbClusterId} É possível permitir acesso a vários clusters de banco de dados adicionando-os à 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) Permissões para acessar um banco de dados vetorial configurado com um AWS Secrets Manager segredo

Se seu banco de dados vetoriais estiver configurado com um AWS Secrets Manager segredo, anexe a seguinte política à sua função de serviço do Amazon Bedrock Knowledge Bases AWS Secrets Manager para permitir a autenticação de sua conta para acessar o banco de dados. Substitua ${Region} e ${AccountId} pela região e o ID da conta aos quais o banco de dados pertence. ${SecretId}Substitua pelo ID do seu segredo.

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

Se você criptografou seu segredo com uma AWS KMS chave, anexe permissões para descriptografar a chave à função seguindo as etapas em. Permissões para descriptografar um AWS Secrets Manager segredo para o armazenamento de vetores que contém sua base de conhecimento

(Opcional) Permissões AWS para gerenciar uma AWS KMS chave para armazenamento transitório de dados durante a ingestão de dados

Para permitir a criação de uma AWS KMS chave para armazenamento transitório de dados no processo de ingestão de sua fonte de dados, anexe a seguinte política à sua função de serviço da Amazon Bedrock Knowledge Bases. Substitua o ${Region}${AccountId}, e ${KeyId} pelos valores apropriados.

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

(Opcional) Permissões AWS para gerenciar fontes de dados da AWS conta de outro usuário.

Para permitir o acesso à AWS conta de outro usuário, você deve criar uma função que permita o acesso entre contas a um bucket do Amazon S3 na conta de outro usuário. Substitua o ${BucketName}${BucketOwnerAccountId}, e ${BucketNameAndPrefix} pelos valores apropriados.

Permissões necessárias no perfil da base de conhecimento

O perfil da base de conhecimento fornecido durante a criação da base de conhecimento createKnowledgeBase requer as permissões do Amazon S3 a seguir.

{ "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}" } }] }

Se o bucket do Amazon S3 for criptografado usando uma AWS KMS chave, o seguinte também precisará ser adicionado à função da base de conhecimento. Substitua ${Region} a ${BucketOwnerAccountId} e pelos valores apropriados.

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

Permissões necessárias em uma política de bucket do Amazon S3 entre contas

O bucket na outra conta exige a política de bucket do Amazon S3 a seguir. Substitua o ${KbRoleArn}${BucketName}, e ${BucketNameAndPrefix} pelos valores apropriados.

{ "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}/*" ] } ] }

Permissões necessárias na política de AWS KMS chaves entre contas

Se o bucket do Amazon S3 entre contas for criptografado usando AWS KMS uma chave nessa conta, a política da chave exigirá AWS KMS a seguinte política. Substitua ${KmsKeyArn} a ${KbRoleArn} e pelos valores apropriados.

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