View a markdown version of this page

静态加密 - Amazon Managed Grafana

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

静态加密

默认情况下,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 开发人员指南》中的管理对客户托管密钥的访问

要在亚马逊托管 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" ] } } } ] }

第 2 步:为亚马逊托管 Grafana 指定客户托管密钥

创建工作空间时,您可以通过输入 KMS 密钥 ARN 来指定客户托管密钥,Amazon Managed Grafana 使用该密钥来加密工作空间存储的数据。

使用 AWS 管理控制台
  1. 打开 Amazon Managed Grafana 控制台,其位于 https://console.aws.amazon.com/grafana/

  2. 选择创建工作区

  3. 在 “加密” 部分中,选择客户管理的密钥

  4. 在 KMS 密钥 ARN 字段中输入您的客户托管密钥的 ARN。

  5. 完成剩余的工作空间配置,然后选择创建工作空间

使用 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

以下示例是CreateGrantDescribeKeyGenerateDataKey、和监控 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" }

了解详情

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