Przewodnik migracji własnej bramy

DOTYCZY: Developer | Premium

W tym artykule wyjaśniono, jak przeprowadzić migrację istniejących wdrożeń własnej bramy do własnej bramy w wersji 2.

Ważne

Obsługa samoobsługowej bramy usługi Azure API Management w wersji 0 i wersji 1 obrazów kontenerów kończy się 1 października 2023 r. wraz z odpowiednim interfejsem API konfiguracji w wersji 1. Dowiedz się więcej w naszej dokumentacji dotyczącej wycofywania

Co nowego?

W miarę jak staramy się ułatwić klientom wdrażanie własnej bramy, wprowadziliśmy nowy interfejs API konfiguracji, który usuwa zależność od usługi Azure Storage, chyba że używasz inspektora interfejsu API lub limitów przydziału.

Nowy interfejs API konfiguracji umożliwia klientom łatwiejsze wdrażanie i wdrażanie własnej bramy w istniejącej infrastrukturze.

Wprowadziliśmy nowe tagi obrazów kontenera, aby umożliwić klientom wybór najlepszego sposobu wypróbowania bramy i wdrożenia jej w środowisku produkcyjnym.

Aby ułatwić klientom uruchamianie bramy w środowisku produkcyjnym, rozszerzyliśmy nasze wskazówki dotyczące produkcji, aby uwzględnić sposób automatycznego skalowania bramy i wdrożyć ją w celu zapewnienia wysokiej dostępności w klastrze Kubernetes.

Dowiedz się więcej o łączności bramy, naszych nowych wymaganiach dotyczących infrastruktury i o tym, co się stanie, jeśli łączność zostanie utracona w tym artykule.

Wymagania wstępne

Przed przeprowadzeniem migracji do własnej bramy w wersji 2 należy upewnić się, że infrastruktura spełnia wymagania.

Migrowanie do własnej bramy w wersji 2

Migracja z własnej bramy w wersji 2 wymaga wykonania kilku małych kroków:

  1. Korzystanie z nowego obrazu kontenera
  2. Korzystanie z nowego interfejsu API konfiguracji
  3. Spełnianie minimalnych wymagań dotyczących zabezpieczeń

Obraz kontenera

Zmień tag obrazu w skryptach wdrażania, aby używać 2.0.0 lub nowszych.

Alternatywnie wybierz jeden z innych tagów obrazów kontenera.

Pełną listę dostępnych tagów można znaleźć tutaj lub znaleźć w usłudze Docker Hub.

Korzystanie z nowego interfejsu API konfiguracji

Aby przeprowadzić migrację do własnej bramy w wersji 2, klienci muszą używać nowego interfejsu API konfiguracji w wersji 2.

Obecnie usługa Azure API Management udostępnia następujące interfejsy API konfiguracji dla własnej bramy:

Usługa konfiguracji URL Obsługiwane Wymagania
v2 {name}.configuration.azure-api.net Tak Link
v1 {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview Nie. Link

Klient musi używać nowego interfejsu API konfiguracji w wersji 2, zmieniając skrypty wdrażania, aby używać nowego adresu URL i spełniać wymagania dotyczące infrastruktury.

Ważne

  • Nazwa hosta DNS musi być rozpoznawalna dla adresów IP, a odpowiednie adresy IP muszą być osiągalne. Może to wymagać dodatkowej konfiguracji w przypadku korzystania z prywatnej sieci DNS, wewnętrznej sieci wirtualnej lub innych wymagań infrastruktury.

Zabezpieczenia

Dostępne zestawy szyfrowania TLS

Podczas uruchamiania brama hostowana samodzielnie w wersji 2.0 używała tylko podzestawu zestawów szyfrowania używanych w wersji 1.x. Od wersji 2.0.4 przywróciliśmy wszystkie obsługiwane pakiety szyfrowania w wersji 1.x.

Więcej informacji na temat używanych zestawów szyfrowania można uzyskać w tym artykule lub użyć wersji 2.1.1 do kontrolowania używanych zestawów szyfrowania.

Spełnianie minimalnych wymagań dotyczących zabezpieczeń

Podczas uruchamiania brama self-hosted przygotuje certyfikaty urzędu certyfikacji, które będą używane. Wymaga to uruchomienia kontenera bramy z co najmniej identyfikatorem użytkownika 1001 i nie może używać systemu plików tylko do odczytu.

Podczas konfigurowania kontekstu zabezpieczeń dla kontenera na platformie Kubernetes wymagane są co najmniej następujące elementy:

securityContext:
  runAsNonRoot: true
  runAsUser: 1001
  readOnlyRootFilesystem: false

Jednak w przypadku 2.0.3 bramy hostowanej samodzielnie można uruchomić jako element inny niż główny na platformie Kubernetes, dzięki czemu klienci mogą bezpieczniej uruchomić bramę.

Oto przykład kontekstu zabezpieczeń dla bramy hostowanej samodzielnie:

securityContext:
  allowPrivilegeEscalation: false
  runAsNonRoot: true
  runAsUser: 1001       # This is a built-in user, but you can use any user ie 1000 as well
  runAsGroup: 2000      # This is just an example
  privileged: false
  capabilities:
    drop:
    - all

Ostrzeżenie

Uruchamianie własnej bramy z systemem plików tylko do odczytu (readOnlyRootFilesystem: true) nie jest obsługiwane.

Ocenianie wpływu za pomocą usługi Azure Advisor

Aby ułatwić migrację, wprowadziliśmy nowe zalecenia usługi Azure Advisor:

  • Zalecenie dotyczące własnej bramy w wersji 2 — identyfikuje wystąpienia usługi Azure API Management, w których zidentyfikowano użycie własnej bramy w wersji 0.x lub 1.x.
  • Użyj interfejsu API konfiguracji w wersji 2 dla rekomendacji dotyczących własnych bram — identyfikuje wystąpienia usługi Azure API Management, w których zidentyfikowano użycie interfejsu API konfiguracji w wersji 1 dla własnej bramy.

Zdecydowanie zalecamy klientom używanie przeglądu "Wszystkie Rekomendacje" w usłudze Azure Advisor w celu określenia, czy migracja jest wymagana. Użyj opcji filtrowania, aby sprawdzić, czy istnieje jedna z powyższych rekomendacji.

Identyfikowanie wystąpień usługi Azure API Management przy użyciu usługi Azure Resource Graph

To zapytanie usługi Azure Resource Graph zawiera listę wystąpień usługi Azure API Management, których to dotyczy:

AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
    recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
    instanceName = properties.impactedValue,
    recommendationImpact = properties.impact,
    recommendationMetadata = properties.extendedProperties,
    lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"

Znane ograniczenia

Oto lista znanych ograniczeń dla własnej bramy w wersji 2:

  • Interfejs API konfiguracji w wersji 2 nie obsługuje niestandardowych nazw domen

Następne kroki