

终止支持通知：2027 年 3 月 31 日， AWS 将终止对亚马逊 WorkMail的支持。2027 年 3 月 31 日之后，您将无法再访问亚马逊 WorkMail 控制台或亚马逊 WorkMail 资源。有关更多信息，请参阅 [Amazon WorkMail 终止支持](https://docs.aws.amazon.com/workmail/latest/adminguide/workmail-end-of-support.html)。

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

# 启用审计日志记录
<a name="audit-logging"></a>

您可以使用审计日志来捕获有关您的 Amazon WorkMail 组织使用情况的详细信息。审计日志可用于监控用户对邮箱的访问、审计是否存在可疑活动，以及调试访问控制和可用性提供商配置。

**注意**  
*AmazonWorkMailFullAccess*托管策略不包括管理日志传输所需的所有权限。如果您使用此策略进行管理 WorkMail，请确保用于配置日志传输的委托人（例如，代入的角色）也具有所有必需的权限。

亚马逊 WorkMail 支持审核日志的三个传送目的地：日 CloudWatch 志、亚马逊 S3 和亚马逊 Data Firehose。有关更多信息，请参阅 *[Amazon Logs 用户指南中的需要额外权限的 CloudWatch 日志记录](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)* [[V2]](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)。

除了[日志记录下列出的需要额外权限 [V2] 的权限](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)外，Amazon 还 WorkMail 需要额外的权限来配置日志传输：`workmail:AllowVendedLogDeliveryForResource`。

工作日志传输由三个元素组成：
+ *DeliverySource*，一个逻辑对象，表示发送日志的一个或多个资源。对于亚马逊来说 WorkMail，这是亚马逊 WorkMail组织。
+ *DeliveryDestination*，这是代表实际传输目标的逻辑对象。
+ *Delivery*，这将传输源连接到传输目标。

要在 Amazon WorkMail 和目标之间配置日志传输，您可以执行以下操作：
+ 使用创建交付来源[PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html)。
+ 使用创建配送目的地[PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html)。
+ 如果您要跨账户传送日志，则必须在目标账户[PutDeliveryDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html)中使用向目标分配 IAM 策略。此策略授权创建从账户 A 中的传输源到账户 B 中的传输目标的传输。
+ 通过使用将一个配送来源和一个配送目的地精确配对来创建配送[CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html)。

以下各节详细介绍在您登录以便将日志传输设置为每种类型的目标时必须具备的权限。这些权限可以授予您登录时使用的 IAM 角色。

**重要**  
删除日志生成资源后，您负责移除日志传输资源。

要在删除日志生成资源后移除日志传输资源，请执行以下步骤。

1. 使用[DeleteDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDelivery.html)操作删除*配送*。

1. *DeliverySource*使用[DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html)操作删除。

1. 如果与您刚刚删除的*DeliveryDestination*DeliverySource**关联仅用于此特定用途 *DeliverySource*，则可以使用[DeleteDeliveryDestinations](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeDeliveryDestinations.html)操作将其删除。

## 使用 Amazon WorkMail 控制台配置审核日志
<a name="configuring-audit-logging"></a>

您可以在 Amazon WorkMail 控制台中配置审核日志：

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

   如有必要，请更改 AWS 区域。在控制台窗口顶部的栏中，打开**选择区域**列表，然后选择一个区域。有关更多信息，请参阅《Amazon Web Services 一般参考》中的[区域和端点](https://docs.aws.amazon.com/general/latest/gr/index.html?rande.html)。**

1. 在导航窗格中，选择**组织**，然后选择贵组织的名称。

1. 选择**日志记录设置**。

1. 选择**审计日志设置**选项卡。

1. 使用相应的小组件为所需的日志类型配置传输。

1. 选择**保存**。

## 发送到日志的 CloudWatch 日志
<a name="workmail-CloudWatchLogs"></a>

**用户权限**

要启用向日志发送 CloudWatch 日志，您必须使用以下权限登录。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:delivery:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-source:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeLogGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyCWL",
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:*"
            ]
        },
        {
            "Sid": "AllowLogDeliveryForWorkMail",
            "Effect": "Allow",
            "Action": [
                "workmail:AllowVendedLogDeliveryForResource"
            ],
            "Resource": [
                "arn:aws:workmail:us-east-1:111122223333:organization/organization-id"
            ]
        }
    ]
}
```

------

**日志组和资源策略**

接收日志的日志组必须具有包含特定权限的资源策略。如果日志组当前没有资源策略，并且设置日志记录的用户拥有该日志组的`logs:PutResourcePolicy``logs:DescribeResourcePolicies`、和`logs:DescribeLogGroups`权限，则在您开始将日志发送到 CloudWatch Logs 时， AWS 会自动为其创建以下策略。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite20150319",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "delivery.logs.amazonaws.com"
                ]
            },
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:my-log-group:log-stream:*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [
                        "111122223333"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:111122223333:*"
                    ]
                }
            }
        }
    ]
}
```

------

**日志组资源策略大小限制注意事项**

这些服务必须在资源策略中列出要向其发送日志的每个日志组。 CloudWatch 日志资源策略限制在 5,120 个字符以内。将日志发送到大量日志组的服务可能会遇到此限制。

为了缓解这种情况， CloudWatch 日志会监控发送日志的服务所使用的资源策略的大小。当它检测到策略接近 5,120 个字符的大小限制时， CloudWatch Logs 会自动`/aws/vendedlogs/*`在该服务的资源策略中启用。之后，您可以开始将名称以 `/aws/vendedlogs/` 开头的日志组作为这些服务所发送的日志的目标。

## 发送到 Amazon S3 的日志
<a name="workmail-logs-infrastructure-V2-S3"></a>

**用户权限**

要启用向 Amazon S3 发送日志，您必须使用以下权限登录。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:delivery:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-source:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeLogGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyS3",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        },
        {
            "Sid": "AllowLogDeliveryForWorkMail",
            "Effect": "Allow",
            "Action": [
                "workmail:AllowVendedLogDeliveryForResource"
            ],
            "Resource": [
                "arn:aws:workmail:us-east-1:111122223333:organization/organization-id"
            ]
        }
    ]
}
```

------

接收日志的 S3 存储桶必须具有包含特定权限的资源策略。如果存储桶当前没有资源策略，而设置日志记录的用户对存储桶具有 `S3:GetBucketPolicy` 和 `S3:PutBucketPolicy` 权限，那么当您开始将日志发送到 Amazon S3 时， AWS 会自动为其创建以下策略。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::my-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [
                        "123456789012"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:111122223333:delivery-source:*"
                    ]
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::my-bucket/AWSLogs/111122223333/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": [
                        "123456789012"
                    ]
                },
                "ArnLike": {
                    "aws:SourceArn": [
                        "arn:aws:logs:us-east-1:111122223333:delivery-source:*"
                    ]
                }
            }
        }
    ]
}
```

------

在之前的策略中`aws:SourceAccount`，为指定要将日志传输到此存储桶的账户 IDs 列表。对于`aws:SourceArn`，在表单中指定生成日志的资源列表`arn:aws:logs:source-region:source-account-id:*`。 ARNs 

如果存储桶具有资源策略，但该策略不包含上一个策略中所示的语句，并且设置日志记录的用户对存储桶具有 `S3:GetBucketPolicy` 和 `S3:PutBucketPolicy` 权限，则该语句将附加到存储桶的资源策略中。

**注意**  
在某些情况下， AWS CloudTrail 如果未授予`s3:ListBucket`权限，则可能会在中看到`AccessDenied`错误`delivery.logs.amazonaws.com`。为避免 CloudTrail日志中出现这些错误，您必须授予`s3:ListBucket`权限`delivery.logs.amazonaws.com`。还必须包含与在前面的存储桶策略中设置的 `s3:GetBucketAcl` 权限一起显示的 `Condition` 参数。为简化这一过程，可以直接将 `AWSLogDeliveryAclCheck` 更新为 `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`，而不是创建一个新的 `Statement`。

### Amazon S3 存储桶服务器端加密
<a name="workmail-logs-SSE-KMS-S3-V2"></a>

您可以通过使用 Amazon S3 托管密钥启用服务器端加密 (SSE-S3) 或使用存储在 SSE-KMS 中的密钥启用服务器端加密 (SSE-KMS) 来保护 Amazon S3 存储桶中的 AWS Key Management Service 数据。 AWS KMS 有关更多信息，请参阅[使用服务器端加密保护数据](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

如果选择 SSE-S3，则不需要额外的配置。Amazon S3 处理加密密钥。

**警告**  
如果您选择 SSE-KMS，则必须使用客户托管密钥，因为这种 AWS 托管式密钥 情况不支持使用。如果您使用 AWS 托管密钥设置加密，则日志将以不可读的格式传送。

当您使用客户托管 AWS KMS 密钥时，您可以在启用存储桶加密时指定客户托管密钥的 Amazon 资源名称 (ARN)。将以下内容添加到客户自主管理型密钥的密钥策略（不是 S3 存储桶的存储桶策略）中，以便日志传输账户可以写入 S3 存储桶。

如果选择 SSE-KMS，则必须使用客户自主管理型密钥，因为此场景不支持使用 AWS 托管式密钥。当您使用客户托管 AWS KMS 密钥时，您可以在启用存储桶加密时指定客户托管密钥的 Amazon 资源名称 (ARN)。将以下内容添加到客户自主管理型密钥的密钥策略（不是 S3 存储桶的存储桶策略）中，以便日志传输账户可以写入 S3 存储桶。

```
{
    "Sid":"Allow Logs Delivery to use the key",
    "Effect":"Allow",
    "Principal":{
        "Service":[
            "delivery.logs.amazonaws.com"
        ]
    },
    "Action":[
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource":"*",
    "Condition":{
        "StringEquals":{
            "aws:SourceAccount":[
                "account-id"
            ]
        },
        "ArnLike":{
            "aws:SourceArn":[
                "arn:aws:logs:region:account-id:delivery-source:*"
            ]
        }
    }
}
```

对于`aws:SourceAccount`，请指定要将日志传送到此存储桶的账户 IDs 列表。对于`aws:SourceArn`，在表单中指定生成日志的资源列表`arn:aws:logs:source-region:source-account-id:*`。 ARNs 

## 日志发送至 Firehose
<a name="workmail-logs-infrastructure-V2-Firehose"></a>

**用户权限**

要启用向 Firehose 发送日志，您必须使用以下权限登录。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:delivery:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-source:*",
                "arn:aws:logs:us-east-1:111122223333:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeLogGroups"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyFH",
            "Effect": "Allow",
            "Action": [
                "firehose:TagDeliveryStream"
            ],
            "Resource": [
                "arn:aws:firehose:us-east-1:111122223333:deliverystream/*"
            ]
        },
        {
            "Sid": "CreateServiceLinkedRole",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery"
        },
        {
            "Sid": "AllowLogDeliveryForWorkMail",
            "Effect": "Allow",
            "Action": [
                "workmail:AllowVendedLogDeliveryForResource"
            ],
            "Resource": [
                "arn:aws:workmail:us-east-1:111122223333:organization/organization-id"
            ]
        }
    ]
}
```

------

**用于资源权限的 IAM 角色**

由于 Firehose 不使用资源策略， AWS 因此在设置要发送到 Firehose 的日志时会使用 IAM 角色。 AWS 创建名**AWSServiceRoleForLogDelivery**为的服务相关角色。此服务相关角色包括以下权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch",
                "firehose:ListTagsForDeliveryStream"
            ],
            "Resource": "arn:aws:firehose:us-east-1:111122223333:deliverystream/workmail-*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/LogDeliveryEnabled": "true"
                }
            },
            "Effect": "Allow"
        }
    ]
}
```

------

此服务相关角色授予标签设置为的所有 Firehose 传送流`LogDeliveryEnabled`的权限。`true` AWS 在设置日志记录时，将此标签提供给目标传送流。

此服务相关角色还具有允许 `delivery.logs.amazonaws.com` 服务委托人来代入所需服务相关角色的信任策略。该信任策略如下所示：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

## 控制台特定的权限
<a name="workmail-logs-infrastructure-V2-console"></a>

除了前几节中列出的权限外，如果您使用控制台而不是控制台来设置日志传输 APIs，则还需要以下权限：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:111122223333:log-group:*",
                "arn:aws:firehose:us-east-1:111122223333:deliverystream/*",
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "ListAccessForDeliveryDestinations",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "firehose:ListDeliveryStreams",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
    ]
}
```

------