【问题标题】:AWS BOTO3 : Handling API keysAWS BOTO3:处理 API 密钥
【发布时间】:2018-01-28 01:52:16
【问题描述】:

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

我想编写一个 boto3 脚本,用于在我的笔记本电脑上运行,该脚本使用 IAM 密钥。初始化会话的主要接受方法是将 API 密钥、秘密、区域和(如果适用)会话密钥包含在由 AWS_SHARED_CREDENTIALS_FILE 标识的共享凭证文件中,或者将密钥和秘密作为环境变量他们自己(AWS_ACCESS_KEY_ID 等)我想做的是从 csv 或类似文件将这些值加载到字典 auth 中,然后使用该字典的键和值来初始化我的 boto3.Session。这很容易做到;但是,因为从 csv 加载身份验证数据的实用程序非常明显,并且因为很少有模块提供此实用程序,所以我认为它存在一些我不知道的安全问题。

共享凭证文件是否比 csv 文件更安全,其中身份验证数据作为参数传递给 boto3 脚本?我知道从具有角色分配的 EC2 实例运行它是最好的,但我正在寻找一种在通过角色安全将它们添加到运行之前在本地测试库的方法。

【问题讨论】:

    标签: python amazon-web-services security boto3


    【解决方案1】:

    csv 文件没有什么特别或安全的。它的安全风险与凭证文件相同,因为两者都是文本文件。如果您担心安全性并更喜欢文件选项,我能想到的另一种选择:

    1. 加密凭据并将它们作为二进制数据存储在文件中
    2. 在您的 Boto3 脚本中,读取文件、解密数据并将凭据提供给 Boto3
    3. 您可以使用简单的对称密钥来加密凭据

    【讨论】:

    • 谢谢!我想确定的是,在创建会话时在内存中拥有凭据不会带来我不知道的额外安全风险。
    最近更新 更多