Puncte:0

Cum să setați service_endpoints și delegarea în partea de subrețea a vnet în azure folosind terraform?

drapel cn

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” {

Puncte:1
drapel cn

Verifică documentație - dacă creați subrețele în cadrul azurerm_virtual_network resursă, nu puteți specifica delegații sau puncte finale de serviciu.

Aș sugera să păstrați codul original și să rezolvați problema comenzii de creare a politicii.

Sara June avatar
drapel cn
Politica este aplicată la nivel de organizație și nu poate fi dezactivată. ai putea te rog sa-mi spui daca exista alte optiuni
Sara June avatar
drapel cn
există oricum să se aplice service_delegation la o subrețea după ce ai creat mai întâi subrețeaua? Astfel încât să creez subrețea împreună cu vnet și să aplic delegarea ca bloc separat
drapel cn
Oh, văd situația ta acum! Da, nu sunt sigur dacă există o cale de a evita asta, în afară de schimbarea politicii de management într-o acțiune de audit, mai degrabă decât într-o respingere. Poate altcineva va avea o idee.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.