当前位置: 首页 > 知识库问答 >
问题:

AWS BOTO3:处理API密钥

苏涛
2023-03-14

TL;DR:将身份验证数据传递给csv文件中名为参数(且未签入)的boto3脚本是否出于任何原因不如明文共享凭据文件(文档中的默认答案)安全?

我想写一个boto3脚本,打算从使用IAM密钥的html" target="_blank">笔记本电脑上运行。初始化会话的主要公认方法是将API密钥、密钥、区域和(如果适用)会话密钥包含在由AWS\u shared\u credentials\u file标识的共享凭据文件中,或者将密钥和密钥本身作为环境变量(AWS\u ACCESS\u key\u ID等)我想做的是将这些值从csv或类似文件加载到字典auth,然后使用该字典的键和值初始化我的bot3.Session。这很容易做到;但是,由于从csv加载身份验证数据的实用程序非常明显,而且提供此实用程序的模块太少,因此我假设它存在一些我不知道的安全问题。

共享凭据文件比csv文件更安全,其中auth数据作为参数传递给boto3脚本,这是有原因的吗?我知道从具有角色分配的EC2实例运行此操作是最好的,但是我正在寻找一种方法来在本地测试库,然后将它们添加到一个通过角色安全运行的库中。

共有1个答案

白学
2023-03-14

csv文件没有什么特别或安全的。它的安全风险与凭据文件相同,因为两者都是文本文件。如果你担心安全性,更喜欢文件选项,我可以想到一个替代方案:

  1. 加密凭证并将其存储为文件中的二进制数据
  2. 在您的Boto3脚本中,读取文件,解密数据并将凭据提供给Boto3
  3. 您可以使用简单的对称密钥来加密文件夹
 类似资料:
  • 我正在开发一个服务器/客户端应用程序,允许将视频剪辑发布到用户的YouTube频道。我们的软件部署在客户拥有并控制的服务器上。 我正在使用YouTube的Java API v3和OAuth 2.0。 我的问题是 - 在这种情况下,我应该如何管理客户端机密? 我曾考虑将自己的客户机机密嵌入服务器代码,但配额和使用将由我负责。我不确定要求客户拥有自己的谷歌开发者账户并生成自己的客户机密是否明智。。。

  • 大部分开发者知道密码不能以明文形式存储,但是许多开发者仍认为使用 md5 或者 sha1 来哈希化密码是安全的。 一度,使用上述的哈希算法是足够安全的,但是, 现代硬件的发展使得短时间内暴力破解上述算法生成的哈希串成为可能。 为了即使在最糟糕的情况下(你的应用程序被破解了)也能给用户密码提供增强的安全性, 你需要使用一个能够对抗暴力破解攻击的哈希算法。目前最好的选择是 bcrypt。在 PHP 中

  • 编辑:我需要通过有效载荷传递一些敏感信息。这可以是一个字母数字值。例如{“sender”:“+123”,“secret”:“encrypted_value”}客户端和服务器应该共享一个密钥,客户端可以使用该密钥对信息进行加密,服务器(lambda函数)应该对其进行解密。 任何建议都会很好!谢谢!

  • 1.API 返回结构 返回结果(response)分为:状态码(status code)、头部(headers)、消息体(body)。其中算法的结果会以 JSON 格式放在消息体中。 如何从 HTTP 返回中分别获取这三部分信息,请参见所用 HTTP 库的文档。 解析 JSON 格式需要寻找所用语言的 JSON 库,参见 http://www.json.org/ 2.正常结果 状态码为 2xx的为

  • 我使用放心框架的Apigee代理URL与生成承载令牌在飞行,Xapi密钥和使用Apigee代理URL。目前,令牌是使用CURL命令手动生成的。我在邮递员方面可以考得很好。//accessToken,下面的apiKey定义为字符串//inputrequest.getInputStream()读取body所需的JSON 我得到的是401(未经授权的错误),而不是200。我在这里的问题总结一下-- Re

  • 我们目前正在实现一个过程(使用Kafka处理器API),我们需要将来自一个主题的两个相关事件(消息)的信息合并,然后转发这些合并的信息。事件源于物联网设备,由于我们希望保持其有序,因此源主题使用设备标识符作为键。事件还包含相关ID: 钥匙 留言 我们的第一种方法是创建一个具有连接状态存储的处理器,该存储存储每条传入的消息,使用相关ID作为键。这使我们能够查询存储以获取传入消息的相关ID,如果存储中