View a markdown version of this page

Prevenção contra o ataque do “substituto confuso” em todos os serviços - Amazon Aurora DSQL

Prevenção contra o ataque do “substituto confuso” em todos os serviços

“Confused deputy” é um problema de segurança no qual uma entidade sem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Na 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.

Recomendamos o uso das chaves de contexto de condição globais aws:SourceArn e aws:SourceAccount em políticas de recursos para limitar as permissões que o Amazon Aurora DSQL concede ao recurso para outro serviço. 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 do substituto confuso é usar a chave de contexto de condição global aws:SourceArn com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou especificar vários recursos, use a chave de condição de contexto global aws:SourceArn com caracteres curinga (*) para as partes desconhecidas do ARN. Por exemplo, arn:aws:dsql:*:123456789012:*.

Se o valor de aws:SourceArn não contiver o ID da conta, como um ARN de bucket do Amazon S3, você deverá usar ambas as chaves de contexto de condição global para limitar as permissões.

O valor de aws:SourceArn deve ser o ARN do recurso do Aurora DSQL em nome do qual o perfil de serviço atua.

O exemplo a seguir mostra como você pode usar as chaves de contexto de condição globais aws:SourceArn e aws:SourceAccount no Aurora DSQL para evitar o problema de representante confuso.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "backup.amazonaws.com" }, "Action": "dsql:GetCluster", "Resource": [ "arn:aws:dsql:*:123456789012:cluster/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:backup:*:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

Perfil de serviço do fluxo de CDC

Os fluxos de captura de dados de alteração (CDC) exigem um perfil de serviço do IAM que o Aurora DSQL assume para gravar registros de CDC em seu destino. Ao criar esse perfil, use as condições aws:SourceAccount e aws:SourceArn na política de confiança para garantir que somente os fluxos de CDC em sua conta possam assumir o perfil.

Defina aws:SourceArn como o padrão de ARN do fluxo para o cluster que usa o perfil. Como o Aurora DSQL não atribuiu o identificador do fluxo quando você criou o fluxo, use um caractere curinga para a parte do fluxo do ARN:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLAssumeRole", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" } } } ] }

Depois de criar um fluxo, você pode restringir aws:SourceArn ao ARN exato do fluxo se o perfil servir a um único fluxo. Para obter uma explicação completa da política de confiança e da política de permissões para os perfis de serviço de CDC, consulte Configuração do IAM.