写点什么

AWS Secrets Manager:安全地存储、分发和轮换凭证

  • 2019-10-25
  • 本文字数:1745 字

    阅读完需:约 6 分钟

AWS Secrets Manager:安全地存储、分发和轮换凭证

今天我们发布了 AWS Secrets Manager,它让您能够通过 API 或 AWS 命令行界面 (CLI) 轻松地存储和检索自己的密钥,并通过内置或定制 AWS Lambda 函数轮换自己的凭证。当您在本地使用单一机器和单一应用程序时,可以轻松地管理应用程序密钥,例如数据库凭证、密码或 API 密钥。随着您的发展,当规模扩大到拥有多种分布式微服务时,安全地存储、分发、轮换和占用密钥将成为一项艰巨的任务。以前,客户需要单独为密钥管理功能配备和维护额外的基础设施,这可能会产生成本并使系统不必要地复杂化。

AWS Secrets Manager


想像一下,我的应用程序接收 Twitter 发出的推文,并将其存储在 Amazon Aurora 数据库中。以前,我必须向数据库管理员请求用户名和密码,并将这些凭证嵌入到环境变量中,在竞争性生产环境中甚至需要将其嵌入到应用程序本身。我还需要让我们的社交媒体管理员创建 Twitter API 凭证并设计存储这些凭证的方法。这是一个完全手工的流程,涉及多人,每次我想要轮换这些凭证时都需要重新开始。借助 Secrets Manager,我的数据库管理员可在 Secrets Manager 中提供一次凭证,随后依赖 Secrets Manager 提供的 lambda 函数自动更新并轮换这些凭证。我的社交媒体管理员可将 Twitter API 密钥输入 Secrets Manager,随后我可以通过简单的 API 调用访问它们,我甚至还可以通过调用到 Twitter API 的定制 lambda 函数以编程方式轮换这些凭证。我的密钥通过我在账户中选择的 KMS 密钥进行加密,每位管理员都可以通过针对单个角色或用户的精细 IAM 策略明确地授予访问这些密钥的权限。


让我们来了解我如何使用 AWS Secrets Manager 控制台存储密钥。首先,我将单击“存储新密钥”进入新密钥向导。对于我的 RDS Aurora 实例,直接选择实例并提供初始用户名和密码即可连接到数据库。



接下来,我将填充快速描述以及用于访问我的密钥的名称。在此您可以使用自己希望的任何命名方案。



接下来,我们将配置轮换以使用 Secrets Manager 提供的 lambda 函数每 10 天轮换一次密码。



最后,我们将审核所有详细信息,并查验我们用于存储和检索密钥的示例代码。




最后,我可以在控制台中审核密钥。



现在,如果我需要访问这些密钥,只需调用 API 即可。


Python


import jsonimport boto3secrets = boto3.client("secretsmanager")rds = json(sm.get_secrets_value("prod/TwitterApp/Database")['SecretString'])print(rds)
复制代码


它将给我提供下列值:


Python


{'engine': 'mysql', 'host': 'twitterapp2.abcdefg.us-east-1.rds.amazonaws.com', 'password': '-)Kw>THISISAFAKEPASSWORD:lg{&sad+Canr', 'port': 3306, 'username': 'ranman'}
复制代码

不只是密码

AWS Secrets Manager 适用的对象不仅仅是密码。我可以存储 OAuth 凭证、二进制数据以及更多。让我们来了解如何存储我的 Twitter OAuth 应用程序密钥。



现在,我可以定义使用定制 AWS Lambda 函数轮换这些第三方 OAuth 凭证的功能,只要我们需要就可以可调用到 Twitter 轮换这些凭证。


定制轮换

AWS Secrets Manager 最出色的功能之一是用于凭证轮换的定制 AWS Lambda 函数。这允许您为凭证定义完全定制的工作流程。Secrets Manager 将可调用您的 lambda 函数,负载包括 Step ,指定您在轮换的哪一步; SecretId ,指定轮换用于哪种密钥;最重要的是 ClientRequestToken ,用于确保潜在密钥发生任何变化时的幂等性。


当您轮换密钥时,需要经过几个不同的步骤:


  1. createSecret

  2. setSecret

  3. testSecret

  4. finishSecret


这些步骤的优点是您可以为轮换的每个阶段添加自己需要的任何批准步骤。如需关于定制轮换的更多详细信息,请查阅相关文档。


现已推出


AWS Secrets Manager 如今已在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(加利福尼亚北部)、美国西部(俄勒冈)、亚太地区(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)和南美洲(圣保罗)推出。Secrets 定价为每月每个密钥 0.40 美元,每 10,000 次 API 调用 0.05 美元。我期待看到更多用户采用轮换凭证确保应用程序安全!


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-secrets-manager-store-distribute-and-rotate-credentials-securely/


2019-10-25 08:001233

评论

发布
暂无评论
发现更多内容

探索淘宝天猫API:解锁商品详情与关键词搜索的高效之道

代码忍者

API 接口 pinduoduo API

西双版纳有等保测评机构吗?在哪里?

行云管家

等保 等保测评

鸿蒙 Next 中 Text 组件用法总结

flfljh

Taro 鸿蒙技术内幕系列(三) - 多语言场景下的通用事件系统设计

京东科技开发者

AIGC系统中多个模型的切换调用方案探索

京东科技开发者

需求管理的主要内容包括哪些

易成研发中心

需求管理 需求管理工具

轻松搞定平稳运行,数据库平台 DBStack 帮助 DBA 运维不同基础设施上的各类数据库

Baidu AICLOUD

数据库

2024-11-27:字符串的分数。用go语言,给定一个字符串 s,我们可以定义其“分数”为相邻字符的 ASCII 码差值绝对值的总和。 请计算并返回字符串 s 的分数。 输入:s = “hello“

福大大架构师每日一题

福大大架构师每日一题

2024华为云开源开发者论坛项目抢鲜看|Kmesh: 监控指标和访问日志功能详解

华为云原生团队

云计算 开源 容器 云原生

简单聊聊过等保的五大益处

行云管家

等保 等保测评 过等保

新产品研发管理的需求来自哪些维度

易成研发中心

需求管理

TinyEngine低代码引擎2.0新特性介绍

OpenTiny社区

低代码 OpenTiny TinyEngine 前端开源

鸿蒙 next 封装日志工具类 LogUtil

flfljh

告别 Kafka,拥抱 Databend:构建高效低成本的用户行为分析体系

Databend

支付 APP 的测试管理实践与思考

优测云服务平台

持续测试 测试管理工具 测试用例管理平台 质量门禁

harmony_flutter 自定义toast

flfljh

HarmonyOS harmony

鸿蒙Flutter 常见问题总结

flfljh

揭秘淘宝天猫API接口:轻松获取商品详情与优惠券券后价

代码忍者

API 接口 pinduoduo API

安能物流 All in TiDB 背后的故事与成果

PingCAP

数据库 TiDB

AWS Secrets Manager:安全地存储、分发和轮换凭证_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章