

# Amazon S3 バケットを、「混乱した代理」問題から保護する
<a name="custom-security.confused-deputy"></a>

Amazon RDS Custom for Oracle カスタムエンジンバージョン (CEV) または RDS Custom for SQL Server DB インスタンスを作成すると、RDS Custom は Amazon S3 バケットを作成します。S3 バケットには、CEV アーティファクト、REDO (トランザクション) ログ、サポートペリメーターの設定項目、AWS CloudTrail ログなどのファイルが保存されます。

これらの S3 バケットをより安全にするために、グローバル条件コンテキストキーを使用することで、*「混乱した代理」問題*を防止することができます。(詳しくは、「[サービス間での混乱した代理問題の防止](cross-service-confused-deputy-prevention.md)」を参照してください。)

次の RDS Custom for Oracle の例では、S3 バケットポリシーで `aws:SourceArn` と`aws:SourceAccount` のグローバル条件コンテキストキーを使用することを示します。RDS Custom for Oracle の場合は、CEV と DB インスタンスの Amazon リソースネーム (ARN) を必ず含めてください。RDS Custom for SQL Server の場合は、DB インスタンスの 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"
    }
  }
},
...
```