azure - Bicep/ARM 创建存储帐户,其端点链接到已创建的 A 记录的现有 DNS 区域

标签 azure azure-resource-manager azure-rm-template azure-bicep

我目前正在尝试创建一个 Bicep 模板,该模板将部署一个存储帐户,将其限制到适当的现有 vnet,并部署一个专用终结点并将其链接到我们的现有私有(private) 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'
  
}

最佳答案

这是一个使用 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 记录。

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

关于azure - Bicep/ARM 创建存储帐户,其端点链接到已创建的 A 记录的现有 DNS 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66910040/

相关文章:

azure-resource-manager - DependsOn 在 ARM 模板中失败

azure - 通过 ARM 模板将读取器角色分配给存储帐户时遇到问题

azure - ARM 模板 : conditionally add to array

azure - 导出 Azure Web 应用程序的 AppSettings 的简单方法?

azure - 使用 Azure Bicep 进行 Azure EventGrid 订阅的 Webhook Url 失败

c# - 使用 Owin 对 Azure AD 用户进行身份验证后,如何以该用户身份静默访问 CRM Online Web API?

javascript - 如何在 Web 应用程序中使用 Javascript 安全地访问 Windows Azure 移动服务?

azure - 通过 ARM 模板将节点池添加到现有 AKS 集群

asp.net-mvc-3 - Azure 网站将公共(public) IP 地址传递到支付网关

ios - 使用 ADAL 进行身份验证 - 注销问题