ฉันมีบล็อกการทำงานของ 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" "ตัวอย่าง" {