选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Amazon SES 的静态数据加密

聚焦模式
Amazon SES 的静态数据加密 - Amazon Simple Email Service

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

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

默认情况下,Amazon SES 会加密所有静态数据。默认加密有助于降低保护数据的操作开销和复杂性。加密还支持创建符合严格加密合规性和法规要求的 Mail Manager 存档。

SES 提供以下加密选项:

  • AWS 自有密钥 — SES 默认使用这些密钥。您无法查看、管理或使用 AWS 自有密钥,也无法审核其使用情况。但是,无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的 AWS 自有密钥

  • 客户自主管理型密钥 – SES 支持使用由您自己创建、拥有和管理的对称客户自主管理型密钥。由于您可以完全控制此加密,因此可以执行以下任务:

    • 制定和维护关键策略

    • 建立和维护 IAM 策略和授权

    • 启用和禁用密钥策略

    • 轮换加密材料

    • 添加标签

    • 创建密钥别名

    • 安排密钥删除

    要使用您自己的密钥,请在创建 SES 资源时选择客户自主管理型密钥。

    有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的客户托管密钥

注意

SES 使用 AWS 自有密钥自动启用静态加密,不收取任何费用。

但是,使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息,请参阅 AWS Key Management Service 定价

创建客户托管密钥

您可以使用 AWS Management Console、或,创建对称的客户托管密钥。 AWS KMS APIs

创建对称的客户托管密钥

请按照《AWS Key Management Service 开发人员指南》创建对称加密 KMS 密钥的步骤操作。

注意

对于存档,您的密钥必须满足以下要求:

  • 密钥必须是对称的。

  • 密钥材料来源必须是 AWS_KMS

  • 密钥的用法必须是 ENCRYPT_DECRYPT

密钥策略

密钥策略控制对客户自主管理型密钥的访问。每个客户托管式密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的管理对客户托管密钥的访问

要将客户自主管理型密钥与 Mail Manager 存档一起使用,您的密钥策略必须允许以下 API 操作:

以下示例显示了典型的密钥策略:

{ "Sid": "Allow SES to encrypt/decrypt", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" },

有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的在策略中指定权限

有关问题排查的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的密钥访问问题排查

为 Mail Manager 存档指定客户自主管理型密钥

您可以指定客户管理的密钥作为使用 AWS 自有密钥的替代方法。创建存档时,您可以通过输入 KMS 密钥 ARN 来指定数据密钥,Mail Manager 存档会使用该密钥来加密存档中的所有客户数据。

  • KMS 密钥 ARN: AWS KMS 客户自主管理型密钥的密钥标识符。输入密钥 ID、密钥 ARN、别名名称或别名 ARN。

Amazon SES 加密上下文

加密上下文是一组可选的键值对,包含有关数据的其他上下文信息。

AWS KMS 使用加密上下文作为其他经过身份验证的数据来支持经过身份验证的加密。当您在加密数据的请求中包含加密上下文时,会将加密上下文 AWS KMS 绑定到加密数据。要解密数据,您必须在请求中包含相同的加密上下文。

注意

Amazon SES 不支持用于存档创建的加密上下文。相反,您可以使用 IAM 或 KMS 策略。有关策略示例,请参阅本节后面的存档创建策略

Amazon SES 加密上下文

SES 在所有 AWS KMS 加密操作中使用相同的加密上下文,其中密钥为aws:ses:arn,值为资源 Amazon 资源名称 (ARN)。

"encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }

使用加密上下文进行监控

使用对称的客户自主管理型密钥来加密您的 SES 资源时,您还可以使用审计记录和日志中的加密上下文,来识别客户自主管理型密钥的使用情况。加密上下文还会显示在AWS CloudTrail 或 Amazon Logs 生成的 CloudWatch 日志中。

使用加密上下文控制对客户托管式密钥的访问

您可以使用密钥策略和 IAM 策略中的加密上下文作为 conditions 来控制对您的对称客户托管密钥的访问。您还可以在授权中使用加密上下文约束。

SES 在授权中使用加密上下文约束来控制对您账户或区域中客户自主管理型密钥的访问。授权约束要求授权允许的操作使用指定的加密上下文。

以下是密钥政策声明示例,用于授予对特定加密上下文的客户托管密钥的访问权限。此策略语句中的条件要求授权具有指定加密上下文的加密上下文约束。

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" } } }

存档创建策略

以下策略示例演示了如何启用存档创建。这些策略适用于所有资产。

IAM 策略

{ "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ses:CreateArchive", "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "ses.us-east-1.amazonaws.com", "kms:CallerAccount": "012345678910" } } }

AWS KMS 策略

{ "Sid": "Allow SES to encrypt/decrypt", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" },

为 Amazon SES 监控您的加密密钥

当您将 AWS KMS 客户托管密钥与您的 Amazon SES 资源一起使用时,您可以使用AWS CloudTrailAmazon CloudWatch Logs 来跟踪 SES 发送到的请求 AWS KMS。

以下示例是GenerateDataKeyDecrypt、和DescribeKey监控 SES 为访问由您的客户托管密钥加密的数据而调用的 KMS 操作 AWS CloudTrail 的事件:

GenerateDataKey

当您为资源启用 AWS KMS 客户托管密钥时,SES 会创建一个唯一的表密钥。它向发送GenerateDataKey请求 AWS KMS ,指定资源的 AWS KMS客户托管密钥。

当您为 Mail Manager 存档资源启用 AWS KMS 客户托管密钥GenerateDataKey时,它将在加密静态存档数据时使用。

以下示例事件记录了 GenerateDataKey 操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "57f5dbee-16da-413e-979f-2c4c6663475e" }
Decrypt

当您访问加密的资源时,SES 会调用 Decrypt 操作,以使用存储的加密数据密钥来访问加密数据。

以下示例事件记录了 Decrypt 操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:10:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
DescribeKey

SES 使用 DescribeKey 操作来验证与您的资源关联的 AWS KMS 客户自主管理型密钥是否存在于账户和区域中。

以下示例事件记录了 DescribeKey 操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keyId": "00dd0db0-0000-0000-ac00-b0c000SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

当您为资源启用 AWS KMS 客户托管密钥时,SES 会创建一个唯一的表密钥。它向发送GenerateDataKey请求 AWS KMS ,指定资源的 AWS KMS客户托管密钥。

当您为 Mail Manager 存档资源启用 AWS KMS 客户托管密钥GenerateDataKey时,它将在加密静态存档数据时使用。

以下示例事件记录了 GenerateDataKey 操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "57f5dbee-16da-413e-979f-2c4c6663475e" }

了解更多

以下资源提供有关静态数据加密的更多信息。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。