写点什么

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

评论

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

七天杀上GitHub榜首!Java并发编程深度解析实战,JUC底层原理揭秘

Geek_0c76c3

Java 数据库 开源 程序员 架构

Qt | 按钮控件的使用 QCheckBox

YOLO.

qt 10月月更 C++

SpringCloud版本升级后bootstrap.yml配置不生效

共饮一杯无

Java SpringCloud spring-boot 10月月更

拿到字节跳动offer后,又收到了阿里的面试邀请,二面迎来了P9"盘问"

Geek_0c76c3

Java 开源 程序员 架构 开发

Sentinel Go-毫秒级统计数据结构揭秘

柠檬汁Code(binbin0325)

数据结构 源码分析 限流 Sentine 10月月更

Surpass Day——Java static关键字、继承、方法覆盖

胖虎不秃头

Java 10月月更 se

LinkedList源码分析(一)

知识浅谈

linkedlist 10月月更

【一Go到底】第八天---用户输入

指剑

Go golang 10月月更

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

鳄鱼视界

直呼内行!阿里大佬离职带出内网专属“Redis设计应用实践”学习笔记

Geek_0c76c3

Java 数据库 开源 程序员 架构

文盘Rust -- struct 中的生命周期

京东科技开发者

redis rust 生命周期 Trait Trait Objects

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

西柚子

代码质量与安全 | 清洁代码(Clean Code)比您认为的更重要

龙智—DevSecOps解决方案

clean code 清洁代码

静态代码分析 | 数字驾驶舱时代,如何确保车载信息娱乐系统的网络安全?

龙智—DevSecOps解决方案

网络安全 车载信息娱乐系统 IVI

线下活动 | 龙智Atlassian ITSM 解决方案即将亮相2022全球运维大会上海站

龙智—DevSecOps解决方案

gops GOPS全球运维大会

要求必须使用强密码

源字节1号

.NET现代化应用开发 - CQRS&类目管理代码剖析

MASA技术团队

.net CQRS MASA Framewrok MASA

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?

关于 Angular view Query 的 id 选择器问题的单步调试

汪子熙

typescript 前端开发 angular web开发 10月月更

版本控制 | 一文了解VR内容创作的步骤与关键技术

龙智—DevSecOps解决方案

vr VR/AR

Surpass Day——Java 多态、final关键字、常量、package、import、访问控制权限修饰符

胖虎不秃头

Java 10月月更 se

议题征集|Flink Forward Asia 2022 正式启动

Apache Flink

大数据 flink 流计算 实时计算

Arduino ESP32-C3 入门初探

矜辰所致

Arduino ESP32-C3 10月月更 Ard

思特奇加入openGauss开源社区,共同推动数据库产业生态发展

数据库 开源社区

openGauss社区理事长江大勇:openGauss联合产业界创新,共建开源数据库根社区

开源数据库

openGauss开源2周年,破解数据库生态痛点

Qt | 实现网页历史记录和查找功能 QWebEngineView

YOLO.

qt 10月月更 C++

Surpass Day——Java this关键字

胖虎不秃头

Java 10月月更 se

数据库基础

说故事的五公子

MySQL 数据库 sql

即时通讯技术周刊(第1期):懒人网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯 IM

九鑫智能正式加入openGauss社区

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