Beheerde opslag voor Unity Catalog maken met behulp van een service-principal (verouderd)
Belangrijk
Deze documentatie is buiten gebruik gesteld en wordt mogelijk niet bijgewerkt. De producten, services of technologieƫn die in deze inhoud worden genoemd, worden niet meer ondersteund. Zie Uw Azure Databricks-account beheren om de huidige beheerdersdocumentatie weer te geven.
In dit artikel wordt een verouderde methode beschreven voor het maken van externe locaties en beheerde opslag met behulp van een service-principal. In plaats van service-principals raadt Databricks u ten zeerste aan een door Azure beheerde identiteit te gebruiken als de identiteit die toegang geeft tot de opslagcontainer. Zie Beheerde Identiteiten van Azure gebruiken in Unity Catalog voor toegang tot opslag.
Als u echter nog steeds een service-principal wilt gebruiken of als u bestaande door Unity Catalog beheerde opslag of externe locaties hebt die gebruikmaken van een service-principal en u het proces wilt begrijpen, worden de instructies in dit archiefartikel gegeven.
Een metastore maken die wordt geopend met behulp van een service-principal (verouderd)
Een Unity Catalog-metastore maken die wordt geopend door een service-principal:
Maak een opslagaccount voor Azure Data Lake Storage Gen2.
In een opslagcontainer in dit account worden alle beheerde tabellen van de metastore opgeslagen, behalve de tabellen die zich in een catalogus of schema bevinden met hun eigen beheerde opslaglocatie.
Zie Een opslagaccount maken dat met Azure Data Lake Storage Gen2 wordt gebruikt. Dit moet een Azure Data Lake Storage Gen2-account voor Premium-prestaties zijn in dezelfde regio als uw Azure Databricks-werkruimten.
Maak een container in het nieuwe opslagaccount.
Noteer de ADLSv2-URI voor de container, die de volgende indeling heeft:
abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
Vervang deze URI in de volgende
<storage-container>
stappen.Maak in Microsoft Entra ID een service-principal en wijs deze machtigingen toe aan het opslagaccount, met behulp van de instructies in Access-opslag met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).
Unity Catalog gebruikt deze service-principal voor toegang tot containers in het opslagaccount namens Unity Catalog-gebruikers. Genereer een clientgeheim voor de service-principal. Zie verificatie van MS Entra-service-principal. Noteer het clientgeheim voor de service-principal, de clienttoepassings-id en de map-id waar u deze service-principal hebt gemaakt. Vervang ,
<client-application-id>
en<directory-id>
door deze waarden in de volgende stappen<client-secret>
.Noteer deze eigenschappen, die u gaat gebruiken wanneer u een metastore maakt:
<aad-application-id>
- De regio van het opslagaccount
<storage-container>
- De service-principal's
<client-secret>
,<client-application-id>
en<directory-id>
U kunt geen metastore maken die wordt geopend met behulp van een service-principal in de gebruikersinterface van de accountconsole. Gebruik in plaats daarvan de Account Metastores-API. Voorbeeld:
curl -n -X POST --header 'Content-Type: application/json' https://<account-domain>/api/2.0/accounts/<account-id>/metastores --data '{ "metastore_info": { "name": "<metastore-name>", "storage_root": "<storage-container>", "region": "<region>" "storage_root_credential_id" } }'
Zie VERIFICATIE op MS Entra-service-principal voor meer informatie over het verifiƫren van API's op accountniveau.
De gebruiker die een metastore maakt, is de eigenaar. Databricks raadt aan dat u het eigendom van de metastore opnieuw toewijst aan een groep. Zie Een metastore-beheerder toewijzen.
Noteer de id van de metastore. Wanneer u de eigenschappen van de metastore bekijkt, is de id van de metastore het gedeelte van de URL na
/data
en voor./configuration
De metastore is gemaakt, maar Unity Catalog kan er nog geen gegevens naar schrijven. Het instellen van de metastore voltooien:
Meld u in een afzonderlijke browser aan bij een werkruimte die als werkruimtebeheerder is toegewezen aan de metastore.
Noteer de werkruimte-URL, het eerste gedeelte van de URL, na
https://
en inclusiefazuredatabricks.net
.Genereer een persoonlijk toegangstoken. Zie de tokenbeheer-API.
Voeg het persoonlijke toegangstoken toe aan het
.netrc
bestand in uw basismap. Dit verbetert de beveiliging door te voorkomen dat het persoonlijke toegangstoken wordt weergegeven in de opdrachtgeschiedenis van uw shell. Zie de tokenbeheer-API.Voer de volgende cURL-opdracht uit om de hoofdopslagreferentie voor de metastore te maken. Vervang de waarden van de tijdelijke aanduidingen:
<workspace-url>
: De URL van de werkruimte waarin het persoonlijke toegangstoken is gegenereerd.<credential-name>
: Een naam voor de opslagreferentie.<directory-id>
: de map-id voor de service-principal die u hebt gemaakt.<application-id>
: de toepassings-id voor de service-principal die u hebt gemaakt.<client-secret>
: De waarde van het clientgeheim dat u hebt gegenereerd voor de service-principal (niet de clientgeheim-id).
curl -n -X POST --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/storage-credentials --data "{ \"name\": \"<credential-name>\", \"azure_service_principal\": { \"directory_id\": \"<directory-id>\", \"application_id\": \"<application-id>\", \"client_secret\": \"<client-secret>\" } }"
Noteer de opslagreferentie-id. Dit is de waarde van het antwoord van
id
de cURL-opdracht.
Voer de volgende cURL-opdracht uit om de metastore bij te werken met de nieuwe basisopslagreferenties. Vervang de waarden van de tijdelijke aanduidingen:
<workspace-url>
: De URL van de werkruimte waarin het persoonlijke toegangstoken is gegenereerd.<metastore-id
>: de id van de metastore.<storage-credential-id
>: de id van de opslagreferentie uit de vorige opdracht.
curl -n -X PATCH --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/metastores/<metastore-id> --data "{\"storage_root_credential_id\": \"<storage-credential-id>\"}"
U kunt nu werkruimten toevoegen aan de metastore.
Een opslagreferentie maken die gebruikmaakt van een service-principal (verouderd)
Als u een opslagreferentie wilt maken met behulp van een service-principal, moet u een Azure Databricks-accountbeheerder zijn. De accountbeheerder die de opslagreferentie voor de service-principal maakt, kan het eigendom delegeren aan een andere gebruiker of groep om machtigingen te beheren.
Maak eerst een service-principal en ververleent deze toegang tot uw opslagaccount na Toegang tot opslag met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).
U kunt geen opslagreferenties voor de service-principal toevoegen met Behulp van Catalog Explorer. Gebruik in plaats daarvan de Storage Credentials-API. Voorbeeld:
curl -X POST -n \
https://<databricks-instance>/api/2.1/unity-catalog/storage-credentials \
-d '{
"name": "<storage-credential-name>",
"read_only": true,
"azure_service_principal": {
"directory_id": "<directory-id>",
"application_id": "<application-id>",
"client_secret": "<client-secret>"
},
"skip_validation": "false"
}'
U kunt ook een opslagreferentie maken met behulp van de Databricks Terraform-provider en databricks_storage_credential.