

# Prevenção do problema do substituto confuso entre serviços
<a name="cross-service-confused-deputy-prevention"></a>

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, 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) no *Guia do usuário IAM*.

Recomendamos o uso das chaves de contexto de condição global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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 se quiser que apenas um recurso seja associado ao acesso entre serviços `aws:SourceArn`. 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](USER_Tagging.ARN.md).

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.

------
#### [ JSON ]

****  

```
{
  "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](USER_Events.GrantingPermissions.md)
+ [Criar manualmente uma função do IAM para backup e restauração nativos](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
+ [Configuração da autenticação do Windows para instâncias de banco de dados do SQL Server](USER_SQLServerWinAuth.SettingUp.md)
+ [Pré-requisitos para integrar o RDS for SQL Server com o S3](Appendix.SQLServer.Options.S3-integration.preparing.md)
+ [Criar manualmente uma função do IAM para a Auditoria do SQL Server](Appendix.SQLServer.Options.Audit.IAM.md)
+ [Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3](oracle-s3-integration.preparing.md)
+ [Configurar o acesso a um bucket do Amazon S3](USER_PostgreSQL.S3Import.AccessPermission.md) (Importação do PostgreSQL)
+ [Configurar o acesso a um bucket do Amazon S3](postgresql-s3-export-access-bucket.md) (Exportação do PostgreSQL)