gpt4 book ai didi

amazon-web-services - 如何存储托管在 Ubuntu 16.04 上的 dotnet 核心应用程序的 AWS 凭证?

转载 作者:行者123 更新时间:2023-12-04 18:51:12 26 4
gpt4 key购买 nike

我正处于开发 dotnet 核心网络的早期阶段,该网络正在部署到 Ubuntu 服务器上。该应用程序通过 systemd 服务在 www-data 用户下运行(遵循本指南 https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction)。

该应用程序通过指定由 AWS 命令​​行界面生成的凭证连接到 Amazon S3 服务,即 aws configure (http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

我尝试了各种方法让应用程序读取凭据文件,包括尝试在服务定义中设置环境属性,在我的 appsettings.json 文件中显式设置 ProfilesLocation。

我当前的工作解决方案是将 ~/.aws 文件夹和内容复制到/var/www/.aws 路径,并将所有者设置为 www-data。虽然这可行,但我不确定这是否是最佳做法,并且担心它是否安全。

这种方法是否合理,如果不是我应该怎么做?

谢谢

最佳答案

我会创建一个 appsettings.Production.json文件并将您的所有 secret 放入该文件中。然后,我将为您的每个 secret 创建一个具有属性的类。然后,您可以使用 options pattern 访问您的任何类(即 Controller 类)中的 secret 。 .稍后当您构建应用程序的发布版本并发布到 Linux 时,您将复制您的 appsettings.Production.json文件连同您的其余构建文件,您的应用程序将从该文件中获取 AWS 凭证。

appsettings.Production.json

{
"Secret1": "myfirstsecretvalue",
"Secret2": "mysecondsecretvalue"
}

MyOptions.cs
public class MyOptions
{
public string Secret1 { get; set; }
public string Secret2 { get; set; }
}

MyController.cs
public class MyController : Controller
{
public MyController(IOptions<MyOptions> optionsAccessor)
{
Options = optionsAcessor.Value;
}

public MyOptions Options { get; }

public IActionResult Index()
{
// access my secret1 value
string mysecret1 = Options.Secret1;

return View();
}
}

关于amazon-web-services - 如何存储托管在 Ubuntu 16.04 上的 dotnet 核心应用程序的 AWS 凭证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44084644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com