与 AWS Secrets Manager 集成的 AWS 服务 - AWS Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

与 AWS Secrets Manager 集成的 AWS 服务

AWS Secrets Manager 可与其他 AWS 服务配合使用来提供应对您的业务挑战的更多解决方案。本主题介绍了使用 Secrets Manager 添加功能的服务或 Secrets Manager 用于执行任务的服务。

使用 AWS CloudFormation 自动创建您的密钥

Secrets Manager 支持 AWS CloudFormation 并使您能够从堆栈模板中定义和引用密钥。Secrets Manager 定义了几种 AWS CloudFormation 资源类型,这些类型允许您创建密钥并将它与服务或数据库(凭证存储在密钥中)关联。您可以在模板的其他部分中引用密钥中的元素,例如,在新数据库中定义主用户和密码时从密钥中检索用户名和密码。您可以创建基于资源的策略将它附加到密钥。您还可以通过在模板中定义一个 Lambda 函数并将该函数与新密钥关联作为其轮换 Lambda 函数来配置轮换。有关更多信息和综合性示例,请参阅在 AWS CloudFormation 中自动实施密钥创建

使用 AWS Config 监控您的密钥

AWS Secrets Manager 与 AWS Config 集成,可更轻松地跟踪 Secrets Manager 中的密钥更改。您可以使用两个附加托管 AWS Config 规则,定义密钥管理最佳实践的组织内部准则。此外,您还可以快速识别不符合您的安全规则的密钥,并从 Amazon SNS 接收有关您的密钥配置更改的通知。例如,您可以接收有关未配置轮换的密钥列表的 SNS 通知,这使您能够推行用于轮换密钥的安全最佳实践。

利用 AWS Config 聚合器功能时,您可以查看密钥列表,并验证整个组织中所有账户和区域间的一致性。这样,您可以从单个位置在整个组织中创建密钥管理最佳实践。

如需了解有关此功能的更多信息,请参阅使用 AWS Config 监控 Secrets Manager 密钥

使用 AWS Identity and Access Management (IAM) 保护密钥

Secrets Manager 使用 IAM 来保护密钥的访问权限。IAM 提供以下功能:

  • 身份验证 – 验证发出请求的个人的身份。Secrets Manager 使用通过密码、访问密钥和多重身份验证 (MFA) 令牌证明用户身份的登录过程。

  • 授权 – 确保仅批准的个人可以对 AWS 资源(例如密钥)执行操作。这样,您可以将特定密钥的写权限授予某个用户,而将不同密钥的只读权限授予其他用户。

有关使用 IAM 保护对密钥的访问的更多信息,请参阅本指南中的AWS Secrets Manager 的身份验证和访问控制。有关 IAM 的完整信息,请参阅 IAM 用户指南

使用 AWS CloudTrail 和 Amazon CloudWatch 监控密钥

您可以使用 CloudTrail 和 CloudWatch 监控与密钥相关的活动。CloudTrail 通过任何 AWS 服务捕获 AWS 资源的 API 活动,并将活动写入到 Amazon S3 存储桶中的日志文件。通过使用 CloudWatch,您可以创建规则以监控这些日志文件,并在发生相关活动时触发操作。例如,每次有人创建新密钥或成功密钥轮换时,可以通过文本消息提醒您。您还可以创建警报,以便在客户端尝试使用弃用版本而非当前版本的密钥时提醒您。这有助于进行故障排除。

有关更多信息,请参阅本指南中的 监控您的 AWS Secrets Manager 密钥的使用。有关 CloudWatch 的完整信息,请参阅 Amazon CloudWatch 用户指南。有关 CloudWatch Events 的完整信息,请参阅 Amazon CloudWatch Events 用户指南

使用 AWS KMS 对密钥加密

Secrets Manager 使用受信任的行业标准高级加密标准 (AES) 加密算法 (FIPS 197) 对密钥进行加密。Secrets Manager 还使用 AWS Key Management Service (AWS KMS) 提供的加密密钥以执行密钥值的信封加密。当您创建新版本密钥时,Secrets Manager 将使用指定的 AWS KMS 客户主密钥 (CMK) 生成新的数据密钥。数据密钥由 256 位对称 AES 密钥组成。Secrets Manager 接收数据密钥的明文和加密副本。Secrets Manager 使用明文数据密钥对密钥值进行加密,然后将加密的数据密钥存储在密钥版本的元数据中。在您以后向 Secrets Manager 发送请求以检索密钥值时,Secrets Manager 先从元数据中检索加密的数据密钥,然后请求 AWS KMS 使用关联的 CMK 解密数据密钥。AWS KMS 使用解密的数据密钥解密密钥值,从不以非加密状态存储密钥,并且在不再需要时立即从内存中删除密钥。

有关更多信息,请参阅 AWS Secrets ManagerAWS KMS 中的 如何使用 AWS Key Management Service Developer Guide

使用 Parameter Store API 检索密钥

AWS Systems Manager Parameter Store 提供安全的分层存储,用于配置数据管理和密钥管理。也可以将密码、数据库字符串和许可证代码等数据存储为参数值。不过,Parameter Store 不会为存储的密钥提供自动轮换服务。相反,Parameter Store 允许您在 Secrets Manager 中存储密钥,然后以 Parameter Store 参数形式引用该密钥。

使用 Secrets Manager 配置 Parameter Store 时,secret-id Parameter Store 需要在名称字符串之前使用正斜杠 (/)。

有关更多信息,请参阅 https://docs.amazonaws.cn/systems-manager/latest/userguide/integration-ps-secretsmanager.html 中的AWS Systems Manager 用户指南从 Parameter Store 参数中引用 AWS Secrets Manager 密钥

将 Secrets Manager 与 Amazon Elastic Container Service 集成

Amazon ECS 使您能够向容器中注入敏感数据,方法是将您的敏感数据存储在 Secrets Manager 密钥中,然后在容器定义中引用它们。存储在 Secrets Manager 密钥中的敏感数据可以作为环境变量或作为日志配置的一部分提供给容器。

有关集成的完整说明,请参阅指定敏感数据密钥

教程 使用密钥管理器密钥指定敏感数据

将 Secrets Manager 与 AWS Fargate 集成

AWS Fargate 是可与 Amazon ECS 结合使用的技术,使您在运行容器时无需管理 Amazon ECS 实例的服务器或集群。使用 AWS Fargate,您不必再预配置、配置或扩展虚拟机集群即可运行容器。这样一来,您就无需再选择服务器类型、确定扩展集群的时间和优化集群打包。

运行具有 Fargate 启动类型或 Fargate 容量提供程序的 Amazon Amazon ECS 任务和服务时,将应用程序打包到容器中,指定 CPU 和内存要求,定义联网和 IAM 策略,然后启动应用程序。每个 Fargate 任务都具有自己的隔离边界,不与其他任务共享底层内核、CPU 资源、内存资源或弹性网络接口。

您可以将 Fargate 接口配置为允许从 Secrets Manager 中检索密钥。有关更多信息,请参阅 Fargate 任务联网

将 Secrets Manager 与 AWS IoT Greengrass 集成

通过 AWS IoT Greengrass,您可以从 Greengrass 设备对服务和应用程序进行身份验证,而无需对密码、令牌或其他密钥进行硬编码。

您可以使用 AWS Secrets Manager 在云中安全地存储和管理密钥。AWS IoT Greengrass 将 Secrets Manager 扩展到 Greengrass Core 设备,这样您的连接器和 Lambda 函数可以使用本地密钥与服务和应用程序进行交互。例如,Twilio Notifications 使用本地存储的身份验证令牌。

要将密钥集成到 Greengrass 组中,您需要创建一个引用 Secrets Manager 密钥的组资源。此密钥资源使用关联 ARN 引用云密钥。要了解如何创建、管理和使用密钥资源,请参阅《AWS IoT 开发人员指南》中的使用密钥资源

要将密钥部署到 AWS IoT Greengrass Core,请参阅将密钥部署到 AWS IoT Greengrass Core

使用 Secrets Manager 管理 SageMaker 存储库凭证

SageMaker 是一项完全托管的机器学习服务。借助 SageMaker,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型,然后直接将模型部署到生产就绪托管环境中。它提供了一个集成的 Jupyter 编写 Notebook 实例,供您轻松访问数据源以便进行探索和分析,因此您无需管理服务器。此外,它还可以提供常见的机器学习算法,这些算法经过了优化,可以在分布式环境中高效处理非常大的数据。借助对自带算法和框架的原生支持,SageMaker 可以提供灵活并且适合具体工作流程的分布式训练选项。通过在 SageMaker 控制台中单击来启动模型,即可将模型部署到安全的、可扩展的环境。

您可以使用 Secrets Manager 管理私有存储库凭证。

有关更多信息,请参阅将 Git 存储库与 Amazon SageMaker 笔记本实例关联

使用 Secrets Manager 存储 AWS CodeBuild 注册表凭证

AWS CodeBuild 是一项在云中完全托管的构建服务。CodeBuild 可编译源代码、运行单元测试以及生成可供部署的构件。使用 CodeBuild,您无需预配置、管理和扩展自己的构建服务器。它提供了适用于常用编程语言的预先打包的构建环境以及 Apache Maven 和 Gradle 等构建工具。您还可以在 CodeBuild 中自定义构建环境以使用自己的构建工具。CodeBuild 会自动扩展以满足峰值构建请求。

您可以使用 Secrets Manager 存储私有注册表凭证。请参阅 CodeBuild 的私有注册表与 AWS Secrets Manager 示例

使用 Secrets Manager 存储 Amazon EMR 注册表凭证

Amazon EMR 是一个托管集群平台,可简化在 AWS 上运行大数据框架(如 Apache Hadoop 和 Apache Spark)以处理和分析海量数据的操作。借助这些框架和相关的开源项目 (如 Apache Hive 和 Apache Pig)。您可以处理用于分析目的的数据和商业智能工作负载。此外,您可以使用 Amazon EMR 转换大量数据并移出/移入到其他 AWS 数据存储和数据库中,例如 Amazon Simple Storage Service (Amazon S3) 和 Amazon DynamoDB。

您可以使用 Secrets Manager 存储基于 Git 的私有注册表凭证。请参阅将基于 Git 的存储库添加到 Amazon EMR

将Zelkova与 Secrets Manager 资源策略

Zelkova使用自动推理来分析政策以及政策的未来后果。这包括 身份和访问管理(IAM)政策, 元数据简单存储服务(S3) 政策, Secrets Manager 资源政策和其他资源政策。这些政策规定谁可以(或不能)对哪些资源执行操作。因为Zelkova使用自动推理,您不必再考虑您需要询问哪些关于政策的问题。如上文所述,Zelkova使用特殊数学方法自动得出您应该询问的有关政策的问题和答案,并增强您对安全配置的信心。

有关Zelkova的更多信息,请参阅 如何使用自动推理来帮助您大规模实现安全 安全博客上的。