.net 如果我通过编程知道aws用户名和密码,如何获取访问密钥和加密访问密钥

.net 如果我通过编程知道aws用户名和密码,如何获取访问密钥和加密访问密钥,.net,amazon-web-services,amazon-s3,amazon-iam,.net,Amazon Web Services,Amazon S3,Amazon Iam,我正在开发一些windows应用程序,需要与AmazonAWSS3通信以获取数据并存储数据。现在,终端客户端不知道访问密钥和机密访问密钥,而机密访问密钥知道用户名和密码,因此我必须获取用户名和密码,然后与aws s3通信,但要与s3通信,我们需要访问密钥和机密访问密钥,因此我如何能够从用户名和密码中获取访问密钥和机密访问密钥使用编程设置密码?首先,使用用户名和密码被认为是一种糟糕的安全做法。最终用户应获得IAM访问密钥并将其提供给软件。请查阅AWS的“管理AWS访问密钥的最佳实践”指南 其次,在

我正在开发一些windows应用程序,需要与AmazonAWSS3通信以获取数据并存储数据。现在,终端客户端不知道访问密钥和机密访问密钥,而机密访问密钥知道用户名和密码,因此我必须获取用户名和密码,然后与aws s3通信,但要与s3通信,我们需要访问密钥和机密访问密钥,因此我如何能够从用户名和密码中获取访问密钥和机密访问密钥使用编程设置密码?

首先,使用用户名和密码被认为是一种糟糕的安全做法。最终用户应获得IAM访问密钥并将其提供给软件。请查阅AWS的“管理AWS访问密钥的最佳实践”指南

其次,在创建现有密钥之后,无法检索该密钥。您可以使用AWS SDK(例如Node.js:)从应用程序以编程方式创建IAM访问密钥,但要设置SDK,首先需要密钥


我会重新设计应用程序,需要API密钥而不是用户名/密码。

首先,使用用户名和密码被认为是一种糟糕的安全做法。最终用户应获得IAM访问密钥并将其提供给软件。请查阅AWS的“管理AWS访问密钥的最佳实践”指南

其次,在创建现有密钥之后,无法检索该密钥。您可以使用AWS SDK(例如Node.js:)从应用程序以编程方式创建IAM访问密钥,但要设置SDK,首先需要密钥


我会重新设计应用程序,需要API密钥而不是用户名/密码。

您可以将您的写入和读取从S3移动到可以在aws中运行的web API。在那里,您可以将凭据保存在aws KMS中,或者以加密方式存储在api应用程序本身的配置文件中。客户端应用程序只需调用api,不需要知道凭据。谢谢@Aravind,但我们不想实现web api。但是,在服务器端,我们是否可能创建使用时间非常有限的IAM用户,并获取此IAM用户的访问和秘密访问密钥?我们如何才能做到这一点?您是否只希望这些用户能够将数据上传/下载到S3?我建议使用
awss3cp
命令。是的,它需要访问密钥和密钥。您不应向他们提供AWS管理控制台的登录凭据。这只供您的员工使用。您可以将您的写入和读取从S3移动到可以在aws中运行的web api。在那里,您可以将凭据保存在aws KMS中,或者以加密方式存储在api应用程序本身的配置文件中。客户端应用程序只需调用api,不需要知道凭据。谢谢@Aravind,但我们不想实现web api。但是,在服务器端,我们是否可能创建使用时间非常有限的IAM用户,并获取此IAM用户的访问和秘密访问密钥?我们如何才能做到这一点?您是否只希望这些用户能够将数据上传/下载到S3?我建议使用
awss3cp
命令。是的,它需要访问密钥和密钥。您不应向他们提供AWS管理控制台的登录凭据。这只供您的员工使用。不知道您为什么说用户名/密码是一种糟糕的安全做法。如果通过大多数用户熟悉的AWS控制台进行访问,这是最佳做法。当然,您需要使用正确的IAM策略和MFA管理IAM用户。并非所有人都使用SDK或CLI访问AWS资源。密钥可以随时创建,也可以随时处于非活动状态。不知道为什么您说用户名/密码是一种糟糕的安全做法。如果通过大多数用户熟悉的AWS控制台进行访问,这是最佳做法。当然,您需要使用正确的IAM策略和MFA管理IAM用户。并非所有人都使用SDK或CLI访问AWS资源。可以随时创建密钥,也可以随时使其处于非活动状态。