【问题标题】:Amazon S3 Credentials file for production?用于生产的 Amazon S3 凭证文件?
【发布时间】:2016-06-26 10:42:18
【问题描述】:

我正在尝试在我的应用程序中实施“推荐”方法来存储凭据以连接到 Amazon S3,这似乎是使用已阅读此内容的凭据文件:

http://docs.aws.amazon.com/AWSSdkDocsNET/V3/DeveloperGuide/net-dg-config-creds.html

声明的地方:

Don't put literal access keys in your application, including the project's App.config or Web.config file.Doing so creates a risk of accidentally exposing your credentials if, for example, you upload the project to a public repository.

这很好,但所有示例都有 c:/path/to/my/file

那么我如何使这条路径相对于我的应用程序,而不是文字?

我有这个,但它不起作用:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws
    profileName="Profile1"
    profilesLocation="~/Credentials.json">
  </aws>
...
</configuration>

这种方法对于已发布的应用程序来说不是正确的方法,并且只适合开发吗?

谢谢!

【问题讨论】:

  • 应用程序在哪里运行?在 EC2 实例上?
  • 它作为 Azure Web 服务运行 - 这是一个托管的 Web 服务器,我们无权访问文件系统..

标签: amazon-web-services amazon-s3 web-config app-config


【解决方案1】:

您需要知道 AWS 如何处理访问。

首先,AWS 资源的管理员将创建访问角色,该角色还将生成凭据对。它被称为“access_key_id”和“secret_access_key”。

因为 AWS 的新管理员可能会分配许多 AWS 应用程序以使用相同的角色和访问密钥,这就是 AWS 文档警告您不要将其存储在应用程序中的原因。因此,他们建议您将 keyid 和访问密钥放入文件中,将其放在具有受限应用程序用户/管理员/应用程序组访问权限的安全目录下。 (在 unix 术语中,它表示 chmod 600)

现在回到你的问题。如果您的应用程序在 Windows 实例中运行并使用 .Net ,除非您启用某种目录映射(检查 .NET api),否则,您需要使用 Windows 路径格式。

如果您的应用程序不使用 .Net,而是使用 Java、node.js 等 (https://aws.amazon.com/tools/) 之类的其他应用程序,请获取能够“与 AWS 对话”的正确 API。

【讨论】:

  • 你知道我只是要把它存储在 app.config 中,我认为无论我以哪种方式削减它,凭据都是解决方案的一部分,因此需要部署.. 这是只是让生活变得困难imo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多