View a markdown version of this page

在 “连接客户” 中进行静态加密 - Amazon Connect Customer

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

在 “连接客户” 中进行静态加密

归类为 PII 的联系人数据或代表 Connect Customer 存储的客户内容的数据,使用所拥有的加密密钥进行静 AWS KMS 态加密(即在存储、存储或保存到磁盘之前)。 AWS有关 AWS KMS 密钥的信息,请参阅什么是 AWS Key Management Service?AWS Key Management Service 开发者指南中。对非临时存储中的联系数据进行加密,以便从 KMS 密钥生成的数据加密密钥不会在 Amazon Connect 实例之间共享。

Amazon S3 服务器端加密用于加密对话录音(语音和聊天)。通话录音、屏幕录制和转录分两个阶段存储:

  • 在联系期间和之后但在交付之前中间保存在 Connect Customer 内部的录音。

  • 录音/录制传输到您的 Amazon S3 存储桶中。

存储在您 Amazon S3 存储桶中的录音/录制和聊天转录使用在创建实例时配置的 KMS 密钥进行保护。

有关 Connect Customer 中密钥管理的更多信息,请参阅“连接客户” 中的密钥管理

Agentic CX 设计师静态加密

当您在 Agentic CX Designer 中创建应用程序、对话流和其他资源时,所有数据都使用存储在中的 AWS 自有密钥加密密钥进行静态加密。 AWS Key Management Service

亚马逊静态 AppIntegrations 数据加密

当您使用客户管理的密钥创建 DataIntegration 加密密钥时,亚马逊通过向发送CreateGrant请求来代表您 AppIntegrations 创建补助金 AWS KMS。授予权限 AWS KMS 用于让亚马逊 AppIntegrations 访问您账户中的 KMS 密钥。

您可以随时撤消对该授权的访问权限,或移除亚马逊 AppIntegrations 对客户管理密钥的访问权限。如果您这样做,亚马逊将 AppIntegrations 无法访问由客户管理密钥加密的任何数据,这会影响依赖该数据的操作。

Amazon AppIntegrations 处理的外部应用程序数据使用您在配置期间提供的客户管理密钥在 S3 存储桶中静态加密。使用有时间限制且特定于用户账户的密钥对集成配置数据进行静态加密。

亚马逊 AppIntegrations 要求该授权方可使用客户管理的密钥进行以下内部操作:

  • 发送GenerateDataKeyRequest到 AWS KMS 以生成由您的客户管理密钥加密的数据密钥。

  • 向发送解密加密数据密钥的Decrypt请求,以便它们可用于加密您的数据。 AWS KMS

连接客户案例静态加密

Connect Customer Cases 存储的案例字段、案例备注、字段描述和模板中客户提供的所有数据均使用存储在 AWS Key Management Service (AWS KMS) 中的加密密钥进行静态加密。

Connect Customer Cases 服务拥有、管理、监控和轮换加密密钥(即 AWS 拥有的密钥),以满足高安全标准。案例事件流的有效负载会暂时(通常为几秒钟)存储在亚马逊中, EventBridge 然后才能通过客户账户中的默认总线提供。 EventBridge 还使用 AWS 拥有的密钥对整个静态有效载荷进行加密。

连接客户客户档案静态加密

存储在 Connect 客户档案中的所有用户数据都经过静态加密。Connect 客户档案静态加密使用存储在 AWS Key Management Service (AWS KMS) 中的加密密钥对所有静态数据进行加密,从而增强安全性。此功能减少保护敏感数据时涉及的操作负担和复杂性。利用静态加密,可以构建符合严格加密合规性和法规要求的安全敏感型应用程序。

组织政策、行业或政府法规以及合规性需求通常要求使用静态加密增强数据安全性。与集成了客户档案 AWS KMS 以启用其静态加密策略。有关更多信息,请参阅《 AWS Key Management Service 开发人员指南》中的 AWS Key Management Service 概念

创建新域时,您必须提供 KMS 密钥,服务将使用该密钥对传输中的数据和静态数据进行加密。客户托管密钥由您创建、拥有和管理。您可以完全控制客户管理的密钥(AWS KMS 收费)。

您可以在创建新的域或配置文件对象类型时指定加密密钥,或者使用 AWS 命令行接口 (AWS CLI) 或 Connect Customer Profiles 加密 API 在现有资源上切换加密密钥。当您选择客户管理的密钥时,Connect 客户配置文件会创建对客户管理密钥的授权,从而授予其访问客户管理密钥的权限。

AWS KMS 客户管理的密钥需要付费。有关定价的更多信息,请参阅 AWS KMS 定价

Connect 客户代理协助静态加密

存储在 Connect 客户代理辅助系统中的所有用户数据均使用存储在中的加密密钥进行静态加密 AWS Key Management Service。如果您有选择地提供客户管理的密钥,代理辅助会使用它来加密静态存储在代理辅助搜索索引之外的知识内容。代理辅助使用每位客户专用的搜索索引,并使用 AWS 拥有的密钥 存储在中对其进行静态加密。 AWS Key Management Service此外,您可以使用代理协助 API CloudTrail 对任何数据访问进行审计。

AWS KMS 使用您提供的密钥时需要付费。有关定价的更多信息,请参阅 AWS KMS 定价

连接客户语音 ID 静态加密

Connect 客户语音 ID 存储客户声纹,无法对这些声纹进行逆向工程以获取注册客户的语音或识别客户。存储在 Connect 客户语音 ID 中的所有用户数据都经过静态加密。创建新 Voice ID 域时,您必须提供客户托管密钥,此服务将使用该密钥对您的静态数据进行加密。客户托管密钥由您创建、拥有和管理。您对该密钥拥有完全控制权。

您可以使用命令行接口 (AWS CLI) 中的update-domain AWS 命令或语音 ID API 更新UpdateDomain语音 ID 域中的 KMS 密钥。

当您更改 KMS 密钥时,将触发一个异步过程,以使用新的 KMS 密钥重新加密旧数据。此过程完成后,您的域的所有数据都将使用新的 KMS 密钥进行加密,您可以安全地停用旧密钥。有关更多信息,请参阅 UpdateDomain

Voice ID 会创建对客户托管密钥的授权,以授予其对该密钥的访问权限。有关更多信息,请参阅 Connect 客户语音 ID 如何在中使用授权 AWS KMS

以下是使用客户托管密钥进行静态加密的数据的列表:

  • 声纹:当在系统中登记发言者和注册欺诈者时生成的声纹。

  • 发言者和欺诈者音频:用于登记发言者和注册欺诈者的音频数据。

  • CustomerSpeakerId:客户在注册语音ID SpeakerId 时提供的信息。

  • Customer-provided 元数据:这些包括自由格式的字符串 DomainDescription,例如Domain NameJob Name、等。

AWS KMS 客户管理的密钥需要付费。有关定价的更多信息,请参阅 AWS KMS 定价

Connect 客户语音 ID 如何在中使用授权 AWS KMS

Connect 客户语音 ID 需要获得授权才能使用您的客户管理密钥。创建域名时,Voice ID 通过向发送查看CreateGrant请求来代表您创建授权 AWS KMS。需要该授权才能将客户托管密钥用于以下内部操作:

  • 向发送DescribeKey请求 AWS KMS 以验证提供的对称客户管理密钥 ID 是否有效。

  • 向 KMS 密钥发送GenerateDataKey请求以创建用于加密对象的数据密钥。

  • 向发送解密请求 AWS KMS 以解密加密的数据密钥,以便它们可用于加密您的数据。

  • 在密钥更新 AWS KMS 时向发送ReEncrypt请求,使用新密钥对有限的数据集进行重新加密。

  • 使用 AWS KMS 密钥将文件存储在 S3 中以加密数据。

您可以随时撤销授予访问权限,或删除服务对客户托管密钥的访问权限。如果您这样做,Voice ID 将无法访问由客户托管密钥加密的任何数据,这样会影响依赖于该数据的所有操作,从而导致异步工作流中出现 AccessDeniedException 错误和故障。

适用于 Voice ID 的客户托管密钥政策

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

以下是一个密钥政策示例,该策略为用户提供了使用客户托管密钥调用所有 Voice ID API 所需的权限:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow key access to Amazon Connect VoiceID.", "Effect": "Allow", "Principal": { "AWS": "your_user_or_role_ARN" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "voiceid.us-east-1.amazonaws.com" ] } } } ] }

有关在策略中指定权限的信息,请参阅 AWS Key Management Service 开发人员指南中的 IAM 政策声明指定 KMS 密钥。

有关密钥访问疑难解答的信息,请参阅《 AWS Key Management Service 开发者指南》中的密钥访问疑难解答。

Voice ID 加密上下文

加密上下文是一组可选的键值对,其中包含有关数据的其他上下文信息。 AWS KMS 使用加密上下文作为其他经过身份验证的数据来支持经过身份验证的加密

在请求中包含加密上下文以加密数据时, AWS KMS 将加密上下文绑定到加密的数据。要解密数据,您必须在请求中包含相同的加密上下文。

语音 ID 在所有 AWS KMS 加密操作中使用相同的加密上下文,其中密钥是,值是aws:voiceid:domain:arn资源亚马逊资源名称 (ARN) 亚马逊资源名称 (ARN) Amazon 资源名称 (ARN)。

"encryptionContext": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" }

您还可以在审核记录和日志中使用加密上下文来确定客户托管密钥的使用情况。加密上下文还出现在 CloudTrail 或 Amazon Logs 生成的 CloudWatch 日志中。

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

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

Connect Customer Voice ID 在授权中使用加密上下文约束来控制对账户或地区中客户管理密钥的访问权限。授权约束要求授权允许的操作使用指定的加密上下文。

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

{ "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:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId"" } } }

监控 Voice ID 的加密密钥

当您将 AWS KMS 客户管理的密钥与语音 ID 一起使用时,您可以使用AWS CloudTrail Amazon L CloudWatch ogs 来跟踪语音 ID 发送的请求 AWS KMS。

以下示例是语音 ID 调用的CreateGrant操作的示例 AWS CloudTrail 事件,用于访问由客户管理的密钥加密的数据:

CreateGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA5STZEFPSZEOW7NP3X:SampleUser1", "arn": "arn:aws:sts::111122223333:assumed-role/SampleRole/SampleUser", "accountId": "111122223333", "accessKeyId": "AAAAAAA1111111EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA5STZEFPSZEOW7NP3X", "arn": "arn:aws:iam::111122223333:role/SampleRole", "accountId": "111122223333", "userName": "SampleUser" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-09-14T23:02:23Z", "mfaAuthenticated": "false" } }, "invokedBy": "voiceid.amazonaws.com" }, "eventTime": "2021-09-14T23:02:50Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "SampleIpAddress", "userAgent": "Example Desktop/1.0 (V1; OS)", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" } }, "retiringPrincipal": "voiceid.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/44444444-3333-2222-1111-EXAMPLE11111", "operations": [ "CreateGrant", "Decrypt", "DescribeKey", "GenerateDataKey", "GenerateDataKeyPair", "GenerateDataKeyPairWithoutPlaintext", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo" ], "granteePrincipal": "voiceid.amazonaws.com " }, "responseElements": { "grantId": "00000000000000000000000000000cce47be074a8c379ed39f22b155c6e86af82" }, "requestID": "ed0fe4ab-305b-4388-8adf-7e8e3a4e80fe", "eventID": "31d0d7c6-ce5b-4caf-901f-025bf71241f6", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-9999999999999" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "voiceid.amazonaws.com" }, "eventTime": "2021-10-13T15:12:39Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "voiceid.amazonaws.com", "userAgent": "voiceid.amazonaws.com", "requestParameters": { "keyId": "alias/sample-key-alias" }, "responseElements": null, "requestID": "ed0fe4ab-305b-4388-8adf-7e8e3a4e80fe", "eventID": "31d0d7c6-ce5b-4caf-901f-025bf71241f6", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-9999999999999" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "voiceid.amazonaws.com" }, "eventTime": "2021-10-12T23:59:34Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "voiceid.amazonaws.com", "userAgent": "voiceid.amazonaws.com", "requestParameters": { "encryptionContext": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/44444444-3333-2222-1111-EXAMPLE11111", "encryptionContext": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ed0fe4ab-305b-4388-8adf-7e8e3a4e80fe", "eventID": "31d0d7c6-ce5b-4caf-901f-025bf71241f6", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-9999999999999" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "35d58aa1-26b2-427a-908f-025bf71241f6", "eventCategory": "Management" }
GenerateDataKeyWithoutPlaintext
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "voiceid.amazonaws.com" }, "eventTime": "2021-10-13T00:26:41Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-west-2", "sourceIPAddress": "voiceid.amazonaws.com", "userAgent": "voiceid.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/44444444-3333-2222-1111-EXAMPLE11111", "encryptionContext": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "ed0fe4ab-305b-4388-8adf-7e8e3a4e80fe", "eventID": "31d0d7c6-ce5b-4caf-901f-025bf71241f6", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-9999999999999" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "35d58aa1-26b2-427a-908f-025bf71241f6", "eventCategory": "Management" }
ReEncrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "voiceid.amazonaws.com" }, "eventTime": "2021-10-13T00:59:05Z", "eventSource": "kms.amazonaws.com", "eventName": "ReEncrypt", "awsRegion": "us-west-2", "sourceIPAddress": "voiceid.amazonaws.com", "userAgent": "voiceid.amazonaws.com", "requestParameters": { "destinationEncryptionContext": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" }, "destinationKeyId": "arn:aws:kms:us-west-2:111122223333:key/44444444-3333-2222-1111-EXAMPLE11111", "sourceEncryptionAlgorithm": "SYMMETRIC_DEFAULT", "sourceAAD": "SampleSourceAAAD+JXBmH+ZJNM73BfHE/dwQALXp7Sf44VwvoJOrLj", "destinationAAD": "SampleDestinationAAAD+JXBmH+ZJNM73BfHE/dwQALXp7Sf44VwvoJOrLj", "sourceEncryptionContext": { "aws:voiceid:domain:arn": "arn:aws:voiceid:us-west-2:111122223333:domain/sampleDomainId" }, "destinationEncryptionAlgorithm": "SYMMETRIC_DEFAULT", "sourceKeyId": "arn:aws:kms:us-west-2:111122223333:key/55555555-3333-2222-1111-EXAMPLE22222" }, "responseElements": null, "requestID": "ed0fe4ab-305b-4388-8adf-7e8e3a4e80fe", "eventID": "31d0d7c6-ce5b-4caf-901f-025bf71241f6", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-9999999999999" }, { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/00000000-1111-2222-3333-7777777777777" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "35d58aa1-26b2-427a-908f-025bf71241f6", "eventCategory": "Management" }

出站活动静态加密

出站活动存储客户的电话号码和相关属性。此信息始终使用客户自主管理型密钥或 AWS 拥有的密钥进行静态加密。数据由 Connect Customer 实例 ID 分隔,并由实例特定密钥加密。

当您加入出站活动时,您可以提供自己的客户自主管理型密钥。

该服务使用客户自主管理型密钥对敏感数据进行静态加密。此密钥由您创建、拥有和完全管理,因此您可以完全控制其使用和安全性。

如果您不提供自己的客户管理密钥,则出站活动会使用特定于您的 Connect Customer 实例的 AWS 自有密钥对静态敏感数据进行加密。您无法查看、管理、使用或审核 AWS 拥有的密钥。但是,无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS 拥有的密钥

AWS KMS 客户管理的密钥需要付费。有关定价的更多信息,请参阅 AWS KMS 定价

出站广告活动如何在中使用补助金 AWS KMS

出站活动需要授权才能使用客户自主管理型密钥。当您使用 AWS 控制台或 StartInstanceOnboardingJob API 加入出站广告活动时,出站广告系列通过向发送CreateGrant请求来代表您创建补助金 AWS KMS。中的授予 AWS KMS 用于向 Connect Customer 出站活动提供服务相关角色访问您账户中的 KMS 密钥的权限。

出站活动需要授权才能使用客户自主管理型密钥,以执行以下内部操作:

  • 向发送DescribeKey请求 AWS KMS 以验证提供的对称客户管理密钥 ID 是否有效。

  • 向 AWS KMS 发送 GenerateDataKeyWithoutPlainText 请求,以生成由客户自主管理型密钥加密的数据密钥。

  • 向发送解密加密数据密钥的Decrypt请求,以便它们可用于加密您的数据。 AWS KMS

您可以随时撤销对授权的访问权限,也可以随时移除出站活动对客户自主管理型密钥的访问权限。如果您这样做,出站活动将无法访问由客户自主管理型密钥加密的任何数据,这会影响依赖于该数据的操作。

出站活动的客户自主管理型密钥策略

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

以下是密钥政策示例,它为用户提供呼出营销活动所需的权限 StartInstanceOnboardingJobPutDialRequestBatch以及使用客户管理密钥PutOutboundRequestBatch的 API:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow key access to Amazon Connect outbound campaigns.", "Effect": "Allow", "Principal": { "AWS": "your_user_or_role_ARN" }, "Action": [ "kms:Decrypt", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "connect-campaigns.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:accountId": "111122223333", "kms:EncryptionContext:aws:connect:instanceId": "InstanceID" } } }, { "Sid": "Allow direct access to key metadata to the account", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Describe*" ], "Resource": "*" } ] }

有关在策略中指定权限的信息,请参阅 AWS Key Management Service 开发人员指南中的 IAM 政策声明指定 KMS 密钥。

有关密钥访问疑难解答的信息,请参阅《 AWS Key Management Service 开发者指南》中的密钥访问疑难解答。

出站活动加密上下文

加密上下文是一组可选的键值对,其中包含有关数据的其他上下文信息。 AWS KMS 使用加密上下文作为其他经过身份验证的数据来支持经过身份验证的加密

在请求中包含加密上下文以加密数据时, AWS KMS 将加密上下文绑定到加密的数据。要解密数据,您必须在请求中包含相同的加密上下文。

出站活动在所有 AWS KMS 加密操作中使用相同的加密上下文,其中密钥为 aws:accountId 和 aws:connect:instanceId,而值为 AWS 账户 ID 和 Connect 实例 ID。

"encryptionContext": {    "aws:accountId": "111122223333",    "aws:connect:instanceId": "sample instance id" }

您还可以在审核记录和日志中使用加密上下文来确定客户托管密钥的使用情况。加密上下文还出现在 CloudTrail 或 Amazon Logs 生成的 CloudWatch 日志中。

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

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

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

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

{     "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:accountId": "111122223333",              "kms:EncryptionContext:aws:connect:instanceId": "sample instance id"           }      } }

监控出站活动的加密密钥

当您将 AWS KMS 客户管理密钥与出站活动资源一起使用时,您可以使用AWS CloudTrail亚马逊 CloudWatch 日志来跟踪亚马逊位置发送的请求 AWS KMS。

以下示例是 CreateGrant、和 Decrypt AWS CloudTrail 的事件 GenerateDataKeyWithoutPlainText DescribeKey,用于监控 Amazon Location 调用的 KMS 操作,以访问由您的客户管理的密钥加密的数据:

CreateGrant
{ "eventVersion": "1.09", "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", "arn": "arn:aws:iam::111122223333:role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-08-27T18:40:57Z", "mfaAuthenticated": "false" } }, "invokedBy": "connect-campaigns.amazonaws.com" }, "eventTime": "2024-08-27T18:46:29Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "connect-campaigns.amazonaws.com", "userAgent": "connect-campaigns.amazonaws.com", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:connect:instanceId": "1234abcd-12ab-34cd-56ef-123456SAMPLE", "aws:accountId": "111122223333" } }, "granteePrincipal": "arn:aws:iam::111122223333:role/aws-service-role/connect-campaigns.amazonaws.com/AWSServiceRoleForConnectCampaigns_EXAMPLE", "retiringPrincipal": "arn:aws:iam::111122223333:role/aws-service-role/connect-campaigns.amazonaws.com/AWSServiceRoleForConnectCampaigns_EXAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt", "Encrypt", "DescribeKey", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "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, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKeyWithoutPlainText
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:connect-campaigns-session", "arn": "arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForConnectCampaigns_EXAMPLE/connect-campaigns-session", "accountId": "111122223333", "accessKeyId": "AROAIGDTESTANDEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/aws-service-role/connect-campaigns.amazonaws.com/AWSServiceRoleForConnectCampaigns_EXAMPLE", "accountId": "111122223333", "userName": "AWSServiceRoleForConnectCampaigns_EXAMPLE" }, "attributes": { "creationDate": "2024-08-27T18:46:29Z", "mfaAuthenticated": "false" } }, "invokedBy": "connect-campaigns.amazonaws.com" }, "eventTime": "2024-08-27T18:46:29Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-west-2", "sourceIPAddress": "connect-campaigns.amazonaws.com", "userAgent": "connect-campaigns.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:connect:instanceId": "1234abcd-12ab-34cd-56ef-123456SAMPLE", "aws:accountId": "111122223333" }, "keyId": "arn:aws:kms:us-west-2:586277393662:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "keySpec": "AES_256" }, "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, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:connect-campaigns-session", "arn": "arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForConnectCampaigns_EXAMPLE/connect-campaigns-session", "accountId": "111122223333", "accessKeyId": "AROAIGDTESTANDEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/aws-service-role/connect-campaigns.amazonaws.com/AWSServiceRoleForConnectCampaigns_EXAMPLE", "accountId": "111122223333", "userName": "AWSServiceRoleForConnectCampaigns_EXAMPLE" }, "attributes": { "creationDate": "2024-08-27T18:46:29Z", "mfaAuthenticated": "false" } }, "invokedBy": "connect-campaigns.amazonaws.com" }, "eventTime": "2024-08-27T18:46:29Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "connect-campaigns.amazonaws.com", "userAgent": "connect-campaigns.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "grantTokens": [ "EL7BPAGG-KDm8661M1pl55WcQD_9ZgFwYXN-SAMPLE" ] }, "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, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE3", "arn": "arn:aws:iam::111122223333:role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-08-27T18:40:57Z", "mfaAuthenticated": "false" } }, "invokedBy": "connect-campaigns.amazonaws.com" }, "eventTime": "2024-08-27T19:09:02Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "connect-campaigns.amazonaws.com", "userAgent": "connect-campaigns.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:connect:instanceId": "1234abcd-12ab-34cd-56ef-123456SAMPLE", "aws:accountId": "111122223333" }, "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, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }

预测、容量规划和调度

当您创建预测、容量计划和计划时,所有数据均使用存储在中的 AWS 拥有的密钥 加密密钥进行静态加密 AWS Key Management Service。