1

我目前正在尝试创建一个 Bicep 模板,该模板将部署一个存储帐户,将其限制在适当的现有 vnet 中,并部署一个私有终结点并将其链接到不同订阅中的现有私有 DNS 区域,并创建 A 记录。目前,该模板会将存储帐户部署到适当的 vnet 并部署一个新的专用端点,但我不知道如何让它链接到现有的专用 dns 区域并创建 A 记录。任何帮助将不胜感激。谢谢!

resource stg 'Microsoft.Storage/storageAccounts@2020-08-01-preview' = {
  name: name
  location: location
  sku: {
    name: storageSku
  }
  kind: 'StorageV2'
  properties: {
    minimumTlsVersion: 'TLS1_2'
    allowBlobPublicAccess: true
    networkAcls: {
      bypass: 'AzureServices'
      virtualNetworkRules: [
        {
          id: '${}'
          action: 'Allow'
        }
      ]
      ipRules: []
      defaultAction: 'Deny'
    }
  }
}
resource privateEndpointName_resource 'Microsoft.Network/privateEndpoints@2019-04-01'  = {
  name: privateEndpointName
  location: location
  properties: {
    privateLinkServiceConnections: [
      {
        name: privateEndpointName
        properties: {
         
          privateLinkServiceId: resourceId('Microsoft.Storage/storageAccounts', stg.name)
          groupIds: [
            groupId
          ]
        }
      }
    ]
    
    manualPrivateLinkServiceConnections: []
    subnet: {
      
      id: '${}'
    }
  }
}

resource privateDNSZone_name 'Microsoft.Network/privateDnsZones@2018-09-01' existing  = {
  scope: resourceGroup(,  )
  name: privateDNSZone_name_var

 
}

resource privateDNSZone_name_vnetName_link 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2018-09-01' existing = {
  scope: resourceGroup(,  )
  name: '${}'
}

resource privateEndpointName_default 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-03-01' existing = {
  name: '${privateEndpointName_resource.name}/default'
  
}
4

1 回答 1

3

这是一个使用 sqlserver privatelink 的示例,但存储应该类似:

resource privateEndpoint 'Microsoft.Network/privateEndpoints@2020-06-01' = {
  name: '${sqlServer.name}-plink'
  location: location
  properties: {
    subnet: {
      id: privateLinkSnetId
    }
    privateLinkServiceConnections: [
      {
        name: '${sqlServer.name}-plink'
        properties: {
          privateLinkServiceId: sqlServer.id
          groupIds: [
            'sqlServer'
          ]
        }
      }
    ]
  }
}

resource privateDNSZoneGroup 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-06-01' = {
  name: '${privateEndpoint.name}/default'
  properties: {
    privateDnsZoneConfigs: [
      {
        name: 'privatelink-database-windows-net'
        properties: {
          privateDnsZoneId: privateLinkDnsZoneId
        }
      }
    ]
  }
}

但是请记住,没有指向存储帐户的链接 - 每个服务:blob、队列、表、文件都有自己的链接。

当您将私有端点链接到 dns 区域时,应自动创建 A 记录。

但是,如果您想要跨资源组或跨订阅部署,则需要使用模块 - 您不能将资源部署到一个文件(模块)中的不同范围,但您可以使该资源组部署创建另一个部署到相同或不同订阅中的不同资源组。

于 2021-04-04T08:33:04.190 回答