本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用为组织创建跟踪 AWS CLI
可通过使用 AWS CLI创建组织跟踪。 AWS CLI 会定期更新,添加其他功能和命令。为了帮助确保成功,请确保在开始之前已安装或更新到最新 AWS CLI 版本。
注意
本节中的示例特定于创建和更新组织跟踪记录。有关使用管理跟踪 AWS CLI 的示例,请参阅使用管理跟踪 AWS CLI和使用配置 CloudWatch 日志监控 AWS CLI。使用创建或更新组织跟踪时 AWS CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 AWS CLI 配置文件。如果您要将组织跟踪转换为非组织跟踪,则必须使用组织的管理账户。
您必须具有足够的权限以配置用于组织跟踪的 Simple Storage Service(Amazon S3)存储桶。
创建或更新 Simple Storage Service(Amazon S3)存储桶以用于存储组织跟踪的日志文件
您必须指定一个 Simple Storage Service(Amazon S3)存储桶以接收组织跟踪的日志文件。此存储桶必须有 CloudTrail 允许将组织的日志文件放入存储桶的策略。
以下是名为的 Amazon S3 存储桶的示例策略 amzn-s3-demo-bucket
,该账户归该组织的管理账户所有。Replace(替换) amzn-s3-demo-bucket
,
region
, managementAccountID
,
trailName
,以及 o-organizationID
与贵组织的价值观相结合
此存储桶策略包含三条语句。
-
第一条语句允许 CloudTrail 对亚马逊 S3 存储桶调用 Amazon S3
GetBucketAcl
操作。 -
第二条语句支持在跟踪仅从组织跟踪更改为该账户的跟踪时进行日志记录。
-
第三条语句支持对组织跟踪进行日志记录。
示例策略包括 Simple Storage Service(Amazon S3)存储桶策略的 aws:SourceArn
条件密钥。IAM全局条件密钥aws:SourceArn
有助于确保仅针对一个或多个特定的跟踪 CloudTrail 写入 S3 存储桶。在组织跟踪中,的值aws:SourceArn
必须ARN是管理账户拥有的跟踪,并且使用管理账户 ID。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": { "Service": [ "cloudtrail.amazonaws.com" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
", "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:::amzn-s3-demo-bucket
/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:::amzn-s3-demo-bucket
/AWSLogs/o-organizationID
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceArn": "arn:aws:cloudtrail:region
:managementAccountID
:trail/trailName
" } } } ] }
此示例策略不允许来自成员账户的任何用户访问为组织创建的日志文件。默认情况下,组织日志文件只能由管理账户访问。有关如何允许成员账户中的IAM用户读取 Amazon S3 存储桶的信息,请参阅在 AWS 账户之间共享 CloudTrail 日志文件。
在中 CloudTrail 作为可信服务启用 AWS Organizations
在创建组织跟踪之前,必须先启用 Organizations 中的所有功能。有关更多信息,请参阅启用组织中的所有功能,或使用管理账户中具有足够权限的配置文件运行以下命令:
aws organizations enable-all-features
启用所有功能后,必须将 Organizations 配置 CloudTrail 为可信服务。
要在 AWS 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
选项。
注意
使用创建组织跟踪时 AWS CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 AWS CLI 配置文件。
以下示例中创建的组织跟踪将所有区域的日志传送到名为
的现有存储桶:amzn-s3-demo-bucket
aws cloudtrail create-trail --name
my-trail
--s3-bucket-nameamzn-s3-demo-bucket
--is-organization-trail --is-multi-region-trail
要确认跟踪是否存在于所有区域中,输出中的 IsOrganizationTrail
和 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": "amzn-s3-demo-bucket
" }
注意
运行 start-logging
命令可以为您的跟踪启动日志记录操作。有关更多信息,请参阅 停止和启动跟踪的日志记录。
将组织跟踪创建为单区域跟踪
以下命令创建一个仅在单个区域跟踪中记录事件的组织跟踪 AWS 区域,也称为单区域跟踪。记录事件的 AWS 区域是在的配置文件中指定的区域 AWS CLI。
aws cloudtrail create-trail --name
my-trail
--s3-bucket-nameamzn-s3-demo-bucket
--is-organization-trail
有关更多信息,请参阅 CloudTrail 资源、S3 存储桶和KMS密钥的命名要求。
示例输出:
{ "IncludeGlobalServiceEvents": true, "Name": "
my-trail
", "TrailARN": "arn:aws:cloudtrail:us-east-2
:123456789012
:trail/my-trail
", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": true, "S3BucketName": "amzn-s3-demo-bucket
" }
默认情况下,create-trail
命令会创建一个不启用日志文件验证的单区域跟踪。
注意
运行 start-logging
命令可以为您的跟踪启动日志记录操作。
运行 update-trail 以更新组织跟踪
您可以运行 update-trail
命令更改组织跟踪的配置设置,或将单个 AWS
账户的现有跟踪应用于整个组织。请记住,您只能从在其中创建跟踪的区域运行 update-trail
命令。
注意
如果您使用 AWS CLI 或其中一个 AWS SDKs来更新跟踪,请确保跟踪的存储桶策略是 up-to-date。有关更多信息,请参阅 使用为组织创建跟踪 AWS CLI。
使用更新组织跟踪时 AWS CLI,必须使用具有足够权限的管理账户或委托管理员账户中的 AWS CLI 配置文件。如果要将组织跟踪转换为非组织跟踪,必须使用组织的管理账户,因为管理账户是所有组织资源的拥有者。
CloudTrail 即使资源验证失败,也会更新成员账户中的组织跟踪。验证失败的示例包括:
-
Amazon S3 存储桶策略不正确
-
错误的 Amazon SNS 话题政策
-
无法传送到 CloudWatch 日志组
-
权限不足,无法使用密KMS钥进行加密
拥有 CloudTrail 权限的成员账户可以通过在 CloudTrail 控制台上查看跟踪的详细信息页面或运行 AWS CLI get-trail-status命令来查看组织跟踪的任何验证失败。
将现有跟踪应用于组织
要更改现有跟踪,使其也适用于组织而不是单个 AWS 账户,请添加--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": "amzn-s3-demo-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": "amzn-s3-demo-bucket
" }