gpt4 book ai didi

azure - 运行容器化应用程序时的 IIdentity?

转载 作者:行者123 更新时间:2023-12-03 04:17:23 25 4
gpt4 key购买 nike

所以我对云中的容器还比较陌生。

我已经使用 Azure 容器实例(示例: https://xpirit.com/2017/11/12/containers-as-a-service-in-azure/ )和 AKS (示例:https://learn.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal )进行了一些概念验证

来自本地世界......示例中丢失的是 IIDentity 的想法。

例如,如果我有一个 Windows 2012 Server,运行 Windows 服务或 IIS 托管应用程序,则有 IIDentity 的想法。 Windows 服务,它将是与运行 Windows 服务相关的用户......(通过代码或控制面板/服务中的属性设置)。对于 IIS,它是运行 App-Pool 的用途。

所以我分别阅读了

服务身份甚至托管服务身份。(示例:https://anthonychu.ca/post/secrets-aspnet-core-key-vault-msi/)

这就是在暗示我。

运行时如何设置“IIdentity”

  1. 在“Azure 容器实例”中运行的 dotnetcore 应用程序 ***
  2. 在“Azure 容器实例”中运行的 Java 应用 *****
  3. 在“AKS”中运行的 dotnetcore 应用程序 ***
  4. 在“AKS”中运行的 Java 应用 *****

还是我找错了树?

==================

下面的 Docker“图像”

  • ***“来自 microsoft/aspnetcore:2.0”
  • *****“来自 java:8”

最佳答案

我现在的想法是“托管服务身份(MSI)应用在运行容器的虚拟机之上”。

这篇文章讨论了它:

https://banzaicloud.com/blog/azure-msi-role/

这里的关键是...一旦创建了 kubernetes 类型的 VM,您就可以手动进去并开启 Managed-Service-Identity 功能。

转到VM(kubernetes创建的......可能有超过1个VM)......

单击“配置”选项卡。

在我打开这个神奇的开关之前......文字如下:

"Managed Service Identity"
"Register with Azure Activity Directory"
and a bug NO/YES push button.

当我打开这个魔法后,它会显示:

Just-in-time access
To improve security, enable a just-in-time access policy.
Upgrade your Azure Security Center subscription to the standard tier

现在,这种方式可以使用托管服务身份。

然后您必须将一些托管服务身份映射到实际的虚拟机。

我仍在研究这个......所以我会在了解更多信息后尝试更新这个答案。

但理论是,一旦 MSI“应用到 VM 上”,VM(应用程序代码)将能够获得 token ,如下面的代码所示。

var azureServiceTokenProvider = new AzureServiceTokenProvider();

这里有一个更大的示例代码......(从上面的 chu.ca 站点链接复制并粘贴)(但以防万一链接失效)

Microsoft.Azure.Services.AppAuthentication package.


public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((ctx, builder) =>
{
var keyVaultEndpoint = GetKeyVaultEndpoint();
if (!string.IsNullOrEmpty(keyVaultEndpoint))
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault(
keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
}
})
.UseStartup<Startup>()
.Build();

private static string GetKeyVaultEndpoint() => Environment.GetEnvironmentVariable("KEYVAULT_ENDPOINT");

我还没有看到如何赋予 MSI“读取 KeyVault 的权限”......这仍在进行中。

关于azure - 运行容器化应用程序时的 IIdentity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876475/

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