

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 CloudTrail Lake 查询结果的 Amazon S3 存储桶策略
<a name="s3-bucket-policy-lake-query-results"></a>

默认情况下，Amazon S3 存储桶和对象都是私有的。仅资源所有者（创建存储桶的 AWS 账户）能够访问存储桶及其包含的对象。资源所有者可以通过编写访问策略来向其他资源和用户授予访问权。

要将 CloudTrail Lake 查询结果传送到 S3 存储桶， CloudTrail 必须具有所需的权限，并且不能将其配置为[申请方付款](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html)存储桶。

CloudTrail 为您在策略中添加以下字段：
+ 允许的 SIDs
+ 存储桶名称
+ 的服务主体名称 CloudTrail

作为安全最佳实践，请将 `aws:SourceArn` 条件密钥添加到 Amazon S3 存储桶策略。IAM 全局条件密钥`aws:SourceArn`有助于确保仅针对事件数据存储 CloudTrail 写入 S3 存储桶。

以下策略 CloudTrail 允许将查询结果从支持的存储桶传送到存储桶 AWS 区域。将*amzn-s3-demo-bucket**myAccountID*、和*myQueryRunningRegion*，替换为适合您的配置的值。*myAccountID*是用于的 AWS 账户 ID CloudTrail，可能与 S3 存储桶的 AWS 账户 ID 不同。

**注意**  
如果您的存储桶策略包含 KMS 密钥的声明，我们建议您使用完全限定的 KMS 密钥 ARN。如果您改用 KMS 密钥别名，则会在请求者的账户中 AWS KMS 解析密钥。这一行为可能导致使用属于请求者而不是存储桶拥有者的 KMS 密钥来加密数据。  
如果这是组织事件数据存储，则事件数据存储 ARN 必须包含管理账户的 AWS 账户 ID。这是因为管理账户保留对所有组织资源的所有权。

**S3 存储桶策略**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSCloudTrailLake1",
            "Effect": "Allow",
            "Principal": {"Service": "cloudtrail.amazonaws.com"},
            "Action": [
                "s3:PutObject*",
                "s3:Abort*"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:sourceAccount": "111111111111"
                },
                "ArnLike": {
                    "aws:sourceArn": "arn:aws:cloudtrail:us-east-1:111111111111:eventdatastore/*"
                }
            }     
        },
        {
            "Sid": "AWSCloudTrailLake2",
            "Effect": "Allow",
            "Principal": {"Service":"cloudtrail.amazonaws.com"},
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:sourceAccount": "111111111111"
                },
                "ArnLike": {
                    "aws:sourceArn": "arn:aws:cloudtrail:us-east-1:111111111111:eventdatastore/*"
                }
            }
        }
    ]
}
```

------

**Contents**
+ [为 La CloudTrail ke 查询结果指定现有存储桶](#specify-an-existing-bucket-for-cloudtrail-query-results-delivery)
+ [其他资源](#cloudtrail-lake-S3-bucket-policy-resources)

## 为 La CloudTrail ke 查询结果指定现有存储桶
<a name="specify-an-existing-bucket-for-cloudtrail-query-results-delivery"></a>

如果您将现有 S3 存储桶指定为 CloudTrail Lake 查询结果交付的存储位置，则必须向该存储桶附加允许将查询结果传送 CloudTrail 到该存储桶的策略。

**注意**  
作为最佳实践，请使用专用 S3 存储桶获取 CloudTrail Lake 查询结果。

**向 Amazon S3 存储桶添加所需的 CloudTrail 策略**

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择 CloudTrail 要在其中传送 Lake 查询结果的存储桶，然后选择 Permissi **on** s。

1. 选择**编辑**。

1. 将 [S3 bucket policy for query results](#s3-bucket-policy-lake-query) 复制到 **Bucket Policy Editor** 窗口。将斜体占位符替换为您的存储桶、区域和账户 ID 的名称。
**注意**  
如果现有存储桶已附加了一个或多个策略，请添加用于 CloudTrail 访问该策略的声明。评估生成的权限集，以确保其适用于访问存储桶的用户。

## 其他资源
<a name="cloudtrail-lake-S3-bucket-policy-resources"></a>

有关 S3 存储桶和策略的更多信息，请参阅《Amazon Simple Storage Service 用户指南》中的[使用存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。