首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行容器化应用程序时的IIdentity?

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

Stack Overflow用户
提问于 2018-08-16 11:55:04
回答 1查看 187关注 0票数 1

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

我用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)做了一些概念化的证明。

来自于一个前提下的world....what在示例中迷失了,这就是IIDentity的思想。

例如,如果我有一个运行Windows或IIS托管应用程序的Windows2012Server,那么就有了IIDentity的概念。Windows服务,它将是绑定到运行Windows服务的用户.(由代码或Control/Services中的属性设置)。对于IIS,它是运行App的用法。

所以我单独读到过

服务标识,甚至是托管服务标识。(例子:https://anthonychu.ca/post/secrets-aspnet-core-key-vault-msi/ )

这就是暗示我的地方。

如何在运行时设置"IIdentity“

  1. 一个在"Azure容器实例“中运行的dotnetcore应用程序*
  2. 在"Azure容器实例“中运行的java应用程序*
  3. 在"AKS“中运行的dotnetcore应用程序*
  4. 运行在"AKS“中的java应用程序

还是我撞错了树?

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

码头“形象”

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

回答 1

Stack Overflow用户

发布于 2018-08-24 13:48:06

我现在的想法是“在运行容器的VM之上应用托管服务标识(MSI)”。

本文将讨论这一问题:

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

这里的关键是创建一个kubernetes类型的VM,您可以手动进入并打开托管服务标识功能。

转到VM ( kubernetes created......there可能超过1 VM).

点击“配置”选项卡。

在我做这个神奇的开启之前……课文是这样的:

代码语言:javascript
复制
"Managed Service Identity"
"Register with Azure Activity Directory"
and a bug NO/YES push button.

在我打开这个魔法之后,它会写成:

代码语言:javascript
复制
Just-in-time access
To improve security, enable a just-in-time access policy.
Upgrade your Azure Security Center subscription to the standard tier

现在,这样就可以使用托管服务标识了。

然后,您必须将一些托管服务标识映射到实际的VM。

我仍然在研究this.........so,随着我了解到更多信息,我将尝试更新这个答案。

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

代码语言:javascript
复制
var azureServiceTokenProvider = new AzureServiceTokenProvider();

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

代码语言:javascript
复制
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”的yet......that仍在进行中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51876475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档