Segurança e governança: VPC não basta, e KMS é a segunda autorização
- ⬜📉 Deriva: a falha que não gera erro(AWS ML Engineer Associate (MLA-C01))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Três perguntas que a prova faz de várias maneiras
- Quem pode fazer o quê? — identidade e permissão, com o princípio do menor privilégio aplicado ao papel de execução, não só ao usuário.
- Por onde o dado trafega? — isolamento de rede, e a pergunta específica de se a chamada sai para a internet pública.
- Como se prova depois? — trilha de auditoria, linhagem e versionamento.
A terceira é a mais esquecida e a que mais aparece em cenário de setor regulado. Saber quem treinou qual modelo, com qual dado, e quem aprovou a promoção não é burocracia: é o que permite responder a uma auditoria sem reconstruir a história a partir de memória de pessoas.
Isolamento de rede: a diferença que decide a questão
Um trabalho de treinamento ou um endpoint do SageMaker, por padrão, roda em infraestrutura gerenciada pela AWS e alcança serviços como o S3 pela internet pública — dentro da rede da AWS, mas por caminho público. Em cenário com dado sensível, o requisito costuma ser eliminar esse caminho, e há duas peças distintas para isso:
| Peça | O que faz | Sem ela |
|---|---|---|
| Trabalho e endpoint na sua VPC | A carga passa a rodar com interfaces de rede na sua sub-rede | Você não controla grupo de segurança nem roteamento |
| Endpoint de VPC para o serviço | A chamada ao S3 e às APIs vai por rede privada | O tráfego sai pelo caminho público, mesmo com a carga na VPC |
| Isolamento total de rede | O contêiner de treino fica sem qualquer saída de rede | Um script malicioso ou dependência comprometida pode exfiltrar |
| Política de ponto de acesso | Restringe QUEM pode falar com o recurso pelo endpoint | O endpoint privado existe e qualquer identidade o usa |
Colocar na VPC não basta, e é a pegadinha mais frequente
Uma carga na sua sub-rede continua alcançando o S3 pelo caminho público se não houver endpoint de VPC para o S3. A questão típica descreve exatamente isso: "o time colocou o treino na VPC e a auditoria ainda aponta tráfego pela internet". A peça que falta é o endpoint de serviço, não mais uma regra de grupo de segurança.
from sagemaker.estimator import Estimator
from sagemaker.network import NetworkConfig
est = Estimator(
image_uri=IMAGEM, role=ROLE, instance_type="ml.m5.xlarge",
# (1) Coloca as interfaces de rede na SUA sub-rede. Isto sozinho NÃO impede
# a chamada ao S3 de sair pelo caminho público — falta o endpoint de VPC,
# que é recurso de rede e se cria no Terraform, não aqui.
subnets=["subnet-0a1b", "subnet-0c2d"],
security_group_ids=["sg-0e3f"],
# (2) Corta TODA saída de rede do contêiner. É o único controle que impede
# exfiltração por processo comprometido — e exige que o dado chegue por
# canal do próprio SageMaker, porque nem o S3 fica alcançável.
enable_network_isolation=True,
# (3) Cifra em repouso o volume da instância e a saída do treino.
volume_kms_key=CHAVE_KMS,
output_kms_key=CHAVE_KMS,
encrypt_inter_container_traffic=True,
)Um trabalho de treinamento foi movido para dentro da VPC, mas a auditoria ainda registra acesso ao S3 pela internet pública. O que falta?
Cifra e chave: as três perguntas do KMS
- Em repouso — o bucket de dado, o volume da instância de treino e o artefato de modelo estão cifrados? Chave gerenciada pela AWS é o padrão; chave gerenciada por você entra quando o requisito fala em controle da chave ou em rotação sob sua política.
- Em trânsito — as chamadas usam TLS? É o padrão nos serviços, e a questão costuma ser sobre garantir que NADA aceite texto claro, via política de bucket.
- Quem pode usar a chave? — a política da chave é uma segunda camada de autorização, independente da permissão de identidade. Ter acesso ao objeto e não ter acesso à chave resulta em negação, e é uma causa comum de erro difícil de diagnosticar.
O erro de permissão mais confuso do domínio 4
Um papel com permissão total no bucket que recebe negação ao ler um objeto cifrado com chave gerenciada pelo cliente. A permissão de objeto está certa; falta a permissão de DESCRIPTOGRAFAR na política da chave. São duas autorizações distintas, e a mensagem de erro raramente aponta a segunda.
Um papel de execução tem permissão de leitura total num bucket, mas o trabalho de treinamento falha com acesso negado ao ler os objetos, que são cifrados com chave gerenciada pelo cliente. Qual é a causa?
Qual configuração impede que um contêiner de treinamento comprometido exfiltre dados pela rede?
Próximo passo
Os quatro domínios cobertos, resta transformar isso em aprovação: a estratégia de prova, os padrões de enunciado que se repetem e a revisão do que mais cai.
Perguntas frequentes
❓ Colocar o treinamento do SageMaker numa VPC garante que o tráfego não vá pela internet?
❓ Por que recebo acesso negado ao ler objetos cifrados mesmo com permissão total no bucket?
❓ O que registrar para atender auditoria de um sistema de ML?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…