【问题标题】:In AWS Lambda, where can I securely store API Credentials?在 AWS Lambda 中,我可以在哪里安全地存储 API 凭证?
【发布时间】:2016-02-09 17:35:51
【问题描述】:

我通过 API 网关配置了一个 lambda 函数,该函数应该通过 Node(例如:Twilio)访问外部 API。不过,我不想将函数的凭据存储在 lambda 函数中。有没有更好的地方来设置它们?

【问题讨论】:

  • 您是在谈论 AWS 凭证吗?
  • 无非 AWS 凭证(例如 Twilio API)
  • 您为什么不想在函数中存储凭据?不安全吗?
  • @DanielApt 不在代码中存储凭据的主要原因是它们不会被推送到源代码控制存储库中,我想这就是他试图避免的。

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

发布此问题后,可能会将执行此操作的功能添加到 Lambda。

AWS 文档建议使用环境变量来存储敏感信息。当您使用 AWS Lambda 控制台创建 Lambda 函数时,它们会使用 AWS 确定的密钥 (aws/lambda) 进行加密(默认情况下)。

它利用 AWS KMS 并允许您:使用由 AWS 确定的密钥,或选择您自己的 KMS 密钥(通过选择启用加密助手);您需要提前创建密钥。

来自 AWS DOC 1...

“当您创建或更新使用环境变量的 Lambda 函数时,AWS Lambda 会使用 AWS Key Management Service 对其进行加密。当您的 Lambda 函数被调用时,这些值会被解密并可供 Lambda 代码使用。

当您第一次创建或更新在区域中使用环境变量的 Lambda 函数时,会在 AWS KMS 中自动为您创建一个默认服务密钥。此密钥用于加密环境变量。但是,如果您希望在创建 Lambda 函数后使用加密助手并使用 KMS 加密环境变量,那么您必须创建自己的 AWS KMS 密钥并选择它而不是默认密钥。选择默认键时会出错。”

默认键肯定会“选择时出错”——这让我想知道他们为什么将它放入下拉列表中。

来源:

【解决方案2】:

虽然我自己还没有这样做,但您应该能够利用 AWS KMS 从函数内加密/解密 API 密钥,授予 Lambda 角色访问 KMS 密钥的权限。

【讨论】:

  • 是的,KMS 是存储加密数据的好方法。
  • KMS 似乎是一个不错的方法。只是不知道它会减慢多少 lambda 处理时间。
【解决方案3】:

AWS 上的任何存储服务或数据库服务都可以在这里解决您的问题。问题是您在当前的AWS Lambda 函数中已经使用了什么?基于此,以及以下考虑:

  • 如果您需要快速且成本不是问题,请使用Amazon DynamoDB
  • 如果您需要快速且介意成本,请使用 Amazon ElastiCache(Redis 或 Memcache)
  • 如果您已经在使用一些关系数据库,请使用Amazon RDS
  • 如果您不使用任何东西并且不需要快速使用它,请使用Amazon S3

在任何情况下,您都需要创建一些安全策略(IAM 角色或 S3 存储桶策略)以允许 Lambda 和您选择的存储/数据库之间的独占访问。

注意:Amazon VPC 对 AWS Lambda 的支持即将到来,因此您选择的任何解决方案,请确保它与您的 Lambda 函数位于同一个 VPC 中(在https://connect.awswebcasts.com/vpclambdafeb2016/event/event_info.html 了解更多信息)

【讨论】:

    【解决方案4】:

    我假设您指的不是 AWS 凭证,而是外部 API 凭证?

    我不知道这是个好地方,但我在 AWS 论坛上发现了人们在 S3 上放置凭据的帖子。

    这不是您的特定用例,但请查看此论坛主题。

    https://forums.aws.amazon.com/thread.jspa?messageID=686261

    如果您将凭据放在 S3 上,请确保正确保护它。考虑使其仅可用于仅分配给该 Lambda 函数的特定 IAM 角色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 2020-08-04
      • 2014-03-06
      • 2017-04-17
      • 2018-07-19
      相关资源
      最近更新 更多