我已经使用 Terraform 创建了一个存储帐户。我想禁用在 Azure 门户中的存储帐户设置和配置下找到的名为“允许公共 blob 访问”的选项,但是在azurerm_storage_account命令下,我似乎找不到实现此目的所需的选项。
下面是我到目前为止创建存储帐户的代码,它可以工作,但如果有人能指出我正确的方向,那就太好了,谢谢。
存储账户
resource "azurerm_storage_account" "st" {
name = var.st.name
resource_group_name = var.rg_shared_name
location = var.rg_shared_location
account_tier = var.st.tier
account_replication_type = var.st.replication
public_network_access_enabled = false
}
Run Code Online (Sandbox Code Playgroud)
Neb*_*tic 13
随着 azurerm 提供程序 3.0 版的发布,该参数allow_blob_public_access更改为allow_nested_items_to_be_public. 如果您阅读旧的文档或示例,这可能会导致混乱。此外,您可以通过多种方式禁用存储帐户的公共网络访问。
public_network_access_enabled为 false。network_rules阻止并设置default_action为拒绝。azurerm_storage_account_network_rules资源并将其设置default_action为拒绝。明确告诉任何人都不能公开进入存储帐户是最干净/最安全的选择。但是,有时您想要为一组特定的 IP 地址打开存储帐户并阻止所有其他 IP 地址,那么其他选项很有用。
如果禁用公共网络访问,则应使用专用终结点或服务终结点以便能够从专用网络连接到您的存储帐户。基于此存储库的示例:
resource "azurerm_storage_account" "storage_account" {
name = var.name
resource_group_name = var.resource_group_name
location = var.location
account_kind = var.kind
account_tier = var.tier
account_replication_type = var.replication_type
is_hns_enabled = true
enable_https_traffic_only = true
public_network_access_enabled = false
allow_nested_items_to_be_public = false
min_tls_version = var.min_tls_version
}
resource "azurerm_private_endpoint" "private_endpoint_blob" {
name = "pe-blob-${var.name}"
location = var.location
resource_group_name = var.resource_group_name
subnet_id = var.subnet_id
private_service_connection {
name = "psc-blob-${var.name}"
is_manual_connection = false
private_connection_resource_id = azurerm_storage_account.storage_account.id
subresource_names = ["blob"]
}
# Should be deployed by Azure policy
lifecycle {
ignore_changes = [private_dns_zone_group]
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*Jon 10
我一发布这个问题,就找到了该命令,因此我为浪费您的时间表示歉意。
要使用的命令是allowed_nested_items_to_be_public,如果将此设置为false,它将禁用在Storage Account > Settings > Configuration下找到的功能,允许 blob 公共访问
更新代码
resource "azurerm_storage_account" "st" {
name = var.st.name
resource_group_name = var.rg_shared_name
location = var.rg_shared_location
account_tier = var.st.tier
account_replication_type = var.st.replication
public_network_access_enabled = false
allow_nested_items_to_be_public = false
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12769 次 |
| 最近记录: |