Udostępnij za pośrednictwem


Konfigurowanie dostępu do sieci prywatnej dla magazynu zaplecza w sieci wirtualnej

Uwaga

Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.

Ten artykuł dotyczy:✅ Standard ✅ Enterprise

W tym artykule wyjaśniono, jak skonfigurować dostęp sieci prywatnej do magazynu zaplecza dla aplikacji w sieci wirtualnej.

Podczas wdrażania aplikacji w wystąpieniu usługi Azure Spring Apps z wstrzyknięciem sieci wirtualnej wystąpienie usługi opiera się na magazynie zaplecza dla skojarzonych zasobów, w tym plików JAR i dzienników. Podczas gdy domyślna konfiguracja kieruje ruch do tego magazynu zaplecza za pośrednictwem sieci publicznej, możesz włączyć funkcję dostępu do magazynu prywatnego. Ta funkcja umożliwia kierowanie ruchu przez sieć prywatną, zwiększenie zabezpieczeń i potencjalnie poprawę wydajności.

Uwaga

Ta funkcja ma zastosowanie tylko do wystąpienia usługi azure Spring Apps z wstrzykniętą usługą.

Przed włączeniem tej funkcji dla wystąpienia usługi Azure Spring Apps upewnij się, że w podsieci środowiska uruchomieniowego usługi znajdują się co najmniej dwa dostępne adresy IP.

Włączenie lub wyłączenie tej funkcji spowoduje zmianę rozpoznawania nazw DNS w magazynie zaplecza. Przez krótki czas mogą wystąpić wdrożenia, które nie mogą nawiązać połączenia z magazynem zaplecza lub nie mogą rozpoznać punktu końcowego podczas aktualizacji.

Po włączeniu tej funkcji magazyn zaplecza jest dostępny tylko prywatnie, więc musisz wdrożyć aplikację w sieci wirtualnej.

Wymagania wstępne

Włączanie dostępu do magazynu prywatnego podczas tworzenia nowego wystąpienia usługi Azure Spring Apps

Podczas tworzenia wystąpienia usługi Azure Spring Apps w sieci wirtualnej użyj następującego polecenia, aby przekazać argument --enable-private-storage-access true w celu włączenia dostępu do magazynu prywatnego. Aby uzyskać więcej informacji, zobacz Wdrażanie usługi Azure Spring Apps w sieci wirtualnej.

az spring create \
    --resource-group "<resource-group>" \
    --name "<Azure-Spring-Apps-instance-name>" \
    --vnet "<virtual-network-name>" \
    --service-runtime-subnet "<service-runtime-subnet>" \
    --app-subnet "<apps-subnet>" \
    --location "<location>" \
    --enable-private-storage-access true

W ramach subskrypcji jest tworzona jeszcze jedna grupa zasobów, która będzie hostować zasoby łącza prywatnego dla wystąpienia usługi Azure Spring Apps. Ta grupa zasobów ma nazwę ap-res_{service instance name}_{service instance region}.

Istnieją dwa zestawy zasobów łącza prywatnego wdrożone w grupie zasobów, z których każda składa się z następujących zasobów platformy Azure:

  • Prywatny punkt końcowy reprezentujący prywatny punkt końcowy konta magazynu zaplecza.
  • Interfejs sieciowy (NIC), który utrzymuje prywatny adres IP w podsieci środowiska uruchomieniowego usługi.
  • Prywatna strefa DNS wdrożona dla sieci wirtualnej z rekordem DNS A utworzonym również dla konta magazynu w tej strefie DNS.

Ważne

Grupy zasobów są w pełni zarządzane przez usługę Azure Spring Apps. Nie usuwaj ręcznie ani nie modyfikuj żadnego zasobu w tych grupach zasobów.

Włączanie lub wyłączanie dostępu do magazynu prywatnego dla istniejącego wystąpienia usługi Azure Spring Apps

Użyj następującego polecenia, aby zaktualizować istniejące wystąpienie usługi Azure Spring Apps, aby włączyć lub wyłączyć dostęp do magazynu prywatnego:

az spring update \
    --resource-group "<resource-group>" \
    --name "<Azure-Spring-Apps-instance-name>" \
    --enable-private-storage-access <true-or-false>

Używanie centralnego rozpoznawania nazw DNS

Scentralizowana architektura zarządzania SYSTEMEM DNS jest udokumentowana w architekturze sieci piasty i szprych w ramach integracji usługi Private Link i DNS na dużą skalę. W tej architekturze wszystkie prywatne strefy DNS są wdrażane i zarządzane centralnie w innej centralnej sieci wirtualnej niż wystąpienie usługi Azure Spring Apps. Jeśli używasz tej architektury, możesz włączyć centralne rozpoznawanie nazw DNS na potrzeby dostępu do magazynu prywatnego, odpowiednio konfigurując ustawienia DNS. Ta konfiguracja gwarantuje, że:

  • Po utworzeniu prywatnego punktu końcowego odpowiednie rekordy DNS są automatycznie dodawane do scentralizowanej prywatnej strefy DNS.
  • Rekordy DNS są zarządzane zgodnie z cyklem życia prywatnego punktu końcowego, co oznacza, że są one automatycznie usuwane po usunięciu prywatnego punktu końcowego.

W poniższych sekcjach opisano sposób włączania centralnego rozpoznawania nazw DNS dla obiektów blob usługi Azure Storage przy użyciu usługi Azure Policy, przy założeniu, że masz już prywatną strefę privatelink.blob.core.windows.net DNS skonfigurowaną w centralnej sieci wirtualnej. Te same zasady dotyczą plików usługi Azure Storage i innych usług platformy Azure, które obsługują usługę Private Link.

Definicja zasad

Oprócz prywatnej strefy DNS należy utworzyć niestandardową definicję usługi Azure Policy. Aby uzyskać więcej informacji, zobacz Samouczek: tworzenie niestandardowej definicji zasad. Ta definicja automatycznie tworzy wymagany rekord DNS w centralnej prywatnej strefie DNS podczas tworzenia prywatnego punktu końcowego.

Następujące zasady są wyzwalane podczas tworzenia zasobu prywatnego punktu końcowego z usługą specyficzną dla groupIdusługi. Jest groupId to identyfikator grupy uzyskanej ze zdalnego zasobu lub usługi, z którą powinien się połączyć ten prywatny punkt końcowy. W tym przykładzie obiekt groupId blob usługi Azure Storage to blob. Aby uzyskać więcej informacji na groupId temat innych usług platformy Azure, zobacz tabele w prywatnych wartościach strefy DNS prywatnego punktu końcowego platformy Azure w kolumnie Podźródło .

Następnie zasady wyzwalają wdrożenie privateDNSZoneGroup w prywatnym punkcie końcowym, który kojarzy prywatny punkt końcowy z prywatną strefą DNS określoną jako parametr. W poniższym przykładzie identyfikator zasobu prywatnej strefy DNS to /subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/privateEndpoints"
        },
        {
          "value": "[contains(resourceGroup().name, 'ap-res_')]",
          "equals": "true"
        },
        {
          "count": {
            "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
            "where": {
              "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
              "equals": "blob"
            }
          },
          "greaterOrEquals": 1
        }
      ]
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
        "evaluationDelay": "AfterProvisioningSuccess",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "parameters": {
                "privateDnsZoneId": {
                  "type": "string"
                },
                "privateEndpointName": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                }
              },
              "resources": [
                {
                  "name": "[concat(parameters('privateEndpointName'), '/deployedByPolicy')]",
                  "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
                  "apiVersion": "2020-03-01",
                  "location": "[parameters('location')]",
                  "properties": {
                    "privateDnsZoneConfigs": [
                      {
                        "name": "storageBlob-privateDnsZone",
                        "properties": {
                          "privateDnsZoneId": "[parameters('privateDnsZoneId')]"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "parameters": {
              "privateDnsZoneId": {
                "value": "[parameters('privateDnsZoneId')]"
              },
              "privateEndpointName": {
                "value": "[field('name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
    "privateDnsZoneId": {
      "type": "String",
      "metadata": {
        "displayName": "privateDnsZoneId",
        "description": null,
        "strongType": "Microsoft.Network/privateDnsZones"
      }
    }
  }
}

Przypisanie zasad

Po wdrożeniu definicji zasad przypisz zasady w subskrypcji obsługującej wystąpienia usługi Azure Spring Apps i określ centralną prywatną strefę DNS jako parametr .

Centralna prywatna strefa DNS i wystąpienie usługi Azure Spring Apps mogą być hostowane w różnych subskrypcjach. W takim przypadku należy pamiętać o przypisaniu roli współautora strefy Prywatna strefa DNS w subskrypcji i grupie zasobów, w której prywatne strefy DNS są hostowane do tożsamości zarządzanej utworzonej przez DeployIfNotExists przypisanie zasad, które jest odpowiedzialne za tworzenie i zarządzanie rekordem DNS prywatnego punktu końcowego w prywatnej strefie DNS. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie tożsamości zarządzanej w temacie Korygowanie niezgodnych zasobów za pomocą usługi Azure Policy.

Po zakończeniu konfiguracji po włączeniu lub wyłączeniu funkcji dostępu do magazynu prywatnego rekordy DNS dla prywatnych punktów końcowych są automatycznie rejestrowane — i usuwane po usunięciu prywatnego punktu końcowego — w odpowiedniej prywatnej strefie DNS.

Dodatkowe koszty

Wystąpienie usługi Azure Spring Apps nie powoduje naliczania opłat za tę funkcję. Opłaty są jednak naliczane za zasoby łącza prywatnego hostowane w ramach subskrypcji, które obsługują tę funkcję. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Private Link i Cennik usługi Azure DNS.

Używanie niestandardowych serwerów DNS

Jeśli używasz niestandardowego serwera systemu nazw domen (DNS), a adres IP 168.63.129.16 usługi Azure DNS nie jest skonfigurowany jako nadrzędny serwer DNS, należy ręcznie powiązać wszystkie rekordy DNS prywatnych stref DNS pokazanych w grupie ap-res_{service instance name}_{service instance region} zasobów, aby rozpoznać prywatne adresy IP.

Następne kroki