c2.2 Use um papel de serviço de privilégio mínimo para personalização e importação
Crie um papel de serviço de IAM dedicado para a personalização ou importação de modelos que conceda apenas as permissões que o job precisa, seguindo o privilégio mínimo.
Guia de implementação
Como implementar na AWS
Crie um papel de serviço de IAM personalizado para o job de personalização ou importação do Bedrock/SageMaker, restrito aos buckets S3 e chaves KMS específicos que usa, sem acesso mais amplo. Separe este papel dos papéis de inferência e administração.
Por que a personalização precisa de sua própria função
A personalização de modelos (fine-tuning, destilação, pré-treinamento contínuo) é executada como um trabalho assíncrono que o Amazon Bedrock realiza em seu nome. O Bedrock assume uma função de serviço do IAM para ler seus dados de treinamento/validação do S3, gravar métricas de saída e — se seus dados estiverem criptografados — usar sua chave do KMS. Como essa função pode ler seus dados de treinamento, ela deve ser dedicada à personalização e restrita exatamente aos buckets e chaves envolvidos, não uma função compartilhada ou ampla.
Confie apenas no Bedrock, e apenas para sua conta
A política de confiança da função deve permitir que o principal de serviço do Bedrock a assuma, restrita com aws:SourceAccount (e idealmente aws:SourceArn) para que um "confused deputy" em outra conta não possa tomá-la emprestada:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "bedrock.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": { "aws:SourceAccount": "111122223333" },
"ArnEquals": {
"aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
}
}
}
]
}
Conceda apenas o acesso ao S3 (e KMS) de que o trabalho precisa
A política de permissões deve listar os buckets específicos de dados de entrada e saída, nada mais amplo:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadTrainingData",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::my-bedrock-training-data",
"arn:aws:s3:::my-bedrock-training-data/*"
]
},
{
"Sid": "WriteJobOutput",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bedrock-custom-output/*"
}
]
}
Se esses buckets usarem uma chave do KMS gerenciada pelo cliente, adicione kms:Decrypt (e kms:GenerateDataKey para o bucket de saída) sobre esse ARN de chave específico; sem isso, o trabalho falha com um erro de acesso.
Mantenha-a separada da função de invocação
A função de personalização lê dados de treinamento; a função de invocação em runtime chama os modelos (consulte o controle de IAM de privilégio mínimo). Não as combine — uma carga de trabalho que só precisa invocar um modelo nunca deve ter permissões para ler seu corpus de treinamento.
Nota de nomenclatura: substitua o id da conta, a região e os nomes de bucket. Restrinja aws:SourceArn ao padrão de ARN do trabalho de personalização para que a função só seja assumível para esse tipo de trabalho.Critérios de aceitação
O job de personalização usa um papel de privilégio mínimo dedicado restrito aos seus buckets/chaves; nenhum papel de admin ou inferência compartilhado é reutilizado.
Implementação prática
Como este controle é implementado em cada arquitetura de referência:
Um papel de serviço de personalização dedicado na conta de IA generativa é restrito apenas aos buckets de treinamento e chaves específicos, separado dos papéis de invocação e administração.
- Crie um papel de serviço de IAM dedicado para o job de personalização do Bedrock/SageMaker, com acesso apenas aos buckets S3 de treinamento/validação específicos e à chave KMS de personalização.
- Confirme que este papel não é o papel de invocação de inferência nem um papel de administração; cada função tem seu próprio papel.
- Adicione um permissions boundary para que o papel de personalização nunca possa escalar além dos seus buckets/chaves.
Como validar: O job roda sob um papel dedicado restrito aos seus buckets/chaves; o IAM Access Analyzer não mostra acesso amplo; o papel é distinto dos papéis de invocação/administração.
Evite: Reutilizar um papel de administração ou inferência para executar o job de treinamento porque 'já funciona'. Um pipeline de treinamento comprometido herda então muito mais do que precisa.
Um papel de personalização de privilégio mínimo distinto na conta é restrito aos seus buckets e chaves e mantido separado dos papéis em execução e de administração.
- Crie um papel de serviço de personalização dedicado restrito aos buckets de treinamento específicos e à chave KMS, sem acesso mais amplo.
- Mantenha-o separado do papel de invocação do modelo e de qualquer papel de administração, para que treinamento, inferência e administração tenham cada um sua identidade.
- Anexe um permissions boundary para limitar o alcance do papel mesmo se sua política for editada depois.
Como validar: O job de personalização usa um papel dedicado restrito aos seus buckets/chaves; não é o papel de invocação nem de administração; há um permissions boundary anexado.
Evite: Um único papel multiuso para treinamento, inferência e administração na conta única. Separe as funções por papel para que um comprometimento de treinamento fique contido.
Ameaças atendidas
- Um papel de personalização com permissões excessivas alcançando dados ou ações fora do job.
- Movimento lateral a partir de um pipeline de treinamento comprometido.
Serviços AWS
Preços
Funções e políticas do IAM são gratuitas. Você paga pelo trabalho de personalização (por token processado / por hora conforme o método) e pelo armazenamento dos dados de treinamento e do modelo personalizado resultante; a função em si não adiciona custo. Consulte Create a service role for model customization.
Mapeamentos de frameworks
OWASP GenAI/LLM Top 10 (2026)
- LLM05 Data and Model Poisoning
NIST AI Risk Management Framework (AI 100-1)
- MANAGE.1 AI risks are prioritized, responded to and managed
AWS Security Hub — AI Security Best Practices
- SageMaker.3 Users should not have root access to SageMaker notebook instances
AWS Well-Architected Generative AI Lens (Security)
- GENSEC01-BP01 Grant least privilege access to foundation model endpoints
Recursos de aprendizado
Referências
- AWS SRA para IA — Capacidade 2, Gestão de identidade e acesso
AI Security Maturity Model