我需要访问 lambda 函数的一些凭据,一种方法是将它们放入环境变量中。
但是,这些凭据的值在 lambda 控制台中是可见的。我正在考虑将它们放在秘密管理器或参数存储中,并将密钥作为 env 放在 lambda 中。然后在运行时加载 lambda 中的值。
但是,这种方法是安全的,但会产生一些延迟。我不确定它会产生多少延迟。有没有更好的解决方案?
我需要访问 lambda 函数的一些凭据,一种方法是将它们放入环境变量中。
但是,这些凭据的值在 lambda 控制台中是可见的。我正在考虑将它们放在秘密管理器或参数存储中,并将密钥作为 env 放在 lambda 中。然后在运行时加载 lambda 中的值。
但是,这种方法是安全的,但会产生一些延迟。我不确定它会产生多少延迟。有没有更好的解决方案?
Lambda 变量实际上已经加密,解密的值从控制台显示,但如果用户没有密钥的权限,他们将无法看到它们。
正如您所建议的,您有以下解决方案:
使用这些解决方案中的任何一个您将获得的好处是,您可以在您正在使用的版本之外以及同时跨多个 Lambda 函数更改它们。
尝试到达这些服务端点的延迟也会增加,这会导致时间略有增加。您可以通过将您的Lambda 放在 VPC 中并使用VPC 终端节点来减少这种延迟(这将允许通过使用公共互联网进行直接私有通信),但它仍然会比环境变量长。
最终这个选择是给你的,如果你确实需要重用变量并且可以忍受轻微的延迟,那么使用秘密管理器或系统管理器参数存储。否则管理KMS 权限,以便不是每个用户都可以访问获取解密。