很抱歉,这个问题太简单了。我不久前开始学习AWS:
据我所知,AWS允许创建IAM角色并授予所需的权限,例如访问S3存储桶。
如果我需要访问S3存储桶以检索所需的数据,则可以使用ssh / winscp进行操作。
如果我需要在程序中创建连接该怎么办?如何保护密钥和密钥秘密不以纯文本形式显示在程序中?最佳做法是什么?
非常感谢您。
答案 0 :(得分:3)
如果我需要在程序中创建连接该怎么办? 我如何保护密钥和密钥秘密不以纯文本格式显示在 一个程序?最佳做法是什么?
这取决于您的程序将在哪里执行。
如果您的程序在AWS环境(例如EC2实例或Lambda)中运行,则可以使用建议的IAM角色。 IAM角色提供AWS服务以进行服务访问。这是要了解更多信息的官方文档:
我们设计了IAM角色,以便您的应用程序可以安全地创建API 来自实例的请求,而无需您管理 应用程序使用的安全凭证。而不是创建 并分发您的AWS凭证,您可以将权限委派给 使用IAM角色发出API请求。
类似地,AWS Lambda具有执行角色的概念。分配给lambda的角色消除了使用代码中的凭证访问另一个AWS服务的需要。
Lambda函数还具有一个称为执行角色的策略,该策略可以 授予其访问AWS服务和资源的权限。
如果您的程序不在AWS环境中执行,则可以使用AWS SDK进行编程以访问AWS服务。例如,Node SDK将以以下方式查找凭据:
您肯定要避免使用第一个方法,以便您可以将凭据作为其他方法之一传递。