Am un bloc de lucru de terraform vnet,subnet și NSG al acestuia.
furnizorul „azurerm” {
Caracteristici {}
}
resursa „azurerm_resource_group” „exemplu” {
nume = "exemplu-resurse"
locație = „Europa de Vest”
}
resursa „azurerm_virtual_network” „exemplu” {
nume = "exemplu-vn"
locație = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
adresa_spațiu = ["10.0.0.0/16"]
}
resursa „azurerm_subnet” „exemplu” {
nume = "exemplu-sn"
resource_group_name = azurerm_resource_group.example.name
virtual_network_name = azurerm_virtual_network.example.name
address_prefixes = ["10.0.2.0/24"]
service_endpoints = [„Microsoft.Storage”]
delegație {
nume = "fs"
service_delegation {
nume = "Microsoft.DBforPostgreSQL/flexibleServers"
acțiuni = [
„Microsoft.Network/virtualNetworks/subnets/join/action”,
]
}
}
}
resursa „azurerm_private_dns_zone” „exemplu” {
nume = "example.postgres.database.azure.com"
resource_group_name = azurerm_resource_group.example.name
}
resursă „azurerm_private_dns_zone_virtual_network_link” „exemplu” {
nume = "exampleVnetZone.com"
private_dns_zone_name = azurerm_private_dns_zone.example.name
virtual_network_id = azurerm_virtual_network.example.id
resource_group_name = azurerm_resource_group.example.name
}
resursa „azurerm_postgresql_flexible_server” „exemplu” {
nume = "exemplu-psqlflexibleserver2022"
resource_group_name = azurerm_resource_group.example.name
locație = azurerm_resource_group.example.location
versiune = "13"
delegated_subnet_id = azurerm_subnet.example.id
private_dns_zone_id = azurerm_private_dns_zone.example.id
administrator_login = "postgres"
administrator_password = „parolă@2020”
zona = "1"
stocare_mb = 131072
sku_name = "GP_Standard_D2s_v3"
depends_on = [azurerm_private_dns_zone_virtual_network_link.example]
}
Dar primesc o eroare create nsg înainte de politica de subrețea, așa că am schimbat crearea subrețelei ca mai jos.
# Creați o rețea virtuală
resursă „azurerm_virtual_network” „aksvnet” {
nume = "aks-network"
locație = azurerm_resource_group.aks_rg.location
resource_group_name = azurerm_resource_group.aks_rg.name
adresa_spațiu = ["10.0.0.0/8"]
subrețea {
nume = "aks-default-subnet"
address_prefix = „10.240.0.0/16”
security_group = azurerm_network_security_group.example.id
}
subrețea {
nume = "aks-postgres-subnet"
address_prefix = „10.230.2.0/24”
security_group = azurerm_network_security_group.example.id
service_endpoints = [„Microsoft.Storage”]
delegație {
nume = "fs"
service_delegation {
nume = "Microsoft.DBforPostgreSQL/flexibleServers"
acțiuni = [
„Microsoft.Network/virtualNetworks/subnets/join/action”,
]
}
}
}
}
resursă „azurerm_network_security_group” „exemplu” {
nume = "exemplu-nsg"
locație = azurerm_resource_group.aks_rg.location
resource_group_name = azurerm_resource_group.aks_rg.name
regulă_securitate {
nume = "test123"
prioritate = 100
directie = "Inbound"
acces = "Permite"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "*"
source_address_prefix = "*"
destination_address_prefix = "*"
}
}
Dar obținerea de mai jos erori.
Vă rugăm să sugerați cum să remediați asta.
Eroare: argument neacceptat
â
â pe 11-virtual-network.tf linia 17, în resursa „azurerm_virtual_network” „aksvnet”:
â 17: service_endpoints = [„Microsoft.Storage”]
â
â Un argument numit „service_endpoints” nu este așteptat aici.
âµ
â·
â Eroare: tip de bloc neacceptat
â
â pe 11-virtual-network.tf linia 18, în resursa „azurerm_virtual_network” „aksvnet”:
â 18: delegare {
â
â Blocuri de tip „delegare” nu sunt așteptate aici.
Chiar și cu abordarea de mai jos, primesc o eroare de politică.
# Creați o rețea virtuală
resursă „azurerm_virtual_network” „aksvnet” {
nume = "aks-network"
locație = azurerm_resource_group.aks_rg.location
resource_group_name = azurerm_resource_group.aks_rg.name
adresa_spațiu = ["10.0.0.0/8"]
subrețea {
nume = "aks-default-subnet"
address_prefix = „10.240.0.0/16”
security_group = azurerm_network_security_group.example.id
}
}
resursă „azurerm_network_security_group” „exemplu” {
nume = "exemplu-nsg"
locație = azurerm_resource_group.aks_rg.location
resource_group_name = azurerm_resource_group.aks_rg.name
regulă_securitate {
nume = "test123"
prioritate = 100
directie = "Inbound"
acces = "Permite"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "*"
source_address_prefix = "*"
destination_address_prefix = "*"
}
}
resursă „azurerm_subnet_network_security_group_association” „exemplu” {
subnet_id = azurerm_subnet.example.id
network_security_group_id = azurerm_network_security_group.example.id
}
resursa „azurerm_subnet” „exemplu” {
virtual_network_name = azurerm_virtual_network.aksvnet.name
nume = "aks-postgres-subnet"
resource_group_name = azurerm_resource_group.aks_rg.name
address_prefixes = ["10.230.2.0/24"]
service_endpoints = [„Microsoft.Storage”]
delegație {
nume = "fs"
service_delegation {
nume = "Microsoft.DBforPostgreSQL/flexibleServers"
acțiuni = [
„Microsoft.Network/virtualNetworks/subnets/join/action”,
]
}
}
depends_on = [azurerm_virtual_network.aksvnet, azurerm_network_security_group.example]
}
Primesc o eroare ca mai jos.
er-delete-dev"): network.SubnetsClient#CreateOrUpdate: Eroare la trimiterea cererii: StatusCode=403 -- Eroare originală:
Code="RequestDisallowedByPolicy" Message="Resursa
„aks-postgres-subnet” a fost interzis de politică. Identificatori de politică:
„[{"policyAssignment":{"name":"Deny-Subnet-Without-Nsg","id":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones/providers/Microsoft.Authorization/policyAssignments/Deny- Subnet-Without-Nsg"},"policyDefinition":{"name":"Subrețele
ar trebui să aibă un grup de securitate de rețea
","id":"/providers/Microsoft.Management/managementGroups/QSFT/providers/Microsoft.Authorization/policyDefinitions/Deny-Subnet-Without-Nsg"}}]'."
Target="aks-postgres-subnet"
AdditionalInfo=[{"info":{"evaluationDetails":{"evaluatedExpressions":[{"expression":"type","expressionKind":"Field","expressionValue":"Microsoft.Network/virtualNetworks/subnets", "operator":"Egal","path":"type","result":"True","targetValue":"Microsoft.Network/virtualNetworks/subnets"},{"expression":"Microsoft.Network/virtualNetworks" /subnets/networkSecurityGroup.id","expressionKind":"Field","operator":"Există","path":"properties.networkSecurityGroup.id","result":"True","targetValue":"false "}]},"policyAssignmentDisplayName":"Deny-Subnet-Without-Nsg","policyAssignmentId":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones/providers/Microsoft.Authorization/policyAssignments-With-With -Nsg","policyAssignmentName":"Deny-Subnet-Without-Nsg","policyAssignmentScope":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones","policyDefinitionDisplayName":"Subnets
ar trebui să aibă un grup de securitate de rețea
","policyDefinitionEffect":"Deny","policyDefinitionId":"/providers/Microsoft.Management/managementGroups/QSFT/providers/Microsoft.Authorization/policyDefinitions/Deny-Subnet-Without-Nsg","policyDefinitionName":"Deny- Subnet-Without-Nsg"},"type":"PolicyViolation"}]
â
â cu azurerm_subnet.example,
â pe linia 11-virtual-network.tf 37, în resursa „azurerm_subnet” „exemplu”:
â 37: resursa „azurerm_subnet” „exemplu” {