Prevenção do problema do substituto confuso entre 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. Em AWS, a personificação entre serviços pode resultar no problema do ‘confused deputy’.
A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta. Para obter mais informações, consulte O problema confused deputy no Guia do usuário IAM.
Recomendamos o uso das chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
em políticas de recursos para limitar as permissões que o Amazon RDS concede a outro serviço para um recurso específico.
Em alguns casos, o valor aws:SourceArn
não contém o ID da conta, por exemplo, quando você usa o nome do recurso da Amazon (ARN) para um bucket do Simple Storage Service (Amazon S3). Nesses casos, certifique-se de usar as duas chaves de contexto de condição global para limitar as permissões. Em alguns casos, você usa chaves de contexto de condição global e o valor aws:SourceArn
contém o ID da conta. Nesses casos, verifique se o valor aws:SourceAccount
e a conta no aws:SourceArn
usa o mesmo ID de conta quando eles são usados na mesma instrução de política. Use aws:SourceArn
se quiser que apenas um recurso seja associado ao acesso entre serviços. Use aws:SourceAccount
se você quiser permitir que qualquer recurso nessa conta da AWS específica seja associado ao uso entre serviços.
Verifique se o valor de aws:SourceArn
é um ARN para um tipo de recurso do Amazon RDS. Para obter mais informações, consulte Nomes de recurso da Amazon (ARNs) no Amazon RDS.
A maneira mais eficaz de se proteger contra o problema do substituto confuso é usar a chave de contexto de condição global aws:SourceArn
com o ARN completo do recurso. Em alguns casos, talvez você não saiba o ARN completo do recurso ou pode estar especificando vários recursos. Nesses casos, use a chave de condição de contexto global com curingas aws:SourceArn
(*
) para as partes desconhecidas do ARN. Um exemplo é arn:aws:rds:*:
. 123456789012
:*
O exemplo a seguir mostra como é possível usar as chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
no Amazon RDS, a fim de evitar o problema do substituto confuso.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:
us-east-1
:123456789012
:db:mydbinstance
" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } }
Para obter mais exemplos de políticas que usam as chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
, consulte as seguintes seções:
-
Conceder permissões para publicar notificações em um tópico do Amazon SNS
-
Criar manualmente uma função do IAM para backup e restauração nativos
-
Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server
-
Criar manualmente uma função do IAM para a Auditoria do SQL Server
-
Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3
-
Configurar o acesso a um bucket do Amazon S3 (Importação do PostgreSQL)
-
Configurar o acesso a um bucket do Amazon S3 (Exportação do PostgreSQL)