本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
静态加密
默认情况下,Amazon Managed Grafana 会自动为您提供静态加密,并 AWS 使用自有的加密密钥来执行此操作。
-
AWS 自有密钥 — Amazon Managed Grafana 使用这些密钥自动加密您的工作空间数据。您无法查看、管理或使用 AWS 自有密钥,也无法审核其使用情况。但是,无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。有关更多信息,请参阅《AWS KMS 开发者指南》中的AWS自有密钥。
静态数据加密有助于减少保护敏感客户数据(例如个人身份信息)所需的运维开销和复杂性。其支持构建符合严格加密合规性和监管要求的安全应用程序。
您也可以选择在创建工作区时使用客户托管密钥:
-
客户托管密钥 — Amazon Managed Grafana 支持使用由您创建、拥有和管理的对称客户托管密钥来加密工作空间中的数据。由于您可以完全控制此加密,因此可以执行以下任务:
制定和维护关键策略
建立和维护 IAM 策略和授权
启用和禁用密钥策略
轮换加密材料
添加 标签
创建密钥别名
安排密钥删除
有关更多信息,请参阅《AWS KMS 开发人员指南》中的客户托管密钥和什么是 AWS KMS?
谨慎选择是使用客户托管密钥还是 AWS 自有密钥。使用客户托管密钥创建的工作区以后不能转换为使用 AWS 自有密钥(反之亦然)。
注意
Amazon Managed Grafana AWS 使用自有密钥自动启用静态加密,从而免费保护您的数据。
但是,使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息,请参阅 AWS KMS 定价
。
重要
如果您在密钥策略中禁用客户托管密钥或移除 Amazon Managed Grafana 访问权限,则您的工作空间将无法访问。工作区将保持
ACTIVE状态,但功能不可用。您有 7 天的时间通过重新启用密钥或恢复密钥策略来恢复访问权限。7 天后,工作空间将变为FAILED状态,只能删除。计划在中 AWS KMS 删除密钥至少需要等待 7 天才能删除密钥。密钥一旦被删除,就无法恢复,任何使用该密钥加密的工作空间都将永久失去对其数据的访问权限。
客户托管密钥加密仅在创建新工作空间时可用。现有工作空间无法转换为使用客户托管密钥。
创建工作空间后,您无法修改其客户托管密钥。
Amazon Managed Grafana 如何使用补助金 AWS KMS
亚马逊托管 Grafana 需要获得授权才能使用您的客户托管密钥。
当您创建使用客户托管密钥加密的亚马逊托管 Grafana 工作空间时,亚马逊托管 Grafana 会通过向发送请求来代表您创建授权。CreateGrant AWS KMS中的授权 AWS KMS 用于让 Amazon Managed Grafana 访问您账户中的 KMS 密钥,即使不是直接以您的名义调用(例如,存储控制面板数据或用户配置时)。
Amazon Managed Grafana 需要获得授权才能使用您的客户托管密钥进行以下内部操作:
向发送CreateGrant请求 AWS KMS 以根据需要创建其他授权。
向发送DescribeKey请求, AWS KMS 以验证创建工作空间时给出的对称客户托管 KMS 密钥是否有效。
在不同的加密环境之间移动时,向发送ReEncryptTo 和 ReEncryptFrom请求 AWS KMS 以重新加密数据。
将 E ncrypt 请求发送 AWS KMS 到,直接使用您的客户托管密钥对数据进行加密。
将 Decrypt 请求发送 AWS KMS 到以解密加密的数据密钥,以便它们可用于加密您的数据。
向发送GenerateDataKey请求 AWS KMS 以生成由您的客户托管密钥加密的数据密钥。
向发送GenerateDataKeyWithoutPlaintext请求 AWS KMS 以生成加密数据密钥,而无需返回纯文本版本。
向发送取消 AWS KMS 不再需要的补助金的RetireGrant请求。
亚马逊托管 Grafana 为密钥创建授权,允许亚马逊托管 Grafana 代表您使用密钥。 AWS KMS 您可以通过更改密钥策略、禁用密钥或撤消授权来删除对密钥的访问权限。在执行这些操作之前,您应该了解这些操作的后果。这可能会导致工作区中的数据丢失。
如果您以任何方式取消对任何授权的访问权限,Amazon Managed Grafana 将无法访问由客户托管密钥加密的任何数据,也无法存储发送到工作空间的新数据,这会影响依赖该数据的操作。工作区的新更新将无法访问,并且可能会永久丢失。
警告
如果您禁用密钥或在密钥策略中移除 Amazon Managed Grafana 访问权限,则无法再访问工作空间数据。工作区将保持
ACTIVE状态,但功能不可用。发送到工作区的新更新将无法访问,并且可能会永久丢失。您可以在 7 天内重新启用密钥或恢复 Amazon Managed Grafana 对密钥的访问权限,从而恢复对工作空间数据的访问权限并恢复接收新数据。7 天无法访问后,工作空间将变为FAILED状态。如果您计划在中删除密钥 AWS KMS,则密钥将在强制的 7 天等待期之后被删除。删除后,密钥将无法恢复,工作空间数据将永久无法访问。
如果您撤销 授权,则无法重新创建该授权,并且工作区中的数据将永久丢失。
Amazon Managed Grafana 通过亚马逊 RDS 创建额外的儿童补助金,因为它依赖于 RDS 进行数据存储。撤销这些与 RDS 相关的授权将产生与撤销 Grafana 主授予相同的永久数据丢失效果。
步骤 1:创建客户托管式密钥
您可以使用管理控制台创建对称客户托管密钥,或者。 AWS AWS KMS APIs密钥必须与 Amazon Managed Grafana 工作空间位于同一区域,并且必须是具有密钥用法的对称密钥。ENCRYPT_DECRYPT
创建对称的客户托管密钥
按照《AWS KMS 开发人员指南》中创建对称的客户托管密钥的步骤进行操作。
密钥策略
密钥策略控制对客户自主管理型密钥的访问。每个客户托管式密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《AWS KMS 开发人员指南》中的管理对客户托管密钥的访问。
要在亚马逊托管 Grafana 工作空间中使用您的客户托管密钥,密钥政策中必须允许以下 API 操作:
-
kms: CreateGrant — 向客户托管密钥添加授权。授予对指定 KMS 密钥的控制访问权限,从而允许访问授权 Amazon Managed Grafana 所需的操作。有关更多信息,请参阅 AWS KMS 开发人员指南中的使用授权。这允许亚马逊 Managed Grafana 执行以下操作:
调
GenerateDataKey用生成加密的数据密钥并将其存储。调用
Decrypt使用存储的加密数据密钥访问加密数据。
-
kms: DescribeKey — 提供客户托管密钥详细信息以允许 Amazon Managed Grafana 验证密钥。
以下是您可以为亚马逊托管 Grafana 添加的政策声明示例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow IAM Users and Roles to validate KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/root" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "grafana.<region>.amazonaws.com" ] } } }, { "Sid": "Allow IAM Users and Roles to create grant on KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "grafana.<region>.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "RetireGrant", "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo" ] } } } ] }
有关在策略中指定权限的更多信息,请参阅AWS 密钥管理服务开发人员指南。
有关密钥访问疑难解答的更多信息,请参阅AWS 密钥管理服务开发人员指南。
第 2 步:为亚马逊托管 Grafana 指定客户托管密钥
创建工作空间时,您可以通过输入 KMS 密钥 ARN 来指定客户托管密钥,Amazon Managed Grafana 使用该密钥来加密工作空间存储的数据。
使用 AWS 管理控制台
打开 Amazon Managed Grafana 控制台,其位于 https://console.aws.amazon.com/grafana/
。 选择创建工作区。
在 “加密” 部分中,选择客户管理的密钥。
在 KMS 密钥 ARN 字段中输入您的客户托管密钥的 ARN。
完成剩余的工作空间配置,然后选择创建工作空间。
使用 AWS CLI
在创建工作区时,您可以使用以下--kms-key-id参数指定客户托管密钥:
aws grafana create-workspace \ --workspace-name "my-encrypted-workspace" \ --workspace-description "Workspace with customer managed encryption" \ --account-access-type "CURRENT_ACCOUNT" \ --authentication-providers "AWS_SSO" \ --permission-type "SERVICE_MANAGED" \ --kms-key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
监控您的亚马逊托管 Grafana 的加密密钥
当您在亚马逊托管 Grafana 工作空间中使用 AWS KMS 客户托管密钥时,您可以使用 AWS CloudTrail 或 Amazon Logs 来跟踪 CloudWatch 亚马逊托管 Grafana 向其发送的请求。 AWS KMS
以下示例是CreateGrant、DescribeKeyGenerateDataKey、和监控 Amazon Manage Decrypt d Grafana 为访问由您的客户托管密钥加密的数据而调用的 KMS 操作 AWS CloudTrail 的事件:
CreateGrant
当您使用 AWS KMS 客户托管密钥加密您的工作空间时,Amazon Managed Grafana CreateGrant 会代表您发送访问您指定的 KMS 密钥的请求。Amazon Managed Grafana 创建的补助金特定于与客户托管密钥关联 AWS KMS 的资源。
以下示例事件记录了 CreateGrant 操作:
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE: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": "grafana.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "retiringPrincipal": "grafana.amazonaws.com", "operations": [ "CreateGrant", "DescribeKey", "ReEncryptTo", "ReEncryptFrom", "Encrypt", "Decrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "RetireGrant" ], "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "granteePrincipal": "grafana.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "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, "eventCategory": "Management", "recipientAccountId": "111122223333" }
DescribeKey
Amazon Managed Grafana 使用DescribeKey该操作来验证账户和 AWS KMS 区域中是否存在与您的工作空间关联的客户托管密钥。
以下示例事件记录了 DescribeKey 操作:
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE: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": "grafana.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" }
GenerateDataKey
Amazon Managed Grafana 使用GenerateDataKey该操作生成用于加密工作空间数据的数据密钥。
以下示例事件记录了 GenerateDataKey 操作:
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE: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": "grafana.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": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "keySpec": "AES_256" }, "responseElements": null, "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, "eventCategory": "Management", "recipientAccountId": "111122223333" }
Decrypt
Amazon Managed Grafana 使用Decrypt该操作来解密加密的数据密钥,以便这些密钥可用于解密工作空间数据。
以下示例事件记录了 Decrypt 操作:
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "TESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE-KEY-ID1", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "TESTANDEXAMPLE: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": "grafana.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:grafana:workspace-id": "g-1234567890abcdef0" } }, "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 基本概念的更多信息,请参阅《AWS KMS 开发人员指南》。
有关安全最佳实践的更多信息 AWS KMS,请参阅《AWS KMS 开发人员指南》。