写点什么

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:001055

评论

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

【算法岗必看系列】机器学习高频面试题

码农鬼仔

人工智能 机器学习算法 机器学习笔记 机器学习/深度学习 常见面试题

IPv6基础知识

穿过生命散发芬芳

ipv6 8月月更

什么是操作系统?

Jackpop

Java参数传递到底是按 值传递 还是 引用传递 ?

史俊锋在搬砖

Java 后端 编程基础 签约计划第三季

介绍一个python工程师必须掌握的 CentOS 命令,nohup

梦想橡皮擦

Python 爬虫 8月月更

层次分明井然有条,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang包管理机制(package)EP10

刘悦的技术博客

Go 教程 Go 语言 教程分享 编程语言‘

如何可视化编写和编排你的 K8s 任务

阿里巴巴云原生

阿里云 容器 云原生 可视化

一篇就够:高性能推理引擎理论与实践(TensorRT)

AIWeker

深度学习 推理引擎 签约计划第三季 TensorRT

Android进阶(十三)json应用

No Silver Bullet

json android 8月月更

开源一夏 | 使用 JavaScript 和 CSS 的简单字符计数器

海拥(haiyong.site)

开源 8月月更

IntelliJ IDEA 打开近期工作的项目的对话框的快捷键

HoneyMoose

云原生(十六)| Kubernetes篇之深入RC、RS、DaemonSet、StatefulSet

Lansonli

云原生 8月月更

前后端分离跨域问题

青柚1943

CORS 跨域

TDengine 3.0 重磅发布,首届开发者大会圆满结束

TDengine

数据库 tdengine 时序数据库

RocketMQ事务消息

急需上岸的小谢

8月月更

Redis面试总结

TimeFriends

8月月更

网络编程(二)TCP/IP

Albert Edison

网络编程 网络 TCP/IP 8月月更

小菜鸟河北联通上岗培训随笔

乌龟哥哥

8月月更

[极致用户体验] 我做的《联机五子棋》是如何追求极致用户体验的?(上)

HullQin

CSS JavaScript html 前端 8月月更

Android进阶(十四)Android Adapter详解

No Silver Bullet

android Adapter 8月月更

大佬,还记得设计模式的六大设计原则吗?

知识浅谈

设计原则 8月月更

RT-Thread记录(五、RT-Thread 临界区保护与FreeRTOS的比较)

矜辰所致

RT-Thread 8月月更 临界区保护

3 分钟创建 Serverless Job 定时获取新闻热搜!

阿里巴巴云原生

阿里云 Serverless 云原生

构建在Findora上的Forlend,具备隐私特性的借贷协议

鳄鱼视界

MyBatis(二、基础进阶)

mybatis springmvc 8月月更

头脑风暴:零钱兑换2

HelloWorld杰少

算法 LeetCode 8月月更

Kruise Rollout:灵活可插拔的渐进式发布框架

阿里巴巴云原生

阿里云 开源 云原生 OpenKruise

Java 中使用 public,private 和 protected 修饰的方法

HoneyMoose

用第一性原理根治数字化转型雾霾:以规则的确定性应对结果的不确定性

王和全

数字化转型 软件开发技术的第一性原理 签约计划第三季

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