是否可以使用 Pulumi 创建 Azure 服务主体?

Posted

技术标签:

【中文标题】是否可以使用 Pulumi 创建 Azure 服务主体?【英文标题】:Is it possible to create an Azure Service Principal with the Pulumi? 【发布时间】:2021-12-02 02:35:59 【问题描述】:

我有一个创建一些 Azure 资源的 Pulumi Python 代码。安装了我的用户用户帐户来创建资源,我使用 Powershell 创建了一个 Azure 服务主体并使用以下方法进行身份验证:

pulumi config set azure-native:clientId <clientID>
pulumi config set azure-native:clientSecret <clientSecret> --secret
pulumi config set azure-native:tenantId <tenantID>
pulumi config set azure-native:subscriptionId <subscriptionID>

现在,我想知道是否可以使用 Pulumi 创建 Azure 服务主体,然后使用服务主体进行身份验证? 其他问题,是真道吗?

编辑: 作为这些文件Service Principal 我的代码是:

import pulumi
from pulumi.output import Output
import pulumi_azure_native as azure_native
import pulumi_azuread as azuread
    
current = azuread.get_client_config()
example_application = azuread.Application("exampleApplication",
                                          display_name="example",
                                          owners=[current.object_id])
example_service_principal = azuread.ServicePrincipal("exampleServicePrincipal",
                                                     application_id=example_application.application_id,
                                                     app_role_assignment_required=False,
                                                     owners=[current.object_id])

我收到了这个错误。我也安装了pip install pulumi-azuread

 ModuleNotFoundError: No module named 'pulumi_azuread'

【问题讨论】:

您将需要使用此名称安装模块 - pip install pulumi_azuread。注意下划线_,而不是破折号。 @sushant 和 @Piers Karsenbarg 我都尝试了它们,但我收到了同样的错误。 Pip freeze 的输出是 pulumi-azuread==5.5.0。另外,我卸载了pip install pulumi-azuread,又重新安装了pip install pulumi_azuread,但是问题还是没有解决。 【参考方案1】:

当然可以,将Service Principal resource 用作Azure Active Directory Provider 的一部分。

您需要先定义一个应用程序,但在打字稿中它看起来像:

import * as azuread from "@pulumi/azuread";

const application = new azuread.Application(`application`, 
      displayName: `application`,
);

const servicePrincipal = new azuread.ServicePrincipal(`servicePrincipal`, 
      applicationId: application.applicationId,
);

【讨论】:

我收到了这个错误。另外,我使用以下命令安装它。是 Azure 本机吗? pip install pulumi-azuread 错误:import pulumi_azuread as azuread ModuleNotFoundError: No module named pulumi_azuread' error:发生未处理的错误:程序以非零退出代码退出:1` 正如@sushant 在您的问题下的评论中所写,pip install pulumi_azuread 带有下划线而不是连字符

以上是关于是否可以使用 Pulumi 创建 Azure 服务主体?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Pulumi Azure 资源迁移到 Azure-Nextgen?

如何使用 Pulumi 向 Web App 添加身份验证

Pulumi 输出 - 创建一个外部配置文件

使用 Pulumi 通过 C# 在 APIM 中创建后端资源时输入映射错误

是否可以创建 WCF 服务端点来处理来自 Azure 服务总线的死信?

在ECS上使用来自pulumi的私人码头登记处的图像