

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

# 使用以下方法为组织创建跟踪 AWS CLI
<a name="cloudtrail-create-and-update-an-organizational-trail-by-using-the-aws-cli"></a>

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

**注意**  
本节中的示例特定于创建和更新组织跟踪记录。有关使用管理跟踪 AWS CLI 的示例，请参阅[使用管理跟踪 AWS CLI](cloudtrail-additional-cli-commands.md)和[使用配置 CloudWatch 日志监控 AWS CLI](send-cloudtrail-events-to-cloudwatch-logs.md#send-cloudtrail-events-to-cloudwatch-logs-cli)。使用创建或更新组织跟踪时 AWS CLI，必须使用具有足够权限的管理账户或委托管理员账户中的 AWS CLI 配置文件。如果您要将组织跟踪转换为非组织跟踪，则必须使用组织的管理账户。  
您必须具有足够的权限以配置用于组织跟踪的 Amazon S3 存储桶。

## 创建或更新 Amazon S3 存储桶以用于存储组织跟踪的日志文件
<a name="org-trail-bucket-policy"></a>

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

以下是名为的 Amazon S3 存储桶的策略示例*amzn-s3-demo-bucket*，该存储桶归该组织的管理账户所有。将*amzn-s3-demo-bucket*、*region*、*managementAccountID**trailName*、和*o-organizationID*替换为贵组织的值

此存储桶策略包含三条语句。
+ 第一条语句允许 CloudTrail 对亚马逊 S3 存储桶调用 Amazon S3 `GetBucketAcl` 操作。
+ 第二条语句支持在跟踪仅从组织跟踪更改为该账户的跟踪时进行日志记录。
+ 第三条语句支持对组织跟踪进行日志记录。

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

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

****  

```
{
    "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-sharing-logs.md)。

## 在中 CloudTrail 作为可信服务启用 AWS Organizations
<a name="cloudtrail-create-organization-trail-by-using-the-cli-enable-trusted-service"></a>

在创建组织跟踪之前，必须先启用 Organizations 中的所有功能。有关更多信息，请参阅[启用组织中的所有功能](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)，或使用管理账户中具有足够权限的配置文件运行以下命令：

```
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
<a name="cloudtrail-create-organization-trail-by-using-the-cli-create-trail"></a>

### 创建应用于所有区域的组织跟踪
<a name="cloudtrail-create-organization-trail-by-using-the-cli-create-trail-all"></a>

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

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

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

```
aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-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` 命令可以为您的跟踪启动日志记录操作。有关更多信息，请参阅 [停止和启动跟踪的日志记录](cloudtrail-additional-cli-commands.md#cloudtrail-start-stop-logging-cli-commands)。

### 将组织跟踪创建为单区域跟踪
<a name="cloudtrail-create-organization-trail-by-using-the-cli-single"></a>

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

```
aws cloudtrail create-trail --name my-trail --s3-bucket-name amzn-s3-demo-bucket --is-organization-trail
```

有关更多信息，请参阅 [CloudTrail 资源、S3 存储桶和 KMS 密钥的命名要求](cloudtrail-trail-naming-requirements.md)。

示例输出：

```
{
    "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** 以更新组织跟踪
<a name="cloudtrail-update-organization-trail-by-using-the-cli"></a>

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

**注意**  
如果您使用 AWS CLI 或其中一个 AWS SDKs 来更新跟踪，请确保跟踪的存储桶策略是 up-to-date。有关更多信息，请参阅 [使用以下方法为组织创建跟踪 AWS CLI](#cloudtrail-create-and-update-an-organizational-trail-by-using-the-aws-cli)。  
使用更新组织跟踪时 AWS CLI，必须使用具有足够权限的管理账户或委托管理员账户中的 AWS CLI 配置文件。如果要将组织跟踪转换为非组织跟踪，必须使用组织的管理账户，因为管理账户是所有组织资源的拥有者。  
CloudTrail 即使资源验证失败，也会更新成员账户中的组织跟踪。验证失败的示例包括：  
Amazon S3 存储桶策略不正确
Amazon SNS 主题策略不正确
无法传送到 CloudWatch 日志组
权限不足，无法使用 KMS 密钥进行加密
拥有 CloudTrail 权限的成员账户可以通过在 CloudTrail 控制台上查看跟踪的详细信息页面或运行 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/get-trail-status.html](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/get-trail-status.html)命令来查看组织跟踪的任何验证失败。

### 将现有跟踪应用于组织
<a name="cloudtrail-update-organization-trail-by-using-the-cli-apply-org"></a>

要更改现有跟踪，使其也适用于组织而不是单个 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`。

### 将单区域组织跟踪转换为多区域组织跟踪
<a name="cloudtrail-update-organization-trail-by-using-the-cli-single-to-all"></a>

要将现有的单区域组织跟踪转换为多区域组织跟踪，请添加 `--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"
}
```