Amazon DevOps Guru 中的数据保护 - Amazon DevOps Guru

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

Amazon DevOps Guru 中的数据保护

AWS 分担责任模式分适用于 Amazon DevOps Guru 中的数据保护。如本模型所述 AWS ,负责保护运行所有内容的全球基础架构 AWS Cloud。您负责维护对托管在此基础设施上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息,请参阅数据隐私常见问题有关欧洲数据保护的信息,请参阅 AWS 安全性博客 上的 AWS 责任共担模式和 GDPR 博客文章。

出于数据保护目的,我们建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 设置个人用户。这样,每个用户只获得履行其工作职责所需的权限。我们还建议您通过以下方式保护数据:

  • 对每个账户使用多重身份验证 (MFA)。

  • 使用 SSL/TLS 与资源通信。 AWS 我们要求使用 TLS 1.2,建议使用 TLS 1.3。

  • 使用设置 API 和用户活动日志 AWS CloudTrail。

  • 使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。

  • 使用高级托管安全服务(例如 Amazon Macie),它有助于发现和保护存储在 Amazon S3 中的敏感数据。

  • 如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准(FIPS)第 140-2 版》

我们强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括您 AWS 服务 使用控制台、API 或 AWS SDK 与 DevOps Guru 或其他人合作时。 AWS CLI在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供网址,强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

DevOpsGuru 中的数据加密

加密是 DevOps Guru 安全的重要组成部分。某些加密(例如,针对传输中的数据的加密)是默认提供的,无需您执行任何操作。其他加密(例如,针对静态数据的加密)可在创建项目或构建时进行配置。

  • 传输中的数据加密:客户与 Guru 之间以及 DevOps Guru 与其下游依赖关系之间 DevOps的所有通信均使用 TLS 进行保护,并使用签名版本 4 签名流程进行身份验证。所有 DevOps Guru 端点都使用由管理的 AWS Private Certificate Authority证书。有关更多信息,请参阅签名版本 4 签名流程什么是 ACM PCA

  • 静态数据加密:对于 DevOps Guru 分析的所有 AWS 资源,亚马逊 CloudWatch 指标和数据、资源 ID 和 AWS CloudTrail 事件均使用亚马逊 S3、亚马逊 DynamoDB 和 Amazon Kinesis 存储。如果使用 AWS CloudFormation 堆栈来定义所分析的资源,则还会收集堆栈数据。 DevOpsGuru 使用亚马逊 S3、DynamoDB 和 Kinesis 的数据保留策略。存储在 Kinesis 中的数据最多可以保留一年,具体取决于所设置的策略。存储在 Amazon S3 和 DB 中的数据将存储一年。

    存储的数据使用亚马逊 S3、DynamoDB 和 Kinesis 的 data-at-rest 加密功能进行加密。

    客户托管密钥: DevOpsGuru 支持加密客户内容和敏感元数据,例如使用客户托管密钥从日志中生成的 CloudWatch 日志异常。此功能为您提供了添加自我管理安全层的选项,以帮助您满足组织的合规性和监管要求。有关在 DevOps Guru 设置中启用客户托管密钥的信息,请参阅在 DevOps Guru 中更新加密设置

    由于您可以完全控制这层加密,因此可以执行以下任务:

    • 制定和维护关键策略

    • 制定和维护 IAM policy 和授权

    • 启用和禁用密钥策略

    • 轮换密钥加密材料

    • 添加标签

    • 创建密钥别名

    • 计划删除密钥

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

    注意

    DevOpsGuru 使用 AWS 自有密钥自动启用静态加密,从而免费保护敏感元数据。但是,使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息,请参阅定 AWS Key Management Service 价。

DevOpsGuru 如何使用补助金 AWS KMS

DevOpsGuru 需要获得授权才能使用您的客户托管密钥。

当您选择使用客户托管密钥启用加密时, DevOpsGuru 会通过向发送 CreateGrant 请求来 AWS KMS代表您创建授权。中的授权 AWS KMS 用于让 DevOps Guru 访问客户账户中的 AWS KMS 密钥。

DevOpsGuru 需要获得授权才能使用您的客户托管密钥进行以下内部操作:

  • 向发送 DescribeKey 请求, AWS KMS 以验证在创建跟踪器或地理围栏集合时输入的对称客户托管 KMS 密钥 ID 是否有效。

  • 向发送 GenerateDataKey 请求 AWS KMS 以生成由您的客户托管密钥加密的数据密钥。

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

您可以随时撤销授予访问权限,或删除服务对客户托管密钥的访问权限。如果您这样做, DevOpsGuru 将无法访问由客户托管密钥加密的任何数据,这会影响依赖该数据的操作。例如,如果您尝试获取 DevOps Guru 无法访问的加密日志异常信息,则该操作将返回错误 AccessDeniedException 。

在 DevOps Guru 中监控您的加密密钥

当您将 AWS KMS 客户托管密钥与 DevOps Guru 资源一起使用时,您可以使用 AWS CloudTrail 或 CloudWatch 日志来跟踪 DevOps Guru 发送到的请求。 AWS KMS

创建客户托管密钥

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

如要创建对称的客户托管密钥,请参阅创建对称加密 KMS 密钥

密钥策略

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

要将您的客户托管密钥与您的 DevOps Guru 资源一起使用,密钥策略中必须允许以下 API 操作:

  • kms:CreateGrant – 添加客户托管密钥授权。授予对指定 AWS KMS 密钥的控制访问权限,从而允许访问授予 DevOps Guru 所需的操作。有关使用授权的更多信息,请参阅 AWS Key Management Service 开发者指南。

这允许 DevOps Guru 执行以下操作:

  • 调 GenerateDataKey 用生成加密的数据密钥并将其存储,因为数据密钥不会立即用于加密。

  • 调用 Decrypt 使用存储的加密数据密钥访问加密数据。

  • 设置终止委托人以允许该服务。 RetireGrant

  • 使用 kms: DescribeKey 提供客户托管密钥的详细信息,以 DevOps便 Guru 验证密钥。

以下声明包括您可以为 DevOps Guru 添加的策略声明示例:

"Statement" : [ { "Sid" : "Allow access to principals authorized to use DevOps Guru", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "devops-guru.Region.amazonaws.com", "kms:CallerAccount" : "111122223333" } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" }, { "Sid" : "Allow read-only access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ]

流量隐私

您可以将 DevOps Guru 配置为使用接口 VPC 终端节点,从而提高资源分析和见解生成的安全性。为此,您无需互联网网关、NAT 设备或虚拟私有网关。尽管建议这样做 PrivateLink,但也无需进行配置。有关更多信息,请参阅 DevOpsGuru 和接口 VPC 终端节点 ()AWS PrivateLink。有关PrivateLink 和 VPC 终端节点的更多信息,请参阅AWS PrivateLink通过访问 AWS 服务 PrivateLink