连接到S3存储桶时如何保护AWS中的凭证

时间:2019-11-26 00:51:56

标签: amazon-web-services amazon-s3 key credentials

很抱歉,这个问题太简单了。我不久前开始学习AWS:

据我所知,AWS允许创建IAM角色并授予所需的权限,例如访问S3存储桶。

如果我需要访问S3存储桶以检索所需的数据,则可以使用ssh / winscp进行操作。

如果我需要在程序中创建连接该怎么办?如何保护密钥和密钥秘密不以纯文本形式显示在程序中?最佳做法是什么?

非常感谢您。

1 个答案:

答案 0 :(得分:3)

  

如果我需要在程序中创建连接该怎么办?   我如何保护密钥和密钥秘密不以纯文本格式显示在   一个程序?最佳做法是什么?

这取决于您的程序将在哪里执行。

如果您的程序在AWS环境(例如EC2实例或Lambda)中运行,则可以使用建议的IAM角色。 IAM角色提供AWS服务以进行服务访问。这是要了解更多信息的官方文档:

  

我们设计了IAM角色,以便您的应用程序可以安全地创建API   来自实例的请求,而无需您管理   应用程序使用的安全凭证。而不是创建   并分发您的AWS凭证,您可以将权限委派给   使用IAM角色发出API请求。

IAM Roles for Amazon EC2

类似地,AWS Lambda具有执行角色的概念。分配给lambda的角色消除了使用代码中的凭证访问另一个AWS服务的需要。

  

Lambda函数还具有一个称为执行角色的策略,该策略可以   授予其访问AWS服务和资源的权限。

AWS Lambda Permissions

如果您的程序不在AWS环境中执行,则可以使用AWS SDK进行编程以访问AWS服务。例如,Node SDK将以以下方式查找凭据:

  1. 通过服务客户端构造函数显式设置的凭据
  2. 环境变量
  3. 共享凭据文件

您肯定要避免使用第一个方法,以便您可以将凭据作为其他方法之一传递。

Setting Credentials in Node.js

Working with AWS Credentials : Java