O blog da AWS
Crie um assistente de segurança com IA generativa do Amazon Bedrock
Por Hernán Fernández
O Amazon Bedrock é um serviço totalmente gerenciado que oferece uma seleção de modelos básicos (FM – Foundational model) de alto desempenho das principais empresas de IA, como AI21 Labs, Anthropic, Cohere, Meta, Stability AI e Amazon, por meio de uma única API, junto com um amplo conjunto de recursos necessários para criar aplicativos de IA generativa, simplificando o desenvolvimento e mantendo a privacidade e a segurança. Usando o Amazon Bedrock, é possível criar um portal web de autoatendimento que permite validar se uma política do AWS Identity and Access Management (IAM) está em conformidade com o princípio do menor privilégio. Essa abordagem busca agilizar o processo de aprovação de permissões dentro de uma organização sem comprometer a segurança.
As organizações estão em constante evolução desenvolvendo novos projetos e aplicativos. Uma parte essencial da operação desses aplicativos é que eles tenham permissões e acesso para realizar ações diferentes nos serviços e recursos da AWS. Essas ações são especificadas por meio de políticas do IAM, que são elaboradas ou criadas no formato JSON.
É normal que as áreas proprietárias dos projetos solicitem permissões para a operação de seus aplicativos e que a área de segurança da organização valide, aprove ou rejeite essas solicitações. O problema surge quando as áreas do projeto solicitam acessos que não estão em conformidade com o princípio do menor privilégio. Além disso, esse problema aumenta quando as áreas de segurança não têm os detalhes do escopo desses aplicativos e devem se limitar à aplicação de boas práticas. Devido à necessidade de aprovação da permissão, a interação entre áreas de desenvolvimento e aplicativos pode se tornar um gargalo que atrasa a entrega de novos projetos e funcionalidades para a organização.
As equipes que possuem aplicativos fazem uma ou mais interações com a área de segurança, a fim de obter os acessos que seus aplicativos exigem.
Fazer com que as solicitações de permissão estejam em conformidade com o princípio do menor privilégio desde a primeira solicitação acelera o processo de aprovação, reduz os gargalos e reduz a frustração do usuário.
Portal de autoatendimento
O próximo aplicativo é um portal Web de autoatendimento, que permite aos usuários analisar se a política do IAM está em conformidade com as melhores práticas do princípio do menor privilégio. Nesse caso, o Amazon Bedrock analisará a política inserida e validará a sintaxe. Além disso, analisará a conformidade com o princípio do menor privilégio com base na especificidade das ações, restrição de recursos, efeitos e condições. Em seguida, ele explicará possíveis pontos de melhoria na política e fornecerá uma pontuação de conformidade em uma escala de 1 a 10. É nessa escala que 1 representa uma baixa conformidade com o princípio do menor privilégio e 10 corresponde a uma alta conformidade com ele.
Arquitetura
O diagrama de arquitetura a seguir descreve como o portal de autoatendimento funciona.
O portal de autoatendimento consiste em uma distribuição do Amazon CloudFront (1); ela distribui um formulário web que é armazenado em um bucket do Amazon S3.
O usuário insere a política do IAM no formulário web, que se comunica com o serviço Amazon API Gateway (3) usando o AWS SDK para Javascript.
O Amazon API Gateway invoca a função AWS Lambda, que envia a política ao Amazon Bedrock e solicita que ele avalie sua sintaxe, princípio de privilégio mínimo, e forneça uma pontuação de 1 a 10, dependendo do nível de conformidade.
Guia de implementação
A solução é implementada em três partes,
- Ative o Amazon Bedrock no console da AWS
- Criando a camada Lambda
- Implantação da arquitetura via CloudFormation
a) Ativar o Amazon Bedrock
Abra o console Amazon Bedrock. No menu à esquerda, selecione “Acesso ao modelo”, selecione o botão “Editar” e ative o modelo Anthropic > Claude e salve as alterações.
Lembre-se de verificar a região que está disponível o Bedrock. Na data de publicação deste artigo estava disponível nas seguintes regiões AWS: Oeste dos EUA (Oregon), Ásia-Pacífico (Tóquio), Ásia-Pacífico (Cingapura), Leste dos EUA (Norte da Virgínia).
b) Criando a camada Lambda
Para a interação entre o Lambda e o Bedrock, precisaremos da versão 1.28.57 ou superior do AWS Software Development Kit para Python (Boto3). Para isso, precisamos criar uma Lambda Layer em um ambiente que tenha a versão 3.7 ou superior do Python. Se você não tiver um ambiente com Python 3.7 ou superior, poderá usar o console do AWS CloudShell.
Para fazer login no Amazon CloudShell, faça login no console da AWS. Na barra de navegação, selecione o ícone do serviço CloudShell ou, na barra de pesquisa, digite CloudShell. Um console será aberto no navegador, onde você poderá executar o seguinte comando.
curl -sSL https://raw.githubusercontent.com/aws-samples/policy-security-assistant/master/create-layer.sh | sh
Esse script criará um ambiente Python 3 com a versão 1.28.61 do boto3, empacotará o ambiente com o arquivo boto3-layer.zip e, via AWS CLI, o publicará como Layer Lambda. As versões Layer ARN e Python serão exibidas no final do script e serão usadas durante a implantação do modelo do CloudFormation.
A saída do script fornecerá informações semelhantes às seguintes. É necessário anotar essas informações, pois as usaremos na próxima etapa.
c) Implantação do modelo CloudFormation
Repositório GitHub | aws-samples/policy-security-assistant |
Criar camada | create-layer.sh |
Modelo do CloudFormation | security-assistant.yaml |
Implantaremos a arquitetura usando o Amazon CloudFormation. Para fazer isso, baixaremos o modelo a seguir, acessaremos o console da AWS e, no serviço AWS CloudFormation, selecionaremos “Create Stack (with new resources)”. Em seguida, clicaremos em “Carregar um arquivo de modelo” e selecionaremos o modelo security-assistant.yaml que já foi baixado.
A stack do CloudFormation criará os recursos definidos na arquitetura. Quando a criação da stack estiver concluída, na seção Saída, encontraremos o URL do API Gateway do site e o nome do S3 Bucket. Ao abrir o link do site, podemos acessar o assistente de segurança.
Conclusão
Usando o Amazon Bedrock, é possível criar um portal de autoatendimento para avaliar se uma política do Amazon IAM está em conformidade com o princípio do menor privilégio. Com isso, vamos agilizar a interação entre a área de segurança e o desenvolvimento de aplicativos.
Além disso, é possível modificar essa solução para integrá-la ao fluxo de solicitações de permissão da sua organização, por exemplo, para rejeitar automaticamente solicitações que não atendam a uma pontuação mínima de conformidade, isso reduzirá a lista de tarefas na área de segurança, deixando a interação humana apenas para solicitações que atendam às boas práticas.
Este artigo foi traduzido do Blog da AWS em Espanhol.
Sobre o autor
Hernán Fernández trabalha como Senior Technical Account Manager na AWS. Em sua função, ele ajuda os clientes a fazer o melhor uso da nuvem em seus processos comerciais críticos.
Revisores
Nicolas Tarzia é Technical Account Manager na AWS, com mais de 18 anos de experiencia em desenvolvimento de software, arquitetura de sistemas, e ele trabalha apoiando os clientes Enterprise Support em sua jornada na AWS.