Udostępnij za pośrednictwem


Nawiązywanie połączenia z zewnętrznymi usługami w chmurze przy użyciu poświadczeń usługi wykazu aparatu Unity

W tym artykule opisano sposób używania poświadczeń usługi w wykazie aparatu Unity w celu nawiązania połączenia z zewnętrznymi usługami w chmurze. Obiekt poświadczeń usługi w wykazie aparatu Unity hermetyzuje długoterminowe poświadczenia chmury, które zapewniają dostęp do zewnętrznej usługi w chmurze, z którą użytkownicy muszą nawiązać połączenie z usługi Azure Databricks.

Zobacz też:

Zanim rozpoczniesz

Aby można było użyć poświadczeń usługi do nawiązania połączenia z zewnętrzną usługą w chmurze, musisz mieć następujące elementy:

  • Obszar roboczy usługi Azure Databricks, który jest włączony dla wykazu aparatu Unity.

  • Zasób obliczeniowy, który znajduje się w środowisku Databricks Runtime 16.2 lub nowszym.

    Magazyny SQL nie są obsługiwane.

    Publiczna wersja zapoznawcza poświadczeń usługi jest dostępna w środowisku Databricks Runtime 15.4 LTS i nowszym z obsługą języka Python, ale bez obsługi języka Scala.

  • Poświadczenie usługi utworzone w magazynie metadanych wykazu aparatu Unity, które zapewnia dostęp do usługi w chmurze.

  • Uprawnienie ACCESS do poświadczeń usługi lub własności poświadczeń usługi.

Używanie poświadczeń usługi w kodzie

Ta sekcja zawiera przykłady użycia poświadczeń usługi w notesie. Zamień wartości symboli zastępczych. Te przykłady niekoniecznie pokazują instalację wymaganych bibliotek, które zależą od usługi klienta, do której chcesz uzyskać dostęp.

przykład języka Python: konfigurowanie klienta zestawu Azure SDK w celu użycia określonego poświadczenia usługi

from azure.keyvault.secrets import SecretClient # example Azure SDK client

credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)

przykład języka Scala: konfigurowanie klienta zestawu Azure SDK w celu użycia określonego poświadczenia usługi

import com.azure.security.keyvault.secrets.{SecretClient, SecretClientBuilder}

// Get credentials from dbutils
val credential = dbutils.credentials.getServiceCredentialsProvider("your-service-credential")

// URL of the Key Vault
val vaultUrl = "https://your-keyvault-name.vault.azure.net/"

// Create the SecretClient
val client: SecretClient = new SecretClientBuilder()
  .vaultUrl(vaultUrl)
  .credential(credential)
  .buildClient()

Określanie domyślnego poświadczenia usługi dla zasobu obliczeniowego

Opcjonalnie można określić domyślne poświadczenia usługi dla klastra obliczeniowego typu all-purpose lub jobs, ustawiając zmienną środowiskową. Domyślnie zestaw SDK używa tego poświadczenia usługi, jeśli nie podano uwierzytelniania. Użytkownicy nadal wymagają ACCESS poświadczeń usługi w celu nawiązania połączenia z zewnętrzną usługą w chmurze. Usługa Databricks nie zaleca takiego podejścia, ponieważ sprawia, że kod jest mniej przenośny niż nazewnictwo poświadczeń usługi w kodzie.

Uwaga

Bezserwerowe obliczenia i magazyny SQL nie obsługują zmiennych środowiskowych, dlatego nie obsługują domyślnych poświadczeń usługi.

  1. Otwórz stronę edycji klastra.

    Zobacz Zarządzanie obliczeniami.

  2. Kliknij pozycję Opcje zaawansowane w dolnej części strony i przejdź do karty Spark .

  3. Dodaj następujący wpis w zmienne środowiskowe, zastępując ciąg <your-service-credential>:

    DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>

Poniższe przykłady kodu nie określają poświadczenia usługi. Zamiast tego używają poświadczeń usługi określonych w zmiennej środowiskowej DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME:

Pyton

Jeśli używasz domyślnych poświadczeń usługi, nie musisz określać poświadczeń jako argumentu.

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)

pl-PL: Porównaj to z przykładem w Pythonie : skonfiguruj klienta zestawu Azure SDK, aby używał określonych poświadczeń usługi, który nie importuje DefaultAzureCredential i dodaje specyfikację poświadczeń.

credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')

Scala

Dla Scali zastąp nazwę poświadczeń usługi na null.

val azureCredentials = dbutils.credentials.getServiceCredentialsProvider(null).asInstanceOf[TokenCredential]