

# Proteger o bucket do Amazon S3 contra o problema do substituto confuso
<a name="custom-security.confused-deputy"></a>

Quando você cria uma versão de mecanismo personalizada (CEV) do Amazon RDS Custom para Oracle ou uma instância de banco de dados do RDS Custom para SQL Server, o RDS Custom cria um bucket do Amazon S3. O bucket do S3 armazena arquivos como artefatos de CEV, logs de redo (transação), itens de configuração para o perímetro de suporte e logs do AWS CloudTrail.

Você pode tornar esses buckets do S3 mais seguros usando as chaves de contexto de condição globais para evitar o *problema de representante confuso*. Para ter mais informações, consulte [Prevenção do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

O exemplo do RDS Custom para Oracle a seguir mostra o uso das chaves de contexto de condição globais `aws:SourceArn` e `aws:SourceAccount` em uma política de bucket do S3. Para o RDS Custom para Oracle, sempre inclua os nomes de recurso da Amazon (ARNs) das CEVs e das instâncias de banco de dados. Para o RDS Custom para SQL Server, inclua o ARN das instâncias de banco de dados.

```
...
{
  "Sid": "AWSRDSCustomForOracleInstancesObjectLevelAccess",
  "Effect": "Allow",
  "Principal": {
     "Service": "custom.rds.amazonaws.com"
  },
  "Action": [
     "s3:GetObject",
     "s3:GetObjectVersion",
     "s3:DeleteObject",
     "s3:DeleteObjectVersion",
     "s3:GetObjectRetention",
     "s3:BypassGovernanceRetention"
  ],
  "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-2-c8a6f7/RDSCustomForOracle/Instances/*",
  "Condition": {
     "ArnLike": {
        "aws:SourceArn": [
            "arn:aws:rds:us-east-2:123456789012:db:*",
            "arn:aws:rds:us-east-2:123456789012:cev:*/*"
        ]
     },
     "StringEquals": {
        "aws:SourceAccount": "123456789012"
    }
  }
},
...
```