No nosso banco de questões do MLA-C01, cerca de 40 questões tratam de segurança e conformidade, um dos maiores grupos de todos. A tarefa 4.3 do guia do exame cobre funções, políticas e políticas de bucket do IAM, os recursos de segurança e conformidade do SageMaker, os controles de acesso de rede aos recursos de ML e a segurança dos pipelines de CI/CD, e a tarefa 1.3 acrescenta requisitos de conformidade como criptografia de dados, classificação, anonimização e mascaramento, PII, PHI e residência de dados. As questões costumam dar condições como "precisa cumprir a HIPAA" ou "não pode passar pela internet" e pedem a combinação de várias configurações.
Este artigo divide a segurança de ML em quatro camadas (rede, criptografia, permissões e auditoria) e organiza as configurações do SageMaker de cada uma, e depois passa ao tratamento de dados sensíveis, a CI/CD e gestão de segredos e à montagem de um cenário HIPAA. A visão geral de segurança foi tratada antes em Monitoramento de Modelos, Otimização de Custos e Segurança.
---
Divida a Segurança em Quatro Camadas
Para proteger o cofre de um banco, controla-se quem entra no prédio (rede), tranca-se o cofre (criptografia), define-se quem tem as chaves (permissões) e tudo fica gravado nas câmeras (auditoria). Se faltar uma, o sistema inteiro fica mais fraco. As opções das questões de segurança costumam vir uma de cada uma dessas quatro camadas.
| Camada | Pergunta que responde | Configurações típicas | |------|------|------| | Rede | Por qual caminho os dados trafegam? | VPC, endpoints de VPC, isolamento de rede, grupos de segurança | | Criptografia | Os dados roubados ficam ilegíveis? | KMS (dados em repouso), TLS e criptografia entre contêineres (em trânsito) | | Permissões | Quem pode fazer o quê? | Funções de execução do IAM, privilégio mínimo, chaves de condição, políticas de bucket | | Auditoria | Quem fez o quê e quando? | CloudTrail, CloudWatch Logs, AWS Config |
!As quatro camadas da segurança de ML, rede, criptografia, permissões e auditoria, com as configurações típicas da AWS em cada uma
---
Camada 1, Rede: VPC, Endpoints de VPC e Isolamento de Rede
Executar Trabalhos do SageMaker Dentro de uma VPC
Ao criar um trabalho de treinamento, um trabalho de processamento ou um modelo (endpoint), informar sub-redes privadas e grupos de segurança no VpcConfig faz os contêineres rodarem dentro da sua VPC. Sem saída para a internet (um gateway NAT), os contêineres também não alcançam o S3, então é preciso criar um endpoint de VPC do tipo gateway para o S3 para que eles leiam os dados de treinamento e gravem os artefatos do modelo.
| Requisito | Configuração | |------|------| | Os contêineres de treinamento acessam o S3 sem internet | Endpoint de VPC do tipo gateway para o S3 | | Aplicações na VPC invocam o endpoint sem internet | Endpoint de interface do SageMaker Runtime (PrivateLink) | | Chamar a API do SageMaker (criar trabalhos etc.) de dentro da VPC | Endpoint de interface da API do SageMaker (PrivateLink) | | Acesso a partir do ambiente local sem internet | Direct Connect (ou VPN) + endpoints de interface | | O bucket só aceita solicitações que chegam pelo nosso endpoint de VPC | Condição aws:SourceVpce na política do bucket |
Isolamento de Rede: Cortar de Vez o Tráfego de Saída do Contêiner
Com o EnableNetworkIsolation ativado, os contêineres de treinamento e inferência não conseguem fazer chamadas de saída para lugar nenhum, nem para o S3, e não há credenciais da AWS dentro do contêiner. O treinamento continua funcionando, porque o SageMaker baixa os dados do S3 e envia os resultados fora do contêiner usando a função de execução. Use-o para impedir o vazamento de dados por código cuja origem não dá para verificar totalmente ou por algoritmos do AWS Marketplace (o isolamento é obrigatório para recursos do Marketplace).
Criptografia do Tráfego Entre Contêineres
No treinamento distribuído em várias instâncias, elas trocam informações como os pesos. Se um requisito exige criptografar também esse tráfego, ative a criptografia do tráfego entre contêineres. É uma boa prática recomendada na área da saúde, mas pode aumentar o tempo e o custo do treinamento distribuído de aprendizado profundo.
Dica: "Os dados de treinamento não podem passar pela internet" são sub-redes privadas + um endpoint gateway para o S3, "um código de treinamento não verificado não pode enviar dados para fora" é o isolamento de rede, e "criptografar também o tráfego entre os nós do treinamento distribuído" é a criptografia do tráfego entre contêineres.
---
Camada 2, Criptografia: KMS e Criptografia em Trânsito
Dados em Repouso: Onde Informar a Chave
| Alvo | Onde configurar | |------|------| | Dados de treinamento e artefatos do modelo no S3 | Criptografia padrão do bucket (SSE-KMS) e a chave KMS de saída do trabalho | | Volumes de armazenamento das instâncias de treinamento e processamento | A chave KMS de volume do trabalho | | Volumes de armazenamento das instâncias do endpoint | A chave KMS da configuração do endpoint | | Feature Store | Chaves KMS do armazenamento online e do armazenamento offline (S3) |
O SSE-S3 é a opção mais simples, em que a AWS gerencia totalmente as chaves, enquanto o SSE-KMS criptografa com uma chave do KMS e registra o uso da chave no CloudTrail. Entre elas, uma chave gerenciada pelo cliente (CMK) permite decidir pela política de chave quem pode usá-la, ativar a rotação automática e desativar a chave para bloquear na hora o acesso aos dados.
As Permissões do KMS São Verificadas em Dois Lugares
Para ler dados criptografados com uma chave gerenciada pelo cliente, o acesso precisa estar permitido tanto na política do IAM quanto na política de chave. Se um trabalho de treinamento falha com "AccessDenied" mesmo com permissões suficientes no S3, verifique se falta à função de execução o kms:Decrypt (leitura) ou o kms:GenerateDataKey (gravação) e se a política de chave permite essa função.
Criptografia em Trânsito
As chamadas às APIs da AWS e aos endpoints são criptografadas com TLS (HTTPS). Acrescentar à política do bucket uma instrução que negue solicitações em que aws:SecureTransport seja false bloqueia o acesso sem criptografia.
Dica: "Auditar o uso da chave e controlar diretamente a rotação e o acesso" é uma chave do KMS gerenciada pelo cliente. "As permissões do S3 existem, mas os objetos criptografados não podem ser lidos" significa que falta a política de chave do KMS ou a permissão kms:Decrypt.
---
Camada 3, Permissões: Funções de Execução e Privilégio Mínimo
Separe as Funções das Pessoas da Função do SageMaker
A função de execução do SageMaker é a que os trabalhos de treinamento e os endpoints usam para acessar o S3, o ECR e o CloudWatch. Crie-a separada das funções das pessoas (cientistas de dados, engenheiros de MLOps) e dê a quem cria trabalhos apenas a permissão iam:PassRole necessária para repassar essa função de execução.
| Técnica | O que faz | Exemplo | |------|------|------| | Separação de funções | Só as permissões de que cada pessoa e serviço precisam | Cientistas de dados só treinam, MLOps também implanta | | Permissões no nível do recurso | Permitir apenas buckets, prefixos ou modelos específicos | A equipe A só acessa s3://data/team-a/ | | Impor chaves de condição | Negar a criação do trabalho sem as configurações de segurança | sagemaker:VpcSubnets, sagemaker:VolumeKmsKey, sagemaker:NetworkIsolation | | Políticas de bucket | Restringir entidades e caminhos do lado do bucket | Só uma função específica de outra conta, só pelo endpoint de VPC |
As chaves de condição permitem impor configurações de segurança, por exemplo para que "um trabalho de treinamento sem sub-redes de VPC e sem chave do KMS não possa nem ser criado". Para aplicar a mesma regra em muitas contas, use as políticas de controle de serviço (SCP) do AWS Organizations.
O SageMaker Role Manager, que criava funções por perfil, não aceita mais novos clientes. A AWS indica como substituto a combinação das ferramentas nativas do IAM, do IAM Identity Center e da infraestrutura como código, como CloudFormation e CDK.
Dica: "Impedir que cientistas de dados criem trabalhos de treinamento sem as configurações de segurança" são as chaves de condição do SageMaker nas políticas do IAM.
---
Camada 4, Auditoria: CloudTrail, CloudWatch e AWS Config
| Ferramenta | Pergunta que responde | Uso na segurança de ML | |------|------|------| | CloudTrail | Quem chamou qual API e quando? | Acompanhar mudanças de configuração de endpoints, exclusões de modelos, uso de chaves | | CloudWatch Logs | O que aconteceu dentro do contêiner? | Logs de treinamento e inferência, causas de erros | | AWS Config | A configuração atual segue as regras? | Regras gerenciadas, como se as configurações de endpoint têm chave KMS ou se os notebooks têm acesso direto à internet |
Por padrão, o CloudTrail guarda os eventos de gerenciamento no histórico por 90 dias. Para guardar por mais tempo, crie uma trilha (trail) que os entregue ao S3 e, se for preciso impedir adulteração, acrescente o bloqueio de objetos do S3 e a validação de integridade dos arquivos de log. Aqui há uma armadilha do exame. Chamadas de inferência como o InvokeEndpoint são eventos de dados, por isso não são registradas por padrão. Se for preciso auditar as chamadas de inferência, é necessário ativar à parte o registro de eventos de dados, com custo adicional, e o corpo da solicitação (os dados de entrada) não é registrado.
Dica: "Quem alterou a configuração do endpoint" é o CloudTrail, "encontrar automaticamente os recursos do SageMaker que violam as regras" é o AWS Config, e "os logs de auditoria não podem ser alterados nem excluídos" é o bloqueio de objetos do S3.
---
Tratamento de Dados Sensíveis: Encontrar, Ocultar e Manter na Região
| Ferramenta | O que faz | Alvo | |------|------|------| | Amazon Macie | Descobre e classifica automaticamente dados sensíveis, como dados pes