0

好的。

所以我不熟悉将基础架构部署到 Azure。

我确实了解基础知识。

我的任务是在 Azure 中创建“Web 层”、“中间层机器”和“数据库服务器”。我可能正在为这些使用本地术语……也许它们映射到 Azure。

我正在使用应用服务计划和应用服务。窗户有味道。

我也非常喜欢 terraform,但我认为这个问题与 terraform 无关。(terraform 只是在 Azure 中创建必要对象的更好方法,或者这是我的新手理解)。

所以现在,我已经能够创造。

应用服务(这将是我的“网络服务器”)。我将调用此 AppServiceWT。

应用服务(这将是我的“中间层”)。我将调用此 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" {}

所以我有“部分”(我认为???)。

所以我现在的障碍是。

我在做什么来保护网络流量。

要求:

中间层可以发出请求 sql-server-tier。除了中间层之外,任何东西都无法访问 sql-server-tier。在本地环境中,我们将在 sql-server 上打开端口 1433 以允许流量。

webTier 可以在中间层发出请求。除了 web 层之外,任何东西都无法访问中间层。在本地环境中,我们将在中间层开放端口 80/443 以允许流量。

WebTier 对世界开放。

我错过了什么天蓝色的“物体”?

指向 terraform“任务”(或其他任何名称)的奖励积分。

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

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

提前致谢。

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

我不想维护自己的虚拟机。所以我认为 Azure App-Service-Plan 和 App-Service 是正确的选择。虽然我对 Azure-Functions 和 Logic-Apps 有点熟悉,但我们不想在这个项目中使用它们。

添加更多信息。

我最终尝试使用下面的微软操作方法文章来做一个“hello world”。上面的文章没有中间层,但是一旦我把概念放下来,我想我可以制作一个 web/middle/sql 'hello world'。

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

4

2 回答 2

1

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

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

2.如果您想对我们部署应用程序的网络进行更多控制,我们
可以利用应用程序服务环境,它提供虚拟网络集成功能,帮助您通过网络安全组 (NSG) 限制传入的源 IP 地址。可能曾经可以将它用于前端和中间层。

3.将数据库中允许的IP地址范围列入白名单。在您的情况下,如果除Web应用程序之外的任何其他服务不应访问数据库,那么它应该是前端Web应用程序的IP。

于 2018-07-10T16:11:51.977 回答
0

使用 webapps,您唯一的选择是将 webapp 外部 IP 地址打开到 sql 以便能够相互通信。

webapp 有几个潜在的外部 IP 地址,所以你可以在 sql 上打开它们。只要 azure sql\webapp 位于同一区域,流量就会使用 azure backbone。

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

于 2018-07-10T14:29:09.067 回答