

# 保护 Amazon S3 桶免受混淆代理人问题影响
<a name="custom-security.confused-deputy"></a>

创建 Amazon RDS Custom for Oracle 自定义引擎版本（CEV）或 RDS Custom for SQL Server 数据库实例时，RDS Custom 会创建一个 Amazon S3 桶。S3 桶存储相关文件，例如 CEV 构件、重做（事务）日志、支持外围的配置项目以及 AWS CloudTrail 日志。

您可以通过使用全局条件上下文键来防止*混淆代理人问题*，从而使这些 S3 桶更加安全。有关更多信息，请参阅 [防范跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)。

以下 RDS Custom for Oracle 示例显示了如何在 S3 桶策略中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键。对于 RDS Custom for Oracle，请确保包含 CEV 和数据库实例的 Amazon 资源名称（ARN）。对于 RDS Custom for SQL Server，确请保包含数据库实例的 ARN。

```
...
{
  "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"
    }
  }
},
...
```