Prevenção contra o ataque do “substituto confuso” em todos os serviços
O problema “confused deputy” é um problema de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Na AWS, o problema de “confused deputy” pode surgir devido à representação entre serviços. A representação entre serviços pode ocorrer quando um serviço (o serviço que faz a chamada) invoca outro serviço (o serviço chamado) e aproveita as permissões elevadas do serviço chamado para usar recursos que o serviço que realizou a chamada não tem autorização para acessar. Para evitar o acesso não autorizado por meio do problema de “confused deputy”, a AWS fornece ferramentas para ajudar a proteger seus dados em todos os serviços. Essas ferramentas ajudam você a controlar as permissões concedidas às entidades principais de serviço, limitando o acesso somente aos recursos necessários em sua conta. Ao gerenciar cuidadosamente os privilégios de acesso das entidades principais de serviço, você pode ajudar a reduzir o risco de os serviços acessarem indevidamente dados ou recursos para os quais não deveriam ter permissões.
Continue lendo para obter orientações gerais ou navegue até um exemplo de um recurso específico do SageMaker AI:
Tópicos
Limitar as permissões com chaves de condição globais
Recomendamos o uso das chaves de condição global aws:SourceArn e aws:SourceAccount em políticas de recursos para limitar as permissões ao recurso que o Amazon SageMaker AI concede a outros recursos. Se você utilizar ambas as chaves de condição global e o valor aws:SourceArn contiver o ID da conta, o valor aws:SourceAccount e a conta no valor aws:SourceArn deverão utilizar o mesmo ID de conta quando utilizados na mesma declaração da política. Use aws:SourceArn se quiser que apenas um recurso seja associado ao acesso entre serviços. Use aws:SourceAccount se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.
A maneira mais eficaz de se proteger contra o problema ‘confused deputy’ é usar a chave de condição global aws:SourceArn com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou estiver especificando vários recursos, use a chave de contexto global aws:SourceArn com curingas (*) para as partes desconhecidas do ARN. Por exemplo, arn:aws:sagemaker:*:.123456789012:*
O exemplo a seguir mostra como é possível usar as chaves de condição globais aws:SourceArn e aws:SourceAccount no SageMaker AI para evitar o problema de representante confuso.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "service:ActionName", "Resource": [ "arn:aws:service:::ResourceName/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }
SageMaker Edge Manager
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços do SageMaker Edge Manager, criado pela conta número 123456789012 na Região us-west-2.
Você pode substituir o aws:SourceArn neste modelo pelo ARN completo de um trabalho de empacotamento específico para limitar ainda mais as permissões.
Imagens do SageMaker
O exemplo a seguir mostra como é possível usar as chaves de condição globais aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços nas Imagens do SageMaker. Use este modelo com um Image ou ImageVersion. Este exemplo usa um ARN de registro ImageVersion com o número da conta 123456789012. Observe que, como o número da conta faz parte do valor aws:SourceArn, você não precisa especificar um valor aws:SourceAccount.
Não substitua o aws:SourceArn neste modelo pelo ARN completo de uma imagem ou versão de imagem específica. O ARN deve estar no formato fornecido acima e especificar image ou image-version. O espaço reservado partition deve designar uma partição comercial da AWS (aws) ou uma partição AWS na China (aws-cn), dependendo de onde a imagem ou a versão da imagem estão sendo executadas. Da mesma forma, o espaço reservado region no ARN pode ser qualquer Região válida em que as imagens do SageMaker estejam disponíveis.
SageMaker AI Inference
O exemplo a seguir mostra como é possível usar as chaves de condição globais aws:SourceArn para evitar o problema de representante confuso entre serviços para inferência em tempo real, sem servidor e assíncrona do SageMaker AI. Observe que, como o número da conta faz parte do valor aws:SourceArn, você não precisa especificar um valor aws:SourceAccount.
Não substitua o aws:SourceArn neste modelo pelo ARN completo de um modelo ou endpoint específicos. O ARN deve estar no formato fornecido acima. O asterisco no modelo ARN não significa um curinga e não deve ser alterado.
Trabalhos de transformação em lote do SageMaker AI
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema de representante confuso entre serviços de trabalhos de transformação em lote do SageMaker AI criados pela conta número 123456789012 na região us-west-2. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Você pode substituir o aws:SourceArn neste modelo pelo ARN completo de um trabalho de transformação de lotes específico para limitar ainda mais as permissões.
SageMaker AI Marketplace
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema de representante confuso entre serviços dos recursos do SageMaker AI Marketplace criados pela conta número 123456789012 na região us-west-2. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Não substitua o aws:SourceArn neste modelo pelo ARN completo de um pacote de modelos ou algoritmo específicos. O ARN deve estar no formato fornecido acima. O asterisco no modelo do ARN significa curinga e abrange todas as tarefas de treinamento, modelos e trabalhos de transformação em lote das etapas de validação, bem como pacotes de modelo e algoritmos publicados no SageMaker AI Marketplace.
SageMaker Neo
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços de trabalhos de compilação do SageMaker Neo, criado pela conta número 123456789012 na Região us-west-2. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Você pode substituir o aws:SourceArn neste modelo pelo ARN completo de um trabalho de compilação específico para limitar ainda mais as permissões.
SageMaker Pipelines
O exemplo a seguir mostra como é possível usar as chaves de condição globais aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços do SageMaker Pipelines que usam registros de execução de pipeline para um ou mais pipelines. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Não substitua o aws:SourceArn neste modelo pelo ARN completo de uma execução de pipeline específica. O ARN deve estar no formato fornecido acima. O espaço reservado partition deve designar uma partição comercial da AWS (aws) ou uma partição AWS na China (aws-cn), dependendo de onde o pipeline está sendo executado. Da mesma forma, o espaço reservado region no ARN pode ser qualquer Região válida em que o SageMaker Pipelines esteja disponível.
O asterisco no modelo ARN significa curinga e abrange todas as execuções de um pipeline chamado mypipeline. Se você quiser conceder as permissões AssumeRole para todos os pipelines na conta 123456789012 em vez de um pipeline específico, então o aws:SourceArn seria arn:aws:sagemaker:*:123456789012:pipeline/*.
Trabalhos de processamento do SageMaker
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema de representante confuso entre serviços de trabalhos de processamento do SageMaker AI criados pela conta número 123456789012 na região us-west-2. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Você pode substituir o aws:SourceArn neste modelo pelo ARN completo de um trabalho de processamento específico para limitar ainda mais as permissões.
SageMaker Studio
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços do SageMaker Studio, criado pela conta número 123456789012 na Região us-west-2. Observe que, como o número da conta faz parte do valor aws:SourceArn, você não precisa especificar um valor aws:SourceAccount.
Não substitua o aws:SourceArn neste modelo pelo ARN completo de uma aplicação, perfil de usuário ou domínio específico do Studio. O ARN deve estar no formato fornecido no exemplo anterior. O asterisco no modelo ARN não significa um curinga e não deve ser alterado.
Trabalhos de treinamento do SageMaker
O exemplo a seguir mostra como é possível usar a chave de condição global aws:SourceArn para evitar o problema ‘confused deputy’ entre serviços de trabalhos de treinamento do SageMaker, criado pela conta número 123456789012 na Região us-west-2. Observe que, como o número da conta consta no ARN, você não precisa especificar um valor aws:SourceAccount.
Você pode substituir o aws:SourceArn neste modelo pelo ARN completo de um trabalho de treinamento específico para limitar ainda mais as permissões.
A seguir
Para ter mais informações sobre o gerenciamento de perfis de execução, consulte Perfis do SageMaker AI.