如何使用Terraform创建Client Secret并在Azure门户中找到对应密钥?
问题1:你的代码没有语法错误,但使用的资源不符合你的预期场景
首先明确Azure AD两类关联对象的差异:
azuread_service_principal对应Azure中的**企业应用(Enterprise Application)**对象azuread_application对应Azure中的**应用注册(App Registration)**对象
你当前使用的azuread_service_principal_password资源是为企业应用对象创建凭据,因此不会同步显示到应用注册的「证书和密码」板块。
如果你的需求是创建能在应用注册页面查看的Client Secret,需要调整代码为查询应用注册对象,使用azuread_application_password资源创建凭据,示例代码如下:
# 查询目标应用注册对象 data "azuread_application" "existing_app" { display_name = "TestAppRegistration" } # 为应用注册创建Client Secret resource "azuread_application_password" "Client_Secret" { application_id = data.azuread_application.existing_app.object_id }
注意:Client Secret的明文值仅会在terraform apply的输出、以及tfstate文件中展示,Azure门户的任意位置都不会回显已创建的Secret明文,只会展示Secret ID、创建时间、过期时间等元数据。
问题2:已生成的服务主体密钥的查看路径
你当前通过代码创建的密码属于企业应用的凭据,查看路径如下:
- 打开Azure门户,搜索进入「企业应用(Enterprise applications)」服务
- 找到名称为
TestAppRegistration的对应企业应用进入详情页 - 在左侧导航栏的「安全」分类下点击「凭据」选项,即可看到你通过Terraform创建的密码元数据
内容的提问来源于stack exchange,提问作者UserP
相关产品推荐
相关产品推荐

