使用为组织创建跟踪 Amazon Command Line Interface - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用为组织创建跟踪 Amazon Command Line Interface

可通过使用 Amazon CLI创建组织跟踪。 Amazon CLI 会定期更新,添加其他功能和命令。为了帮助确保成功,请确保在开始之前已安装或更新到最新 Amazon CLI 版本。

注意

本节中的示例特定于创建和更新组织跟踪记录。有关使用管理跟踪 Amazon CLI 的示例,请参阅使用管理跟踪 Amazon CLI通过 Amazon CLI 配置 CloudWatch Logs 监控。使用创建或更新组织跟踪时 Amazon CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 Amazon CLI 配置文件。如果您要将组织跟踪转换为非组织跟踪,则必须使用组织的管理账户。

您必须具有足够的权限以配置用于组织跟踪的 Simple Storage Service(Amazon S3)存储桶。

创建或更新 Simple Storage Service(Amazon S3)存储桶以用于存储组织跟踪的日志文件

您必须指定一个 Simple Storage Service(Amazon S3)存储桶以接收组织跟踪的日志文件。此存储桶必须有 CloudTrail 允许将组织的日志文件放入存储桶的策略。

以下是名为的 Amazon S3 存储桶的策略示例 myOrganizationBucket,该存储桶归该组织的管理账户所有。将myOrganizationBucket区域ManagementAccountID、T railName 和 o-organizatid 替换为组织的值

此存储桶策略包含三条语句。

  • 第一条语句允许 CloudTrail 对亚马逊 S3 存储桶调用 Amazon S3 GetBucketAcl 操作。

  • 第二条语句支持在跟踪仅从组织跟踪更改为该账户的跟踪时进行日志记录。

  • 第三条语句支持对组织跟踪进行日志记录。

示例策略包括 Simple Storage Service(Amazon S3)存储桶策略的 aws:SourceArn 条件密钥。IAM 全局条件密钥aws:SourceArn有助于确保仅针对一个或多个特定的跟踪 CloudTrail 写入 S3 存储桶。在企业跟踪记录中,aws:SourceArn 的值必须是由管理账户拥有并使用管理账户 ID 的跟踪记录 ARN。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::myOrganizationBucket", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/managementAccountID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } }, { "Sid": "AWSCloudTrailOrganizationWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myOrganizationBucket/AWSLogs/o-organizationID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region:managementAccountID:trail/trailName" } } } ] }

此示例策略不允许来自成员账户的任何用户访问为组织创建的日志文件。默认情况下,组织日志文件只能由管理账户访问。有关如何允许成员账户中的 IAM 用户对 Simple Storage Service(Amazon S3)存储桶进行读取访问的信息,请参阅 在 Amazon 账户之间共享 CloudTrail 日志文件

在中 CloudTrail 作为可信服务启用 Amazon Organizations

在创建组织跟踪之前,必须先启用 Organizations 中的所有功能。有关更多信息,请参阅启用组织中的所有功能,或使用管理账户中具有足够权限的配置文件运行以下命令:

aws organizations enable-all-features

启用所有功能后,必须将 Organizations 配置 CloudTrail 为可信服务。

要在 Amazon Organizations 和之间创建可信服务关系 CloudTrail,请打开终端或命令行并使用管理账户中的配置文件。运行 aws organizations enable-aws-service-access 命令,如下例所示。

aws organizations enable-aws-service-access --service-principal cloudtrail.amazonaws.com

使用 create-trail

创建应用于所有区域的组织跟踪

要创建应用于所有区域的组织跟踪,请添加 --is-organization-trail--is-multi-region-trail 选项。

注意

使用创建组织跟踪时 Amazon CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 Amazon CLI 配置文件。

以下示例中创建的组织跟踪将所有区域的日志传送到名为 my-bucket 的现有存储桶:

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket --is-organization-trail --is-multi-region-trail

要确认跟踪是否存在于所有区域中,输出中的 IsOrganizationTrailIsMultiRegionTrail 参数均应设置为 true

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "my-bucket" }
注意

运行 start-logging 命令可以为您的跟踪启动日志记录操作。有关更多信息,请参阅 停止和启动跟踪的日志记录

将组织跟踪创建为单区域跟踪

以下命令创建一个仅在单个区域跟踪中记录事件的组织跟踪 Amazon Web Services 区域,也称为单区域跟踪。记录事件的 Amazon 区域是在的配置文件中指定的区域 Amazon CLI。

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket --is-organization-trail

有关更多信息,请参阅 命名要求

示例输出:

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": true, "S3BucketName": "my-bucket" }

默认情况下,create-trail 命令会创建一个不启用日志文件验证的单区域跟踪。

注意

运行 start-logging 命令可以为您的跟踪启动日志记录操作。

运行 update-trail 以更新组织跟踪

您可以运行 update-trail 命令更改组织跟踪的配置设置,或将单个 Amazon 账户的现有跟踪应用于整个组织。请记住,您只能从在其中创建跟踪的区域运行 update-trail 命令。

注意

如果您使用 Amazon CLI 或其中一个 Amazon 软件开发工具包来更新跟踪,请确保跟踪的存储桶策略是 up-to-date。有关更多信息,请参阅 使用为组织创建跟踪 Amazon Command Line Interface

使用更新组织跟踪时 Amazon CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 Amazon CLI 配置文件。如果要将组织跟踪转换为非组织跟踪,必须使用组织的管理账户,因为管理账户是所有组织资源的拥有者。

CloudTrail 即使资源验证失败,也会更新成员账户中的组织跟踪。验证失败的示例包括:

  • Amazon S3 存储桶策略不正确

  • 不正确的 Amazon SNS 主题政策

  • 无法传送到 CloudWatch 日志组

  • 使用 KMS 密钥加密的权限不足

拥有 CloudTrail 权限的成员账户可以通过在 CloudTrail 控制台上查看跟踪的详细信息页面或运行 Amazon CLI get-trail-status命令来查看组织跟踪的任何验证失败。

将现有跟踪应用于组织

要更改现有跟踪,使其也适用于组织而不是单个 Amazon 账户,请添加--is-organization-trail选项,如以下示例所示。

注意

使用管理账户将现有的非组织跟踪更改为组织跟踪。

aws cloudtrail update-trail --name my-trail --is-organization-trail

要确认跟踪现已应用于相应组织,输出中的 IsOrganizationTrail 参数的值应为 true

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "my-bucket" }

在前面的示例中,已将跟踪配置为应用于所有区域 ("IsMultiRegionTrail": true)。仅应用于单区域的跟踪将在输出中显示 "IsMultiRegionTrail": false

将应用于一个区域的组织跟踪转换为应用于所有区域

要更改现有组织跟踪以使其应用于所有区域,请添加 --is-multi-region-trail 选项,如下例中所示。

aws cloudtrail update-trail --name my-trail --is-multi-region-trail

要确认跟踪现已应用于所有区域,输出中的 IsMultiRegionTrail 参数的值应为 true

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": true, "S3BucketName": "my-bucket" }