本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用客户管理的密钥进行静态加密
下一代 Resilience Hub 默认提供加密,以保护敏感的静态客户数据 AWS 拥有的密钥。
-
默认情况下,下一代 Resilience Hub 使用这些密钥来自动加密敏感数据。您无法查看、管理 AWS 拥有的密钥、使用或审核其使用情况。不过,您不必采取任何措施或更改任何计划以保护对数据进行加密的密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk。
虽然您无法禁用此加密层或选择其他加密类型,但您可以通过在创建服务资源时指定客户托管密钥来添加第二层加密:
-
客户管理的密钥下一代 Resilience Hub 支持使用由您创建、拥有和管理的对称加密客户托管密钥。由于您可以完全控制这层加密,因此可以执行以下任务:
制定和维护关键策略
建立和维护 IAM 策略和授权
启用和禁用密钥策略
轮换加密材料
添加 标签
创建密钥别名
安排密钥删除
有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的客户托管密钥。
下表总结了下一代 Resilience Hub 如何加密敏感数据。
| 数据类型 | AWS 自有密钥加密 | 客户托管密钥加密(可选) |
|---|---|---|
服务、系统和弹性策略的描述。 |
已启用 | 已启用 |
评估发现姓名、描述、推理和评论。 |
已启用 | 已启用 |
与调查结果相关的建议描述和建议的更改。 |
已启用 | 已启用 |
服务函数的名称和描述。 |
已启用 | 已启用 |
与服务函数相关的假设文本。 |
已启用 | 已启用 |
用户旅程描述。 |
已启用 | 已启用 |
服务事件日志描述。 |
已启用 | 已启用 |
代理评估工作流程生成的中间数据,包括拓扑、资源配置和存储在 Amazon S3 中的工作数据。 |
已启用 | 已启用 |
资源标识符 资源名称、ARN、资源类型和区域。资源名称用于标识符和加密上下文,不得包含敏感数据。 |
已启用 | 不支持 |
注意
下一代 Resilience Hub 可自动启用静态加密 AWS 拥有的密钥 ,不收取任何费用。但是,使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息,请参阅 AWS Key Management Service
定价
重要
下一代弹性中心仅支持对称加密 KMS 密钥。您不能使用任何其他类型的 KMS 密钥来加密您的下一代 Resilience Hub 资源。有关确定 KMS 密钥是否为对称加密密钥的帮助,请参阅开发人员指南中的识别对称和非对称 KMS 密钥。AWS Key Management Service
下一代弹性中心如何使用补助金 AWS KMS
下一代 Resilience Hub 需要获得授权,才能在异步评估工作流程中使用您的客户托管密钥。
当您使用客户托管密钥创建服务时,下一代 Resilience Hub 会通过向发送CreateGrant请求来代表您创建授权 AWS KMS。该授权仅限于您的服务的加密上下文,并且仅允许以下操作:
-
Encrypt— 加密敏感字段,例如评估工作流程中生成的调查结果、建议和假设。 -
Decrypt— 在评估过程中解密先前加密的数据。 -
GenerateDataKey— 生成数据密钥以加密存储在 Amazon S3 中的中间评估数据。
删除服务后,该授权即告失效。您也可以随时撤消对授予的访问权限,或者删除该服务对客户托管密钥的访问权限。如果这样做,下一代 Resilience Hub 将无法访问由客户托管密钥加密的任何数据,这会影响依赖该数据的 API 操作和评估工作流程。
对于同步 API 操作(例如创建或更新服务),下一代 Resilience Hub 无需授予即可直接使用调用者对 KMS 密钥的权限。
创建客户托管密钥
您可以使用 AWS 管理控制台 或 AWS KMS API 创建对称加密客户托管密钥。
创建对称加密客户托管密钥
请按照《AWS Key Management Service 开发人员指南》中创建对称加密 KMS 密钥的步骤操作。
为下一代弹性中心指定客户管理的密钥
您可以在创建服务、系统或弹性策略时指定客户托管密钥。当您提供 KMS 密钥 ID 时,下一代 Resilience Hub 会使用该密钥来加密与该资源关联的所有敏感数据。
您可以使用以下任意密钥标识符来指定密钥:
密钥 ID(例如,
1234abcd-12ab-34cd-56ef-1234567890ab)密钥 ARN(例如,)
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab别名(例如,
alias/my-key)别名 ARN(例如,)
arn:aws:kms:us-west-2:111122223333:alias/my-key
要指定客户托管密钥,请在调用CreateServiceCreateSystem、或 CreatePolicy API 操作时使用kmsKeyId参数。
密钥策略
密钥策略控制对客户自主管理型密钥的访问。每个客户托管式密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的管理对客户托管密钥的访问。
以下密钥策略允许下一代 Resilience Hub 使用您的密钥。它使用加密上下文条件确保您的密钥只能用于您的特定资源,将每项权限的范围限定为下一代 Resilience Hub 所需的操作。用您的值替换CUSTOMER-ACCOUNT-IDCUSTOMER-ROLE、和REGION。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowResilienceHubDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::CUSTOMER-ACCOUNT-ID:role/CUSTOMER-ROLE" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "resiliencehub.REGION.amazonaws.com" } } }, { "Sid": "AllowResilienceHubEncryptDecryptForServices", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::CUSTOMER-ACCOUNT-ID:role/CUSTOMER-ROLE" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "resiliencehub.REGION.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:resiliencehub:service-arn": "arn:aws:resiliencehub:*:CUSTOMER-ACCOUNT-ID:service/*" } } }, { "Sid": "AllowResilienceHubEncryptDecryptForSystems", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::CUSTOMER-ACCOUNT-ID:role/CUSTOMER-ROLE" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "resiliencehub.REGION.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:resiliencehub:system-arn": "arn:aws:resiliencehub:*:CUSTOMER-ACCOUNT-ID:system/*" } } }, { "Sid": "AllowResilienceHubEncryptDecryptForPolicies", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::CUSTOMER-ACCOUNT-ID:role/CUSTOMER-ROLE" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "resiliencehub.REGION.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:resiliencehub:policy-arn": "arn:aws:resiliencehub:*:CUSTOMER-ACCOUNT-ID:policy/*" } } }, { "Sid": "AllowResilienceHubCreateGrantForAsyncWorkflows", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::CUSTOMER-ACCOUNT-ID:role/CUSTOMER-ROLE" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "resiliencehub.REGION.amazonaws.com", "kms:GrantConstraintType": "EncryptionContextSubset" }, "StringLike": { "kms:EncryptionContext:aws:resiliencehub:service-arn": "arn:aws:resiliencehub:*:CUSTOMER-ACCOUNT-ID:service/*" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "Decrypt", "GenerateDataKey" ] } } } ] }
策略声明提供以下权限:
-
AllowResilienceHubDescribeKey— 允许下一代 Resilience Hub 在服务创建期间指定密钥时验证您的密钥是否存在并且是对称加密密钥。
-
AllowResilienceHubEncryptDecryptForServices— 允许下一代 Resilience Hub 在同步 API 调用期间加密和解密服务级别数据(发现、建议、假设、服务功能、事件和评估数据)。根据加密上下文限定您的服务资源。
-
AllowResilienceHubEncryptDecryptForSystems— 允许下一代 Resilience Hub 在同步 API 调用期间加密和解密系统级数据(系统描述和用户旅程描述)。根据加密上下文限定您的系统资源。
-
AllowResilienceHubEncryptDecryptForPolicies— 允许下一代弹性中心在同步 API 调用期间加密和解密策略级数据(弹性策略描述)。根据加密上下文限定您的策略资源。
-
AllowResilienceHubCreateGrantForAsyncWorkflows— 允许下一代 Resilience Hub 为异步评估工作流程创建补助金。该授权仅限于所需的操作(加密、解密等 GenerateDataKey),并且必须包含绑定到您的服务 ARN 的加密上下文子集约束。
有关在策略中指定权限的更多信息,请参阅《AWS Key Management Service 开发人员指南》。
有关密钥访问故障排除的信更多息,请参阅《AWS Key Management Service 开发人员指南》。
下一代弹性中心加密上下文
加密上下文是一组可选的键值对,包含有关数据的其他上下文信息。
AWS KMS 使用加密上下文作为其他经过身份验证的数据来支持经过身份验证的加密。当您在加密数据的请求中包含加密上下文时,会将加密上下文 AWS KMS 绑定到加密数据。要解密数据,您必须在请求中包含相同的加密上下文。
下一代弹性中心加密上下文
下一代 Resilience Hub 根据资源类型使用以下加密上下文密钥:
| 加密上下文密钥 | Scope | 用于 |
|---|---|---|
aws:resiliencehub:service-arn |
服务 | 调查结果、建议、假设、服务功能、依赖关系、事件和评估数据 |
aws:resiliencehub:system-arn |
系统 | 系统描述和用户旅程描述 |
aws:resiliencehub:policy-arn |
Policy | 弹性策略描述 |
服务级别操作的加密上下文示例:
"encryptionContext": { "aws:resiliencehub:service-arn": "arn:aws:resiliencehub:us-west-2:111122223333:service/my-service:abc123" }
使用加密上下文进行监控
当您使用对称加密客户托管密钥来加密数据时,您可以使用审计记录和日志中的加密上下文来识别客户托管密钥的使用情况。加密上下文显示在生成的日志中AWS CloudTrail。
使用加密上下文来控制访问权限
您可以使用密钥策略和 IAM 策略中的加密上下文conditions来控制对称加密客户托管密钥的访问权限。您也可以在授予中使用加密上下文约束。
下一代 Resilience Hub 在授权中使用加密上下文子集约束,以确保异步工作流程只能加密和解密属于为其创建的特定服务的数据。
监控下一代弹性中心的加密密钥
当您将客户托管密钥与下一代 Resilience Hub 资源一起使用时,您可以使用AWS CloudTrail来跟踪下一代 Resilience Hub 发送到的请求 AWS KMS。
- CreateGrant
-
当您使用客户托管密钥创建服务时,下一代 Resilience Hub 会代表您发送
CreateGrant请求,要求允许异步评估工作流程使用您的密钥。该授权特定于该服务,并受加密上下文的限制。下一代 Resilience Hub 用于RetireGrant在您删除服务时移除授权。以下示例事件记录了
CreateGrant操作:{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLE:session-name", "arn": "arn:aws:sts::111122223333:assumed-role/YourRole/session-name", "accountId": "111122223333", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLE", "arn": "arn:aws:iam::111122223333:role/YourRole", "accountId": "111122223333", "userName": "YourRole" } }, "invokedBy": "resiliencehub.amazonaws.com" }, "eventTime": "2026-01-15T10:07:22Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "resiliencehub.amazonaws.com", "userAgent": "resiliencehub.amazonaws.com", "requestParameters": { "granteePrincipal": "resiliencehub.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "resiliencehub.amazonaws.com", "operations": [ "Decrypt", "GenerateDataKey", "Encrypt" ], "constraints": { "encryptionContextSubset": { "aws:resiliencehub:service-arn": "arn:aws:resiliencehub:us-west-2:111122223333:service/my-service:abc123" } } }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "56d4e434-abb6-4dd7-8558-ad38560d03b1", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" } - GenerateDataKey
-
当下一代 Resilience Hub 使用您的客户托管密钥加密数据时,它会发送生成数据密钥的
GenerateDataKey请求。这发生在同步 API 调用(例如创建带有描述的服务)和异步评估工作流程中。以下示例事件记录了
GenerateDataKey操作:{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "resiliencehub.amazonaws.com" }, "eventTime": "2026-01-15T11:18:36Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "resiliencehub.amazonaws.com", "userAgent": "resiliencehub.amazonaws.com", "requestParameters": { "numberOfBytes": 32, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:resiliencehub:service-arn": "arn:aws:resiliencehub:us-west-2:111122223333:service/my-service:abc123", "aws-crypto-public-key": "AwAnnorjRE+DFQYIuDKjGEvlXwro5Rdiegk8flmq7m0N..." } }, "responseElements": null, "requestID": "c5bedc9b-e6d6-45f8-b121-c9851a3d718a", "eventID": "e839a7ed-e4a9-32a3-b92a-2c7237a40c82", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" } - Decrypt
-
当您通过 API 操作检索资源或评估工作流程处理先前存储的数据时,下一代 Resilience Hub 会发送解密数据的
Decrypt请求。以下示例事件记录了
Decrypt操作:{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLE:session-name", "arn": "arn:aws:sts::111122223333:assumed-role/YourRole/session-name", "accountId": "111122223333", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLE", "arn": "arn:aws:iam::111122223333:role/YourRole", "accountId": "111122223333", "userName": "YourRole" } }, "invokedBy": "resiliencehub.amazonaws.com" }, "eventTime": "2026-01-15T11:27:49Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "resiliencehub.amazonaws.com", "userAgent": "resiliencehub.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:resiliencehub:service-arn": "arn:aws:resiliencehub:us-west-2:111122223333:service/my-service:abc123", "aws-crypto-public-key": "A/9P3BC05WjeQONZR1fBiEqWKEse/Yk1lMxd2VIh2ED5..." } }, "responseElements": null, "requestID": "30f8e9bc-4e0a-4359-8bc3-8278ef42c206", "eventID": "195ef070-c952-4c28-9883-29bca297a08c", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" } - DescribeKey
-
下一代 Resilience Hub 会发送
DescribeKey请求,以验证与您的服务关联的客户托管密钥是否存在于账户和区域中,并且是有效的对称加密密钥。以下示例事件记录了
DescribeKey操作:{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLE:session-name", "arn": "arn:aws:sts::111122223333:assumed-role/YourRole/session-name", "accountId": "111122223333", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLE", "arn": "arn:aws:iam::111122223333:role/YourRole", "accountId": "111122223333", "userName": "YourRole" } }, "invokedBy": "resiliencehub.amazonaws.com" }, "eventTime": "2026-01-15T10:07:13Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "resiliencehub.amazonaws.com", "userAgent": "resiliencehub.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "e427932c-448b-49aa-88e1-b311c27ba753", "eventID": "48c596a5-83c7-4603-b0cf-be0ff2548623", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
了解详情
以下资源提供有关静态数据加密的更多信息。
-
有关 AWS Key Management Service 基本概念的更多信息,请参阅 《AWS Key Management Service 开发人员指南》。
-
有关安全最佳实践的更多信息 AWS Key Management Service,请参阅《AWS Key Management Service 开发人员指南》。