AWS Secrets Manager:您需要了解的一切[2023]
aws secrets manager允许您安全地存储所有凭据、数据、密码和其他机密信息。
网络攻击在全球范围内迅速增加,旨在窃取机密信息和资金,并给组织造成巨大损失。
这就是为什么需要使用像secrets manager这样的强大服务来保护您的数据。
在本文中,我将讨论aws secrets manager以及它对您的益处。
让我们开始吧!
aws secrets manager是什么?
aws secrets manager是一种工具,帮助用户管理、轮转和检索他们的机密,比如密码、api密钥、数据库和应用凭据等,以及它们的整个生命周期。
这里的机密可以是关于您的组织的机密、有价值的信息,您希望安全存储的。它可以是像密码和用户名、oauth令牌、aws凭据、ssk密钥、加密密钥、证书和私钥等凭据。
aws secrets manager的主要目标是管理和保护您用于访问it资源、服务、应用程序和系统的数据。它在一个集中的位置存储和管理机密和数据,使合法用户能够在不需要复杂代码的情况下访问它们更容易。
aws secrets manager允许您在各种aws服务(如redshift、rds和documentdb)之间轮转机密。这使得所有密钥和数据库凭据能够在这些服务中不断更新。此外,您可以使用该工具的内置控制台、aws sdk或aws cli根据需要或按计划轮转机密。
此外,aws secrets manager提供更好的数据控制和强大的数据保护加密。它还允许您通过各种可用的集成来监视和审计受保护的信息。
它的主要用户是大型企业(从业务规模上来说)和软件公司(从行业类型上来说)。
aws secrets manager:特点
#1. 机密存储和管理
secrets manager不仅可以存储,还可以轻松管理您的机密。要在该平台上管理数据,您可以执行以下各种操作:
- 创建机密和数据库
- 修改机密
- 查找机密
- 删除不再需要的机密
- 恢复您丢失或删除的机密
- 将机密复制到另一个aws区域
- 将复制的机密提升为aws secrets manager中的给定独立机密
在创建amazon aurora、amazon rds、amazon documentdb或amazon redshift帐户后,您可以在该平台上存储凭据。您可以使用secrets manager控制台、aws sdk或aws cli来完成。
#2. 强大的安全性
aws secrets manager使用强大的加密来保护所有机密免受未经授权的用户访问。它使用aws密钥管理服务(kms)密钥加密您的机密。
secrets manager利用aws身份和访问管理(iam)允许用户安全地访问他们的密钥。它提供了高级访问控制和认证。
- 认证用于验证发出请求的用户的身份。身份验证是通过要求多因素身份验证(mfa)令牌、访问密钥和密码的登录过程进行的。
- 访问控制用于确保批准的用户只能对密钥执行特定操作。
除此之外,secrets manager还利用策略来定义哪些用户可以访问哪些资源以及可以在这些密钥或资源上执行哪些操作。它允许您在任何地方使用aws iam角色,并为在aws之外运行的服务器、应用程序、容器和其他工作负载获取临时凭证,以提供安全性。
此外,您还可以为您的工作负载启用与您为aws应用程序创建的iam角色和策略相同的iam角色和策略,以便在aws和本地设备(如应用程序服务器)上访问您的资源。
#3. 密钥轮换
aws secrets manager允许您按计划或按需轮换密钥,而无需中断或重新部署活动应用程序。
在这里,密钥轮换指的是定期更新组织的密钥的过程。因此,当您轮换给定的密钥时,您将需要更新密钥中的数据或凭据以及服务或数据库。此外,它还可以通过设置和自动化控制台和aws cli来自动化密钥轮换并节省时间。
要更新密钥,aws secret manager利用aws lambda函数并根据设置的计划调用它。为此,您需要设置一个特定的计划,以在一定周期后启用轮换,例如90天或30天。也可以通过创建cron表达式来完成。
此外,secrets manager可以通过使用标签对密钥的版本进行标记以进行轮换。它可以通过提供不同的参数来多次调用函数。
以下是如何轮换密钥的步骤:
- 创建密钥的新版本。它可以具有新的用户名和密码以及更多的密钥数据。
- 更改服务或数据库中的现有凭据。这样做将与新密钥版本中的新凭据匹配。根据您正在实施的轮换策略,将创建一个新用户,该用户具有与现有用户相同的访问权限。
- 通过允许新版本访问服务或数据库来测试新创建的密钥版本。根据您的应用程序所需的访问类型,您可以包括读取和写入访问。
- 通过将新版本从旧版本移动到新的密钥版本来执行轮换。保留旧版本并将其添加到先前的版本中,以避免丢失密钥。
#4. 密钥监控
由于违规和低效可能随时发生,所以在还有时间的时候,密钥的保管和采取必要的措施非常重要。aws secrets manager允许您使用监控工具监视您的数据,并在出现问题时立即报告。
您可以使用日志来调查任何意外的更改或使用情况。如果发现,您还可以回滚不需要的更改并恢复之前的版本。此外,您还可以配置自动检查以检测任何删除密钥或不适当使用密钥的尝试。
以下是您通过密钥监控可以获得的内容:
- 使用aws cloudtrail记录事件:aws cloudtrail可以记录来自控制台的对密钥旋转和删除的api调用作为事件。它将显示您在过去90天内记录的事件。您还可以设置cloudtrail将日志文件直接传递到多个aws区域和帐户的amazon s3存储桶。
- 使用cloudwatch进行监控:通过cloudwatch,您可以轻松监视您的密钥,让它收集和处理原始数据并转化为实时的可读指标。这些数据将保存15个月,以衡量您的服务或应用程序的性能。
- 使用eventbridge匹配事件:通过eventsbridge,可以匹配来自aws cloudtrail日志文件的事件。为此,配置寻找这些事件的规则,并发送新事件以执行操作。
- 监控计划删除的密钥:通过结合amazon cloudwatch日志、简单通知服务(sns)和cloudtrail,您可以设置警报,以便在有任何未经授权的尝试删除密钥时通知您。
收到警报后,您将有时间考虑是否真的要删除它或停止删除。或者,您可以允许用户使用新密钥并为他们提供访问权限。
#5. 集成
aws secrets manager与许多其他亚马逊和aws工具集成。这个列表包括alexa for business,aws app2container,app runner,amazon appflow,aws appconfig,amazon athena,amazon documentdb,aws datasync,aws codebuild,amazon elasticcache,amazon emr,aws elemental live,amazon quicksight,amazon redshift,aws migration hub,amazon rds等等。
为什么使用aws secrets manager
增强的安全性
secrets manager使您能够增强组织的安全性,因为您不需要在应用程序源代码中编写硬编码凭据。通过将凭据存储在secrets manager中,您可以避免由可以访问应用程序或其组件的人员造成的与安全相关的妥协。
灾难恢复
灾难可能随时降临,例如网络入侵。这将导致您丢失重要信息、密码和其他凭据和数据。或者,您可能会因意外删除而丢失数据。
使用这个工具,您可以将硬编码的凭据替换为在运行时调用aws secrets manager,以在需要时动态检索凭据。
降低风险
secrets manager允许您配置轮换计划,以便在到期时自动轮换密码。这样,您可以用短期密码替换长期密码,有助于减少安全妥协的风险。
此外,轮换凭据不需要应用程序更新或修改应用程序客户端,因为您不会将凭据与应用程序一起存储。
符合合规要求
鉴于安全和隐私风险不断增加,gdpr和hipaa等监管机构要求组织遵守其合规标准,以确保安全处理客户和业务数据。因此,只使用符合适用法规的安全和合规的应用程序或服务。
aws secrets manager可以监视您的凭据,检测可能危及数据的安全漏洞或风险,并提前采取行动。这在很大程度上保护了您的业务和客户信息,对于维护合规性非常重要。您还可以通过记录所有信息为审计做好准备。
此外,您可以利用aws config来评估您的凭据以及它们与组织的内部政策、法规和行业指南的合规性。它允许您定义凭据的合规要求和内部控制,并识别不符合要求的凭据。
更好的控制
通过细粒度的策略和访问控制,您将更好地控制您的凭据、系统和其他数据。aws iam将确保正确的人员拥有正确级别的访问权限,访问正确的资源。管理员可以创建或删除帐户,允许或限制用户访问,添加或删除成员,并根据需求和情况执行许多操作。
aws secrets manager:设置和使用方法
以下是您可以设置和使用aws secrets manager的方法:
- 输入所需的详细信息来设置您的aws帐户。
- 登录您的aws帐户
- 转到aws secrets manager控制台
- 找到“存储新的凭据”选项并单击它以创建和存储您的凭据。
如何创建和存储新的凭据
要在secrets manager中创建凭据,您需要来自secretsmanagerreadwrite托管策略的权限。创建凭据时,secret manager将生成一个cloudtrail日志条目。
按照以下步骤在aws secrets manager中存储您的访问令牌、api密钥和凭据:
1. 打开aws secrets manager控制台
2. 点击“存储新的凭据”。
您将找到“选择凭据类型”的页面。接下来,执行以下步骤:
- 选择“其他类型的秘密”作为您想要创建的秘密类型。
- 您将看到键/值对。在json中的键/值对中输入一个秘密。或者,选择纯文本选项卡,并以您选择的格式输入您的秘密。可以存储最多65536字节的秘密。
- 选择用于加密秘密值的aws kms密钥。通常,您可以选择
aws/secretsmanager
来使用托管密钥。这不会产生任何费用。 - 要访问来自不同aws帐户的秘密或使用您的kms密钥启用轮换或对此密钥实施策略,请选择“添加新密钥”或从给定列表中选择一个客户托管的密钥。然而,客户托管的密钥是需要付费的。
- 选择“下一步”
3. 在“配置秘密”页面中,
- 输入一个秘密名称和描述。名称必须有1-512个unicode字符。
- 您可以从“标签”部分为秘密添加标签。您还可以通过选择“编辑权限”来包含资源策略。
- 此外,还可以通过选择“复制秘密”将秘密复制到不同的aws区域。这些步骤是可选的。
- 选择“下一步”
4. 如果需要,您可以在“配置轮换”页面中启用自动轮换。此步骤也是可选的。选择下一步。
5. 从“审核”页面审查秘密的详细信息,并选择“存储”。然后您就完成了,秘密管理器将返回到秘密列表。您应该能够在那里看到新添加的秘密;如果没有,请刷新。
除了控制台,您还可以通过aws sdk和aws cli添加秘密。
aws secrets manager与aws参数存储
aws参数存储是aws系统管理器(ssm)的应用程序管理工具,允许用户创建键值参数,可以保存应用程序的配置、凭据、产品密钥和自定义环境变量。
另一方面,aws secrets manager是一项服务,可以创建、存储、管理、检索和轮换凭据、密钥、api令牌等。
这两个服务具有相似的界面,您可以轻松声明秘密和参数的键值对。然而,它们在以下方面有所不同:
aws secrets manager | aws参数存储 | |
存储大小 | 可以存储高达10 kb的秘密大小 | 对于每个条目,可以存储高达4096个字符或4 kb,并且高级参数可以达到8 kb |
限制 | 每个区域/帐户可以存储500k个秘密 | 每个区域/帐户可以存储10,000个标准参数 |
成本 | 付费,每个秘密每月费用为$0.40 | 标准参数免费,高级参数每10,000次api调用费用为$0.05 |
轮换 | 随时为任何秘密提供自动轮换,并且可以配置 | 您需要自己编写一个函数来更新凭据 |
跨帐户访问 | 是 | 否 |
跨区域复制 | 是 | 否 |
凭据类型 | 适用于需要加密的机密数据,因此用途有限。 | 用途更广泛,因为您可以存储更多类型的凭据,包括应用程序配置变量(如产品密钥、url等)。 |
结论
无论您来自小型、中型还是大型企业,都可以使用aws secrets manager创建和存储您的机密。它提供了增强的安全性、隐私性、访问控制、功能和能力,以保护您的机密免受未经授权的访问。
您还可以了解如何执行aws安全扫描和配置监控。