对Terraform进行身份验证

问题描述 投票:0回答:1
来设置身份验证。但是,Terraform仍以某种方式去CLI Auth并要求用户凭证。我已经将所有必需的变量设置为Terraform后端配置的一部分,例如USE_MSI,client_id,sisscription_id和tenant_id。托管身份具有创建Terraform资源所需的所有权限。 关于如何在此处调试这个问题的一些指示。有人可以将我指向Terraform的源代码吗?它可以提供有关我可能丢失的任何配置的一些信息。 therraform init以下面的参数运行:

Running terraform command: init with args: () kwargs: {'no_color': None, 'backend_config': {'container_name': 'xyz', 'key': 'terraform.tfstate', 'storage_account_name': 'xyz', 'use_msi': 'true', 'client_id': '***', 'subscription_id': '***', 'tenant_id': '***', 'msi_endpoint': 'http://a.b.c.d:8081/msi/token'}} 在下面查看错误

ErrorTerraform Init STDERR:错误:错误构建臂配置:获得 Azure CLI的订阅(***):Azure的解析JSON结果 CLI:等待Azure CLI:退出状态1:错误:请运行'AZ 登录'到设置帐户。

I验证了功能应用程序能够击中MSI端点。在运行Terraform代码之前,我需要访问存储帐户以获取一些配置,并能够使用托管身份来获取该配置。我可以看到我们要击中msi-endpoint的日志以获取令牌以访问存储帐户。

使用Azure AD用户分配的托管身份
实体地Terraform

aissue似乎与您进行身份验证的方式检查所有所提供的环境变量都以正确的输入分配。
为每个therraform文档

用户托管的身份证也应在贡献者级别上需要必要的许可,以便它能够提供所需的条件。

此外,还使用最新版本的Terraform提供商检查您的任何功能,都可以避免任何功能。

采样配置具有适当的输入:

azure terraform terraform-provider-azure azure-managed-identity
1个回答
0
投票
provider "azurerm" { features {} subscription_id = "subscription_id" } terraform { backend "azurerm" { resource_group_name = "vinay-rg" storage_account_name = "testsasdasfaspp" container_name = "test" key = "terraform.tfstate" use_msi = true client_id = "client_id" subscription_id = "subscription_id" tenant_id = "tenant_id" msi_endpoint = "URL" } }

如果问题仍然存在,您可以使用命令检查登录名

az account show

然后使用命令清除它们 az logout

参考:

使用Terraform在Azure上使用Terraform的VM驱逐VM失败 - 堆栈溢出
jahnavi

回答了 enter image description here

Terraform:错误构建臂配置 - 仅支持使用Azure CLI进行身份验证 - 堆栈溢出

Quadroid

回答
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.