在Azure中保护“分层”应用程序

时间:2018-07-10 14:22:34

标签: azure azure-web-sites terraform terraform-provider-azure

好的。

因此,我刚开始将 基础结构 部署到Azure。

我了解基本知识。

我受命在Azure中创建“ Web层”,“中间层计算机”和“数据库服务器”。我可能会使用本地术语。...也许它们映射到Azure。

我正在使用App-Service-Plan和App-Service。 Windows风格。

我也非常喜欢terraform,但是我认为这个问题并不取决于terraform。 (terraform只是在Azure中创建必要对象的更简单的方法,这是我的新手理解。)

现在,我已经能够创建。

App-Service(这将是我的“网络服务器”)。我将其称为AppServiceWT。

App-Service(这将是我的“中间层”)。我将其称为AppServiceMT。

还有Sql-Server / Sql-Server数据库。

我已经能够使用terraform风格的脚本来创建其中的一些内容。

resource "azurerm_resource_group" "testrg" {}

..

resource "azurerm_app_service_plan" "testaspwt" {
  name                = "some-app-service-plan-for-webtier"

  sku {
    tier = "Standard"
    size = "S1"
  }
}

resource "azurerm_app_service" "testaswt" {
    name                = "AppServiceWT_SomeGlobalUniqueName"
}

..

resource "azurerm_app_service_plan" "testaspmt" {
  name                = "some-app-service-plan-for-middletier"

  sku {
    tier = "Standard"
    size = "S1"
  }
}

resource "azurerm_app_service" "testasmt" {
    name                = "AppServiceMT_SomeGlobalUniqueName"
}

..

resource "azurerm_sql_server" "primary_azurerm_sql_server" {}

resource "azurerm_sql_database" "primary_azurerm_sql_database" {}

所以我有“零件”(我认为是???)。

所以我现在的障碍是

我该如何保护网络流量。

要求:

middleTier可以发出sql-server-tier请求。 sql-server-tier除中间层外不可访问。在本地环境中,我们将在sql-server上打开端口1433以允许流量。

webTier可以使请求成为中间层。除了网络层之外,其他任何人都无法访问中间层。在本地环境中,我们将在中间层开放端口80/443以允许流量。

WebTier向世界开放。

我缺少什么天蓝色的“物体”?

用于指向地形“任务”(或称为“任务”的物体)的奖励点。

https://www.terraform.io/docs/providers/azurerm/index.html

但是,是的,我正在向SOF寻求帮助,以填补我脑海中的“交通”和“安全网络”空白。

谢谢。

如果我问错了问题,请告诉我。

我不想维护自己的VM。因此,我认为Azure App-Service-Plan和App-Service是正确的选择。虽然我对Azure函数和逻辑应用有点熟悉,但我们不想在本项目中使用它们。

要添加更多信息。

我最终尝试使用下面的Microsoft How-to文章来做一个“ hello world”。上面的文章没有中间层,但是一旦我掌握了这些概念,我认为我可以创建一个web / middle / sql“ hello world”。

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnetcore-sqldb

2 个答案:

答案 0 :(得分:1)

有几种方法可以保护正在创建的应用程序服务中的应用程序-

1。我相信您已经在执行此操作或不确定是否需要它,但是     我们可以验证对网络应用程序的访问权限(使用OAuth2.0等。)。

2。如果您想更好地控制我们部署应用程序的网络,我们
    可以利用提供以下内容的应用服务环境     虚拟网络集成功能可帮助您限制传入     通过网络安全组(NSG)的源IP地址。     大概一次可以将其用于前端和中间层。

3。在数据库中白名单列出允许的IP地址范围。     其他任何服务都不应访问其他数据库     而不是Web应用程序,那么它应该是前端Web应用程序的IP。

答案 1 :(得分:0)

对于webapps,您唯一的选择是为sql打开webapp外部ip地址,以便能够相互通信。

webapp有几个潜在的外部ip地址,可以在sql上打开它们。只要azure sql \ webapp位于同一区域,流量将使用azure背骨。

在中间层,您应该使用IP限制(web.config可以做到这一点)。