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ż:
- Zarządzanie dostępem do zewnętrznych usług w chmurze przy użyciu poświadczeń usługi.
- Zarządzanie poświadczeniami usługi
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.
Otwórz stronę edycji klastra.
Zobacz Zarządzanie obliczeniami.
Kliknij pozycję Opcje zaawansowane w dolnej części strony i przejdź do karty Spark .
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]