无法使用SSL

时间:2019-10-21 12:34:31

标签: azure terraform azure-blob-storage

由于新的安全要求,我将Azure Blob存储用作状态后端,我现在需要使用SSL访问Azure存储帐户。但是,此操作失败,并显示以下内容:

  

module.core_infra.data.terraform_remote_state.mccp_core_infra:   data.terraform_remote_state.mccp_core_infra:存储:服务已返回   错误:StatusCode = 403,ErrorCode = AuthenticationFailed,   ErrorMessage =服务器无法验证请求。确保   Authorization标头的值正确形成,包括   签名。

这是一个示例配置:

resource "azurerm_storage_account" "terraform_state_account" {
   name                     = "${lower(replace(var.azure_tenant_name, "/\\W|_/", ""))}tfstate"
   resource_group_name      = "${azurerm_resource_group.main.name}"
   location                 = "${var.azure_location}"
   account_tier             = "Standard"
   account_replication_type = "LRS"
   enable_https_traffic_only = true

   network_rules {
     ip_rules                   = ["masked/24"]
     virtual_network_subnet_ids = ["${azurerm_subnet.mccp_vnet_subnet.id}"]
   }

   tags = {
     environment = "${var.azure_tenant_name} terraform state account"
   }
 }

data "terraform_remote_state" "mccp_core_infra" {
   backend = "azurerm"
   config = {
     storage_account_name = "${lower(replace(var.azure_tenant_name, "/\\W|_/", ""))}tfstate"
     container_name       = "mccp-core-infra-tf-state"
     key                  = "terraform.tfstate"
     access_key           = "${var.azure_mccp_storage_account_key}"
   }
 }

我正在将Terraform 0.11.11与azurerm提供程序1.33.0一起使用。如果没有enable_https_traffic_only标志,这很好用。我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

enable_https_traffic_only功能不会对该错误产生影响。在Terraform v0.12.9中使用enable_https_traffic_only标志可以很好地工作 + provider.azurerm v1.35.0在我这一边。

这似乎是一个凭证问题。当access_key在数据源中无效时,我可以重现您的问题。您可以验证是否可以使用该访问密钥访问该存储帐户Blob,或者是否从承载.tfstate的正确存储帐户名称中获取引用。

您还可以尝试删除本地.terraform文件夹,然后重试,如this post中所述。