用于 CloudTrail Lake 查询结果的 Amazon S3 存储桶策略
默认情况下,Simple Storage Service(Amazon S3)存储桶和对象都是私有的。仅资源所有者(创建存储桶的 Amazon 账户)能够访问存储桶及其包含的对象。资源所有者可以通过编写访问策略来向其他资源和用户授予访问权。
要将 CloudTrail Lake 查询结果传送到 S3 存储桶,CloudTrail 必须具有所需的权限,且不得配置为申请方付款存储桶。
CloudTrail 将在策略中添加以下字段:
-
允许的 SID
-
存储桶名称
-
CloudTrail 的服务委托方名称
作为安全最佳实践,请将 aws:SourceArn
条件密钥添加到 Simple Storage Service(Amazon S3)存储桶策略。IAM 全局条件密钥 aws:SourceArn
有助于确保 CloudTrail 仅针对事件数据存储向 S3 存储桶写入数据。
以下策略允许 CloudTrail 将查询结果从支持的区域传送到存储桶。将 myBucketName
、myAccountID
和 myQueryRunningRegion
替换为您配置的相应值。myAccountID
是用于 CloudTrail 的 Amazon 账户 ID,其可能与 S3 存储桶的 Amazon 账户 ID 不同。
如果这是组织事件数据存储,则您必须使用管理账户的 Amazon 账户 ID。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailLake1", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": [ "s3:PutObject*", "s3:Abort*" ], "Resource": [ "arn:aws:s3:::
myBucketName
", "arn:aws:s3:::myBucketName
/*" ], "Condition": { "StringLike": { "aws:sourceAccount": "myAccountID
", "aws:sourceArn": "arn:aws:cloudtrail:myQueryRunningRegion
:myAccountID
:eventdatastore/*" } } }, { "Sid": "AWSCloudTrailLake2", "Effect": "Allow", "Principal": {"Service":"cloudtrail.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myBucketName
", "Condition": { "StringLike": { "aws:sourceAccount": "myAccountID
", "aws:sourceArn": "arn:aws:cloudtrail:myQueryRunningRegion
:myAccountID
:eventdatastore/*" } } } ] }
为 CloudTrail Lake 查询结果指定现有存储桶
如果您将某个现有 S3 存储桶指定为 CloudTrail Lake 查询结果传送的存储位置,则必须将策略附加到存储桶,以允许 CloudTrail 将查询结果传送到存储桶。
最佳实践是对 CloudTrail Lake 查询结果使用专用的 S3 存储桶。
将所需的 CloudTrail 策略添加到 Simple Storage Service(Amazon S3)存储桶
通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择您希望 CloudTrail 向其传送 Lake 查询结果的存储桶,然后选择 Permissions(权限)。
-
选择 Edit(编辑)。
-
将 S3 bucket policy for query results 复制到 Bucket Policy Editor 窗口。将斜体占位符替换为您的存储桶、区域和账户 ID 的名称。
注意 如果现有存储桶已附加一个或多个策略,请将 CloudTrail 访问的语句添加到这些策略。评估生成的权限集,以确保其适用于访问存储桶的用户。
其他资源
有关 S3 存储桶和策略的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用存储桶策略。