Score:0

วิธีตั้งค่า service_endpoints และการมอบหมายในส่วน subnet ของ vnet ในสีฟ้าโดยใช้ terraform

ธง cn

ฉันมีบล็อกการทำงานของ terraform vnet, subnet และ NSG ของมัน

ผู้ให้บริการ "azurerm" {
  คุณสมบัติ {}
}

ทรัพยากร "azurerm_resource_group" "ตัวอย่าง" {
  ชื่อ = "ทรัพยากรตัวอย่าง"
  ที่ตั้ง = "ยุโรปตะวันตก"
}

ทรัพยากร "azurerm_virtual_network" "ตัวอย่าง" {
  ชื่อ = "ตัวอย่าง vn"
  สถานที่ = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  address_space = ["10.0.0.0/16"]
}

ทรัพยากร "azurerm_subnet" "ตัวอย่าง" {
  ชื่อ = "ตัวอย่าง-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"]
  การมอบหมาย {
    ชื่อ = "fs"
    บริการ_delegation {
      ชื่อ = "Microsoft.DBforPostgreSQL/flexibleServers"
      การกระทำ = [
        "Microsoft.Network/virtualNetworks/subnets/join/action",
      ]
    }
  }
}
ทรัพยากร "azurerm_private_dns_zone" "ตัวอย่าง" {
  ชื่อ = "example.postgres.database.azure.com"
  resource_group_name = azurerm_resource_group.example.name
}

ทรัพยากร "azurerm_private_dns_zone_virtual_network_link" "ตัวอย่าง" {
  ชื่อ = "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
}

ทรัพยากร "azurerm_postgresql_flexible_server" "ตัวอย่าง" {
  ชื่อ = "ตัวอย่าง psqlflexibleserver2022"
  resource_group_name = azurerm_resource_group.example.name
  สถานที่ = azurerm_resource_group.example.location
  รุ่น = "13"
  delegated_subnet_id = azurerm_subnet.example.id
  private_dns_zone_id = azurerm_private_dns_zone.example.id
  administrator_login = "โพสต์เกรส"
  administrator_password = "รหัสผ่าน@2020"
  โซน = "1"

  storage_mb = 131072

  sku_name = "GP_Standard_D2s_v3"
  ขึ้นอยู่กับ = [azurerm_private_dns_zone_virtual_network_link.example]

}

แต่ฉันได้รับการสร้าง nsg ก่อนข้อผิดพลาดนโยบายเครือข่ายย่อย ดังนั้นเปลี่ยนการสร้างเครือข่ายย่อยดังต่อไปนี้

# สร้างเครือข่ายเสมือน
ทรัพยากร "azurerm_virtual_network" "aksvnet" {
  ชื่อ = "aks-เครือข่าย"
  ตำแหน่ง = azurerm_resource_group.aks_rg.location
  resource_group_name = azurerm_resource_group.aks_rg.name
  address_space = ["10.0.0.0/8"]

  เครือข่ายย่อย {
    ชื่อ = "aks-default-subnet"
    address_prefix = "10.240.0.0/16"
    security_group = azurerm_network_security_group.example.id
  }
  เครือข่ายย่อย {
    ชื่อ = "aks-postgres-ซับเน็ต"
    address_prefix = "10.230.2.0/24"
    security_group = azurerm_network_security_group.example.id
    service_endpoints = ["Microsoft.Storage"]
       การมอบหมาย {
     ชื่อ = "fs"
     บริการ_delegation {
       ชื่อ = "Microsoft.DBforPostgreSQL/flexibleServers"
       การกระทำ = [
         "Microsoft.Network/virtualNetworks/subnets/join/action",
       ]
     }
   }
  }

}

ทรัพยากร "azurerm_network_security_group" "ตัวอย่าง" {
  ชื่อ = "ตัวอย่าง nsg"
  ตำแหน่ง = azurerm_resource_group.aks_rg.location
  resource_group_name = azurerm_resource_group.aks_rg.name
  security_rule {
    ชื่อ = "test123"
    ลำดับความสำคัญ = 100
    ทิศทาง = "ขาเข้า"
    การเข้าถึง = "อนุญาต"
    โปรโตคอล = "TCP"
    source_port_range = "*"
    destination_port_range = "*"
    source_address_prefix = "*"
    ปลายทาง_ที่อยู่_คำนำหน้า = "*"
  }
}

แต่ได้รับข้อผิดพลาดด้านล่าง

โปรดแนะนำวิธีการแก้ไข

 ข้อผิดพลาด: อาร์กิวเมนต์ที่ไม่รองรับ
â
â บน 11-virtual-network.tf บรรทัดที่ 17 ในทรัพยากร "azurerm_virtual_network" "aksvnet":
â 17: service_endpoints = ["Microsoft.Storage"]
â
â ไม่คาดว่าจะมีการโต้แย้งชื่อ "service_endpoints" ที่นี่
âµ
â·
ข้อผิดพลาด: ประเภทบล็อกที่ไม่รองรับ
â
â บน 11-virtual-network.tf บรรทัดที่ 18 ในทรัพยากร "azurerm_virtual_network" "aksvnet":
18: การมอบหมาย {
â
â ไม่คาดว่าจะมีการบล็อกประเภท "การมอบหมาย" ที่นี่

แม้ว่าจะใช้แนวทางด้านล่าง ฉันก็ยังได้รับข้อผิดพลาดเกี่ยวกับนโยบาย

# สร้างเครือข่ายเสมือน
ทรัพยากร "azurerm_virtual_network" "aksvnet" {
  ชื่อ = "aks-เครือข่าย"
  ตำแหน่ง = azurerm_resource_group.aks_rg.location
  resource_group_name = azurerm_resource_group.aks_rg.name
  address_space = ["10.0.0.0/8"]

  เครือข่ายย่อย {
    ชื่อ = "aks-default-subnet"
    address_prefix = "10.240.0.0/16"
    security_group = azurerm_network_security_group.example.id
  }
}

ทรัพยากร "azurerm_network_security_group" "ตัวอย่าง" {
  ชื่อ = "ตัวอย่าง nsg"
  ตำแหน่ง = azurerm_resource_group.aks_rg.location
  resource_group_name = azurerm_resource_group.aks_rg.name
  security_rule {
    ชื่อ = "test123"
    ลำดับความสำคัญ = 100
    ทิศทาง = "ขาเข้า"
    การเข้าถึง = "อนุญาต"
    โปรโตคอล = "TCP"
    source_port_range = "*"
    destination_port_range = "*"
    source_address_prefix = "*"
    ปลายทาง_ที่อยู่_คำนำหน้า = "*"
  }
}

ทรัพยากร "azurerm_subnet_network_security_group_association" "ตัวอย่าง" {
  subnet_id = azurerm_subnet.example.id
  network_security_group_id = azurerm_network_security_group.example.id
}

ทรัพยากร "azurerm_subnet" "ตัวอย่าง" {

  virtual_network_name = azurerm_virtual_network.aksvnet.name
  ชื่อ = "aks-postgres-ซับเน็ต"
  resource_group_name = azurerm_resource_group.aks_rg.name
  address_prefixes = ["10.230.2.0/24"]
  service_endpoints = ["Microsoft.Storage"]
  การมอบหมาย {
    ชื่อ = "fs"
    บริการ_delegation {
      ชื่อ = "Microsoft.DBforPostgreSQL/flexibleServers"
      การกระทำ = [
        "Microsoft.Network/virtualNetworks/subnets/join/action",
      ]
    }
  }
  ขึ้นอยู่กับ = [azurerm_virtual_network.aksvnet, azurerm_network_security_group.example]
}

ฉันได้รับข้อผิดพลาดดังต่อไปนี้

er-delete-dev"): network.SubnetsClient#CreateOrUpdate: การส่งคำขอล้มเหลว: StatusCode=403 -- ข้อผิดพลาดดั้งเดิม:

รหัส = "RequestDisallowedByPolicy" ข้อความ = "ทรัพยากร 'aks-postgres-subnet' ไม่ได้รับอนุญาตตามนโยบาย ตัวระบุนโยบาย: '[{"policyAssignment":{"name":"Deny-Subnet-Without-Nsg","id":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones/providers/Microsoft.Authorization/policyAssignments/Deny- Subnet-Without-Nsg"},"policyDefinition":{"name":"ซับเน็ต ควรมีกลุ่มความปลอดภัยเครือข่าย ","id":"/providers/Microsoft.Management/managementGroups/QSFT/providers/Microsoft.Authorization/policyDefinitions/Deny-Subnet-Without-Nsg"}}]'" เป้าหมาย = "aks-postgres-ซับเน็ต" MoreInfo=[{"info":{"evaluationDetails":{"evaluatedExpressions":[{"expression":"type","expressionKind":"Field","expressionValue":"Microsoft.Network/virtualNetworks/subnets", "โอเปอเรเตอร์":"เท่ากับ","เส้นทาง":"ประเภท","ผลลัพธ์":"จริง","targetValue":"Microsoft.Network/virtualNetworks/subnets"},{"expression":"Microsoft.Network/virtualNetworks /subnets/networkSecurityGroup.id","expressionKind":"Field","operator":"มีอยู่","path":"properties.networkSecurityGroup.id","result":"True","targetValue":"false "}]},"policyAssignmentDisplayName":"Deny-Subnet-Without-Nsg","policyAssignmentId":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones/providers/Microsoft.Authorization/policyAssignments/Deny-Subnet-Without -Nsg","policyAssignmentName":"Deny-Subnet-Without-Nsg","policyAssignmentScope":"/providers/Microsoft.Management/managementGroups/QSFT-landingzones","policyDefinitionDisplayName":"Subnets ควรมีกลุ่มความปลอดภัยเครือข่าย ","policyDefinitionEffect":"ปฏิเสธ","policyDefinitionId":"/providers/Microsoft.Management/managementGroups/QSFT/providers/Microsoft.Authorization/policyDefinitions/Deny-Subnet-Without-Nsg","policyDefinitionName":"Deny- Subnet-Without-Nsg"},"type":"PolicyViolation"}] â â กับ azurm_subnet.example â บน 11-virtual-network.tf บรรทัดที่ 37 ในทรัพยากร "azurerm_subnet" "example": â 37: ทรัพยากร "azurerm_subnet" "ตัวอย่าง" {

Score:1
ธง cn

ตรวจสอบ เอกสาร - หากคุณสร้างเครือข่ายย่อยภายใน azurerm_virtual_network ทรัพยากร คุณไม่สามารถระบุการมอบหมายหรือปลายทางบริการ

ฉันขอแนะนำให้เก็บรหัสเดิมของคุณและแก้ไขปัญหาการสั่งซื้อการสร้างนโยบาย

Sara June avatar
cn flag
มีการใช้นโยบายในระดับองค์กร และไม่สามารถปิดใช้งานได้ คุณช่วยกรุณาแจ้งให้เราทราบหากมีตัวเลือกอื่น
Sara June avatar
cn flag
มีอยู่แล้วที่จะใช้ service_delegation กับซับเน็ตหลังจากสร้างซับเน็ตก่อนหรือไม่ ดังนั้นฉันจะสร้างเครือข่ายย่อยพร้อมกับ vnet และใช้การมอบหมายเป็นบล็อกแยกต่างหาก
cn flag
โอ้ ฉันเห็นสถานการณ์ของคุณแล้ว! ใช่ ฉันไม่แน่ใจว่ามีวิธีแก้ไขปัญหานี้หรือไม่ ฉันเกรงว่านอกเหนือจากการเปลี่ยนนโยบายการจัดการเป็นการดำเนินการตรวจสอบแทนการปฏิเสธ อาจจะมีคนอื่นมีความคิด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา