Cloud

Controle de Acesso Granular para Documentos Sensíveis no Amazon Quick com S3 ACLs

Introdução

Organizações que lidam com documentos sensíveis dependem cada vez mais de tecnologias de IA para auxiliar funcionários a encontrar respostas em grandes repositórios de conhecimento. Embora permissões em nível de base de conhecimento funcionem para muitas equipes, documentos sensíveis exigem um controle mais granular para restringir o acesso a arquivos ou pastas específicas para equipes, indivíduos ou sistemas autorizados.

O suporte a listas de controle de acesso (ACL) em nível de documento para bases de conhecimento do Amazon Simple Storage Service (Amazon S3) no Amazon Quick oferece esse controle refinado. Com ele, é possível restringir documentos sensíveis do S3 a apenas usuários e grupos autorizados, garantindo que o Amazon Quick avalie a identidade do usuário e retorne apenas conteúdo que ele está autorizado a visualizar. Isso permite que você integre com segurança sua biblioteca de documentos completa ao Quick, atendendo aos requisitos de conformidade e governança de dados.

Neste artigo, Jackson, Engenheiro de Software Sênior e Arquiteto de Soluções da AITY, guiará você pela configuração de ACLs em nível de documento para sua base de conhecimento S3 no Amazon Quick, demonstrando como configurar e verificar uma configuração de ACL que impõe permissões em nível de documento em chat e fluxos de trabalho automatizados.

Como o ACL do S3 Funciona no Quick

A funcionalidade de ACL do S3 no Amazon Quick permite anexar permissões de acesso aos seus documentos, de modo que as respostas do chat incluam apenas o conteúdo que você está autorizado a visualizar. Você especifica quem pode acessar quais documentos usando políticas padrão ALLOW e DENY para usuários ou grupos individuais, e o Quick impõe essas permissões no momento da consulta.

Escolhendo Sua Abordagem de Configuração de ACL

Existem duas maneiras de configurar ACLs, cada uma adequada a diferentes necessidades operacionais:

A escolha da abordagem deve basear-se na frequência de mudança das permissões e no nível de granularidade necessário:

| Consideração | Arquivo ACL Global | Metadados em Nível de Documento | | :----------------------------- | :-------------------------------- | :------------------------------ | | Granularidade de Permissão | Nível de Pasta (prefixo S3) | Nível de Documento Individual | | Overhead de Gerenciamento | Um único arquivo para manter | Um arquivo de metadados por documento | | Escopo de Reindexação (em mudança de permissão) | Prefixo inteiro afetado | Apenas o(s) documento(s) afetado(s) | | Recomendado para | Estruturas de acesso estáveis baseadas em pasta | Permissões por documento que mudam frequentemente |

O escopo de reindexação tem implicações operacionais significativas. Com a abordagem de ACL global, uma mudança de permissão aciona uma reindexação completa do prefixo afetado. Para atualizações frequentes de permissão, os arquivos de metadados em nível de documento são mais eficientes, reindexando apenas os arquivos modificados.

Comportamento Deny-by-Default e Precedência de DENY

Ao habilitar ACLs em uma base de conhecimento S3 no Quick, um documento ou prefixo não listado explicitamente em sua configuração de ACL é negado por padrão. Essa abordagem "deny-by-default" (também chamada de "fail closed") significa que você deve conceder explicitamente acesso a cada prefixo ou documento que deseja que os usuários acessem.

Por exemplo, se um bucket S3 contém /finance/, /legal/ e /policies/, e seu arquivo ACL concede acesso apenas a /finance/ e /policies/, a pasta /legal/ e seu conteúdo são automaticamente negados a todos, mesmo sem uma regra DENY explícita. Este modelo de negação implícita é semelhante ao usado pelo IAM.

Se um usuário ou grupo tiver entradas ALLOW e DENY para o mesmo documento ou prefixo, o DENY sempre terá precedência. Isso permite usar regras ALLOW amplas para uma equipe e aplicar entradas DENY direcionadas para restringir o acesso a recursos específicos, oferecendo controle granular sem reestruturar toda a configuração de ACL.

Pré-requisitos

Antes de iniciar, verifique se você possui o seguinte:

Controle de Acesso a Buckets S3 para Criação de Knowledge Bases

ACLs em nível de documento controlam quais documentos os usuários podem acessar dentro de uma base de conhecimento, mas não quem pode criar bases de conhecimento. É crucial restringir quais buckets S3 usuários ou grupos específicos podem usar para criar bases de conhecimento, especialmente para buckets contendo documentos sensíveis. Sem esse controle, um usuário do Quick pode criar uma nova base de conhecimento no mesmo bucket sem ativar as ACLs, contornando efetivamente seus controles de acesso em nível de documento.

As atribuições de política IAM no Quick permitem que você restrinja quais buckets S3 usuários ou grupos específicos podem acessar para a criação de bases de conhecimento. Por exemplo, você pode limitar buckets sensíveis a ACLs a um pequeno conjunto de administradores confiáveis que sempre ativarão as ACLs durante a configuração.

Etapa 1: Criar uma política de acesso S3 no IAM

Crie uma política IAM no console do IAM que especifique quais buckets S3 os usuários atribuídos podem acessar. O exemplo a seguir concede acesso a dois buckets específicos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketVersions",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket2"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1/*",
        "arn:aws:s3:::amzn-s3-demo-bucket2/*"
      ]
    }
  ]
}

Substitua amzn-s3-demo-bucket1 e amzn-s3-demo-bucket2 pelos nomes dos buckets S3 aos quais você deseja conceder acesso.

Etapa 2: Atribuir a política no Quick

Após criar a política IAM, atribua-a a usuários ou grupos do Quick através do console de administração.

Para atribuir a política no Quick:

Usuários não explicitamente autorizados por uma política IAM não poderão usar os buckets S3 restritos para criar bases de conhecimento. Esta restrição se aplica apenas à criação, não ao acesso a uma base de conhecimento já compartilhada.

Planejando Sua Estrutura de Controle de Acesso

Antes de criar seus arquivos ACL, determine sua estrutura de controle de acesso. O Quick impõe as permissões configuradas, mas cabe a você decidir quem deve ter acesso a quais documentos e construir os arquivos ACL correspondentes.

Comece mapeando suas necessidades de acesso organizacional. Identifique quais equipes, funções ou indivíduos precisam de acesso a quais conjuntos de documentos. Em seguida, escolha seu método ACL: um único arquivo ACL global ou entradas ACL em arquivos de metadados em nível de documento. Por fim, alinhe suas identidades: os nomes de usuário e grupo em seus arquivos ACL devem corresponder aos endereços de e-mail e nomes de grupo de seus usuários do Quick. A associação de grupo é gerenciada em seu provedor de identidade (IdP), como IAM Identity Center, e sincronizada com o Quick, não nos próprios arquivos ACL.

A seguir, exemplos de padrões de acesso comuns:

| Padrão de Acesso | Método | Exemplo de Configuração | | :-------------------------------- | :----------------------- | :---------------------------------------------------------------- | | Acesso a pasta por equipe | Arquivo ACL Global | ALLOW group finance-team on s3://amzn-s3-demo-bucket/finance/ | | Acesso de leitura para toda a empresa | Arquivo ACL Global | ALLOW group all-employees on s3://amzn-s3-demo-bucket/policies/ | | Acesso a documento por usuário único | Metadados em Nível de Documento | ALLOW user vp-eng@example.com on roadmap-2026.pdf | | Pasta restrita (deny-by-default) | Arquivo ACL Global | ALLOW group legal-team on s3://amzn-s3-demo-bucket/legal/ (outros prefixos negados por padrão) | | Abordagem Combinada | Ambos os métodos | ACL Global ALLOWs hr-team on s3://amzn-s3-demo-bucket/hr/ + arquivo de metadados ALLOWs manager@example.com em um arquivo específico |

Opção 1: Configurar Acesso Usando um Arquivo ACL Global

Habilitar ACLs em nível de documento em uma base de conhecimento é uma operação unidirecional e não pode ser revertida. Teste sua configuração ACL em uma base de conhecimento não-produção primeiro.

O arquivo ACL global é um único arquivo JSON que mapeia prefixos S3 para entradas de controle de acesso. Este arquivo deve ser carregado na raiz do seu bucket S3 (o nome do arquivo não precisa ser acl.json). A estrutura do arquivo é um array JSON onde cada entrada especifica um prefixo S3 e suas entradas de controle de acesso associadas. Cada item aclEntries inclui:

Lembre-se, prefixos não listados neste arquivo são negados por padrão.

Passos para configurar:

  1. Crie seu arquivo acl.json seguindo a estrutura descrita.
  2. Carregue o arquivo acl.json para a raiz do seu bucket S3 (o mesmo bucket que contém seus documentos).
  3. No console do Quick, navegue até Knowledge.
  4. Selecione Amazon S3 como uma base de conhecimento e configure suas configurações de bucket S3.
  5. Insira os detalhes da sua base de conhecimento e escolha Próximo: Configurações adicionais.
  6. Em Configurações adicionais, ative a opção Access control list (ACL).
  7. No campo Global ACL file location, insira o URI S3 para o seu arquivo acl.json (por exemplo, s3://amzn-s3-demo-bucket/acl.json).
  8. Escolha Criar.
  9. Inicie uma sincronização para indexar seus documentos. O Quick aplica as regras ACL durante a indexação.

Após a conclusão da sincronização, apenas documentos sob prefixos com entradas ALLOW explícitas serão indexados e disponíveis no chat.

Opção 2: Configurar Acesso Usando Arquivos de Metadados em Nível de Documento

Se você precisa de controle por documento ou deseja reindexação mais rápida quando as permissões mudam, use arquivos de metadados em nível de documento. Assim como na opção 1, a habilitação de ACLs é irreversível, então teste em um ambiente não-produção.

Para cada documento, crie um arquivo .metadata.json que deve ser armazenado no mesmo bucket S3, seja em uma pasta de metadados dedicada ou como um "sidecar" ao lado do documento real.

A estrutura do arquivo de metadados inclui um array AccessControlList. Apenas o campo AccessControlList é obrigatório para a aplicação de ACL. As entradas em AccessControlList seguem o mesmo formato do arquivo ACL global: Name, Type (USER ou GROUP) e Access (ALLOW ou DENY). Documentos sem um arquivo de metadados (ou com um arquivo que não inclui um AccessControlList) são negados por padrão quando as ACLs são ativadas.

Para que a base de conhecimento encontre o arquivo de metadados correto, a chave S3 do documento é anexada ao local da pasta de metadados e, em seguida, sufixada com .metadata.json para construir o caminho S3 do arquivo de metadados. Por exemplo, se a chave S3 do arquivo for recipe.pdf, a chave S3 do arquivo de metadados seria recipe.pdf.metadata.json.

Passos para configurar:

  1. Crie um arquivo .metadata.json para cada documento que você deseja indexar, incluindo o campo AccessControlList.
  2. Carregue os arquivos de metadados para seu bucket S3, seja em uma pasta de metadados dedicada ou na mesma pasta que cada arquivo S3 correspondente.
  3. No console do Quick, navegue até Knowledge.
  4. Selecione Amazon S3 como uma nova base de conhecimento.
  5. Em Configurações adicionais, ative a opção Access control list (ACL).
  6. Para o local do arquivo de metadados, escolha uma das seguintes opções:
    • Opção "Mesma pasta": Deixe o campo Metadata folder location em branco.
    • Opção "Pasta dedicada": No campo Metadata folder location, insira o URI S3 para sua pasta de metadados (por exemplo, s3://amzn-s3-demo-bucket/metadata/).
  7. Escolha Criar.
  8. Inicie uma sincronização. O Quick lê as entradas ACL de cada arquivo de metadados e as aplica no momento da consulta.

Verificando Sua Configuração

Após a conclusão da sincronização da sua base de conhecimento, você pode verificar se as ACLs estão funcionando corretamente através do chat e dos fluxos.

Chat

Para verificar ACLs no chat:

A verificação de ACL confirma que o Quick está filtrando as respostas com base na sua identidade e configuração de ACL.

Flows

Com o Quick Flows e ACLs S3, você pode construir pipelines de automação inteligentes e com reconhecimento de permissões que respeitam a governança de dados. Um exemplo é um fluxo ACL-aware para resumos executivos:

Esse caso de uso pode ser expandido para criar apresentações estruturadas ou enviar resumos por e-mail em um cronograma recorrente.

Atualizando ACLs Após a Configuração Inicial

Quando sua organização evolui, é necessário atualizar sua configuração de controle de acesso. O Quick não monitora seus arquivos ACL em tempo real. Permissões atualizadas entram em vigor na próxima sincronização da base de conhecimento, que ocorre diariamente por padrão. Para mudanças sensíveis ao tempo, como revogar acesso, acione uma sincronização manual imediatamente após atualizar seus arquivos ACL.

Para atualizar permissões:

  1. Atualize seus arquivos ACL no S3. Modifique seu arquivo ACL global ou os arquivos de metadados em nível de documento relevantes para refletir as novas permissões.
  2. Ressincronize sua base de conhecimento. Após carregar os arquivos atualizados para o S3, acione uma nova sincronização na sua base de conhecimento a partir do console do Quick. O Quick reavalia as entradas ACL durante a sincronização e atualiza o índice de acordo.

Até que a sincronização seja concluída, as permissões anteriores permanecem em vigor. O escopo de reindexação depende do método de configuração:

Protegendo Seus Arquivos ACL

Restrinja as permissões s3:PutObject em seus arquivos ACL e de metadados a um conjunto limitado de administradores, pois quem pode modificar esses arquivos pode conceder a si mesmo acesso a qualquer documento. Trate o acesso de escrita aos arquivos ACL como uma operação privilegiada. Habilite o versionamento do S3 em seus arquivos ACL para manter um rastro de auditoria das mudanças de permissão. Para arquivos de metadados em nível de documento, atribua a propriedade a membros da equipe familiarizados com a sensibilidade de cada conjunto de documentos, como proprietários de dados ou líderes de segurança.

Monitoramento e Auditoria da Atividade ACL

Para uma funcionalidade de segurança como ACLs em nível de documento, a visibilidade das mudanças de configuração e dos padrões de acesso é essencial. O Amazon Quick fornece vários mecanismos para ajudar a monitorar e auditar suas bases de conhecimento habilitadas para ACL.

Todas as ações de criação e atualização de bases de conhecimento são registradas no AWS CloudTrail, incluindo se as ACLs estão habilitadas. Isso fornece aos administradores um rastro de auditoria de quem configurou as ACLs e quando, auxiliando no rastreamento de mudanças na sua configuração de controle de acesso e na investigação de modificações inesperadas. O Amazon Quick também oferece um recurso para monitorar o tamanho de suas bases de conhecimento, o que pode ajudar a rastrear o crescimento e detectar mudanças inesperadas no conteúdo indexado.

Limitações e Considerações

Antes de ativar as ACLs em sua base de conhecimento S3, esteja ciente do seguinte:

Conclusão

As ACLs em nível de documento para bases de conhecimento Amazon S3 no Amazon Quick oferecem um controle granular sobre quem pode acessar documentos específicos. Com essas capacidades, você pode expandir o conteúdo de suas bases de conhecimento com confiança, sabendo que cada usuário acessa apenas os dados autorizados. Isso não só otimiza o valor do Quick, mas também garante conformidade com requisitos de segurança e governança de dados. A integração com Quick Flows estende esses controles para fluxos de trabalho automatizados, verificando o acesso do usuário em tempo de execução e gerando resultados apenas a partir de documentos autorizados. Com ACLs em nível de documento, sua organização pode usar a inteligência artificial para extrair valor de dados sensíveis de forma segura.

Comentários

Interações
Seu Perfil

Aguardando Login...