Konfigurowanie funkcji sieci i zabezpieczeń

Ukończone

Kluczowe funkcje sieci i zabezpieczeń w usłudze Azure Database for MySQL — serwer elastyczny obejmują kontrolę dostępu, łączność, obsługę identyfikatora Entra firmy Microsoft, scentralizowaną platformę do zarządzania tożsamościami, rolami i uprawnieniami. Serwery elastyczne MySQL również domyślnie szyfrują wszystkie dane przesyłane i umożliwiają szyfrowanie danych magazynowanych przy użyciu kluczy zarządzanych przez platformę Azure lub klienta.

Sieć

Konfigurowanie dostępu do sieci

Podczas tworzenia serwera elastycznego MySQL można wybrać dostęp prywatny za pośrednictwem sieci wirtualnej platformy Azure lub dostępu publicznego dla dozwolonych adresów IP z opcjonalnym prywatnym punktem końcowym. Po ukończeniu sekcji Podstawowe wybierz pozycję Dalej: Sieć, a następnie wybierz pozycję Dostęp publiczny i Prywatny punkt końcowy lub Dostęp prywatny:

Zrzut ekranu przedstawiający wybór łączności sieciowej między dostępem publicznym i prywatnym.

Jeśli wybierzesz pozycję Dostęp publiczny i Prywatny punkt końcowy, możesz wybrać, czy udostępnić bazę danych w Internecie. Jeśli opcja Zezwalaj na dostęp publiczny nie jest zaznaczona, baza danych jest dostępna tylko przez prywatne punkty końcowe i nie korzysta z publicznego adresu IP. Aby zachować publiczny dostęp do Internetu, wybierz pozycję Zezwalaj na dostęp publiczny, a następnie w sekcji Reguły zapory dodaj adresy IP lub zakresy do listy dozwolonych. Aby dodać wszystkie usługi platformy Azure w sieci platformy Azure do listy dozwolonych, wybierz pozycję Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na tym serwerze.

Zrzut ekranu przedstawiający wybór łączności sieciowej dla dostępu publicznego oraz listę reguł zapory.

Oprócz dostępu publicznego lub zamiast publicznego można skonfigurować prywatny punkt końcowy. Ponieważ firma Wingtip Toys planuje obsługę sieci VPN między siecią lokalną a platformą Azure, pominiemy prywatny punkt końcowy. Aby uzyskać więcej informacji na temat konfigurowania łącza prywatnego, zobacz dokumentację referencyjną.

Aby zezwolić tylko na połączenia z sieci wirtualnej, wybierz pozycję Dostęp prywatny, a następnie wybierz odpowiednią subskrypcję, sieć wirtualną i podsieć. Jeśli nie wybierzesz sieci wirtualnej i podsieci, zostanie utworzona nowa sieć i podsieć.

Zrzut ekranu przedstawiający ustawienia sieci wirtualnej, w tym subskrypcję, sieć wirtualną i podsieć.

Na koniec należy skonfigurować integrację Prywatna strefa DNS, aby nawiązać połączenie z w pełni kwalifikowaną nazwą domeny zamiast adresu IP, co może ulec zmianie. Wybierz istniejącą strefę DNS lub pozwól platformie Azure utworzyć nową strefę.

Zrzut ekranu przedstawiający konfigurację integracji prywatnej usługi DNS.

Konfigurowanie szyfrowania podczas przesyłania

Domyślnie serwery elastyczne MySQL akceptują tylko szyfrowane połączenia przy użyciu protokołu TLS (Transport Layer Security) w wersji 1.2. Jeśli tworzysz nowe aplikacje, które obsługują protokół TLS 1.3, zaleca się obsługę lub nawet wymuszanie nowszej wersji. W tym celu wykonaj następujące kroki:

  1. W witrynie Azure Portal wybierz serwer elastyczny MySQL, z którym chcesz nawiązać połączenie przy użyciu protokołu TLS 1.3.
  2. W sekcji Parametry serwera wprowadź tls_version na pasku wyszukiwania w filtrach Pierwsze lub Wszystkie.
  3. Z listy rozwijanej WARTOŚĆ wybierz pozycję TLSv1.2 i/lub TLSv1.3, a następnie wybierz pozycję Zapisz. Zrzut ekranu przedstawiający server-parameters-tls-version.

Można również zezwolić na połączenia niezaszyfrowane, ustawiając wartość parametru require_secure_transport na wyłączone, choć nie jest to zalecane, chyba że jest to konieczne.

Microsoft Defender for Cloud

Microsoft Defender dla Chmury to ekonomiczny sposób wykrywania i powiadamiania o nietypowych lub podejrzanych działaniach bazy danych. Aby ją włączyć, wykonaj następujące kroki:

  1. W witrynie Azure Portal wybierz serwer elastyczny MySQL, który chcesz chronić za pomocą usługi Defender.

  2. W sekcji Microsoft Defender dla Chmury wybierz pozycję Włącz.

Zrzut ekranu przedstawiający wybór w celu włączenia Microsoft Defender dla Chmury.

Aby dowiedzieć się więcej o usłudze Defender, w tym o sposobie konfigurowania alertów, zobacz dokumentację referencyjną.

Włączanie i łączenie przy użyciu uwierzytelniania identyfikatora Entra firmy Microsoft

Przed rozpoczęciem potrzebna jest odpowiednio skonfigurowana tożsamość zarządzana przez użytkownika (UMI). Tożsamość musi mieć rolę Czytelnicy katalogu lub te indywidualne uprawnienia: User.Read.All, GroupMember.Read.All i Application.Read.ALL. Aby uzyskać więcej informacji na temat dodawania tych uprawnień, zobacz ten samouczek.

Aby włączyć uwierzytelnianie identyfikatora Entra firmy Microsoft dla elastycznego serwera usługi Azure Database for MySQL, wykonaj następujące kroki:

  1. W witrynie Azure Portal wybierz serwer elastyczny MySQL, z którym chcesz nawiązać połączenie przy użyciu identyfikatora Entra firmy Microsoft.

  2. W sekcji Zabezpieczenia wybierz pozycję Uwierzytelnianie.

    Zrzut ekranu przedstawiający konfigurację identyfikatora Entra firmy Microsoft.

  3. W nagłówku Przypisz dostęp do wybierz opcję: Tylko uwierzytelnianie firmy Microsoft Entra (powoduje wyłączenie natywnego logowania użytkownika/hasła mySQL) lub uwierzytelnianie MySQL i Microsoft Entra (zezwala na natywne logowania MySQL i Microsoft Entra).

  4. Pod nagłówkiem Wybierz tożsamość wybierz wskaźnik UMI wymieniony wcześniej w tej lekcji.

  5. Wybierz użytkownika lub grupę firmy Microsoft Entra, aby być administratorem firmy Microsoft. Jeśli wybierzesz grupę, wszyscy członkowie grupy są administratorami. Możesz mieć tylko jednego administratora lub grupę, a wybranie innego zastępuje poprzedniego administratora.

    Po włączeniu identyfikatora Entra firmy Microsoft możesz teraz nawiązać połączenie z serwerem elastycznym MySQL przy użyciu uwierzytelniania identyfikatora Entra firmy Microsoft, wykonując następujące kroki.

  6. Uwierzytelnianie powłoki za pomocą platformy Azure. Jeśli używasz usługi Azure Cloud Shell, twoja tożsamość jest już skonfigurowana w sesji, więc nie trzeba się logować. Jeśli używasz nieuwierzytelnionego terminalu, uruchom następujące polecenia:

    az login
    az account set --subscription <subscription_id>
    
  7. W uwierzytelnionej powłoce uruchom następujące polecenie, aby pobrać token dostępu:

    az account get-access-token --resource-type oss-rdbms

  8. Aby się zalogować, skopiuj przedstawiony token dostępu i użyj go jako hasła. Aby przekazać token dostępu bezpośrednio do klienta mysql, w systemie Linux uruchom następujące polecenie:

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=`az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken`
    

    Jeśli używasz programu PowerShell, uruchom następujące polecenie:

    mysql -h mydb.mysql.database.azure.com \
     --user user@tenant.onmicrosoft.com \
     --enable-cleartext-plugin \
     --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken)
    

    W przypadku korzystania z innych klientów, takich jak MySQL Workbench, wystarczy wkleić token dostępu do pola hasła.

Szyfrowanie danych magazynowanych przy użyciu kluczy zarządzanych przez klienta

Szyfrowanie magazynowane można skonfigurować przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure. Jednak przed włączeniem szyfrowania za pomocą kluczy zarządzanych przez klienta należy sprawdzić, czy obowiązują następujące wymagania wstępne:

  • Tożsamość zarządzana przez użytkownika (UMI). Aby uzyskać dostęp do magazynu kluczy, potrzebna jest usługa UMI bazy danych.

  • Uprawnienia. Skonfiguruj dostęp oparty na rolach (IAM) lub zasady dostępu magazynu i przyznaj następujące uprawnienia do interfejsu użytkownika: Pobieranie, wyświetlanie listy, zawijanie klucza i odpakowywanie klucza.

  • Włącz [usuwanie nietrwałe](/azure/key-vault/general/soft-delete-overview" /l "zachowanie usuwania nietrwałego). Przypadkowe utratę dostępu do klucza szyfrowania może spowodować trwałą utratę danych. Włącz usuwanie nietrwałe jako warstwę ochrony. W przypadku tworzenia nowego magazynu kluczy za pomocą witryny Azure Portal usuwanie nietrwałe jest domyślnie włączone.

    Jeśli znasz nazwę magazynu, ale nie identyfikator, możesz go wyszukać, uruchamiając polecenie:

    az keyvault show --name $KEY_VAULT_NAME
    

    Aby włączyć usuwanie nietrwałe w istniejącym magazynie, uruchom polecenie:

    az resource update --id $KEY_VAULT_ID --set properties.enableSoftDelete=true
    
  • Włącz ochronę przed przeczyszczaniem. Klucz usunięty nietrwale może być nadal niepoprawnie przeczyszany przed końcem okresu przechowywania z powodu błędu użytkownika lub kodu. Użycie ochrony przed przeczyszczaniem ustawia okres przechowywania usuniętych obiektów przed ich trwałym usunięciem.

Teraz możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure, aby skonfigurować klucz zarządzany przez klienta w celu szyfrowania danych magazynowanych.

Jeśli używasz witryny Azure Portal:

  1. Przejdź do wystąpienia serwera elastycznego, a następnie w obszarze Zabezpieczenia wybierz pozycję Szyfrowanie danych.

    Zrzut ekranu przedstawiający stronę ustawień w celu wybrania klucza zarządzanego przez klienta.

  2. W obszarze Szyfrowanie danych wybierz pozycję + Wybierz. W oknie dialogowym Wybieranie tożsamości zarządzanej przypisanej przez użytkownika wybierz tożsamość zarządzaną przypisaną przez użytkownika zidentyfikowaną w wymaganiach wstępnych, wybierz tożsamość, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający okno dialogowe, aby wybrać tożsamość zarządzaną przypisaną przez użytkownika.

  3. Następnie wybierz pozycję wprowadź identyfikator klucza i wprowadź identyfikator lub w oknie dialogowym Wybieranie klucza wybierz klucz, określając identyfikator lub wybierając magazyn kluczy i klucz.

  4. Wybierz pozycję Zapisz.

Jeśli używasz interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie:

az mysql flexible-server update --resource-group $RESOURCE_GROUP --name $TEST_SERVER --key $KEY_IDENTIFIER --identity $IDENTITY