Använda en hemlighet i en Spark-konfigurationsegenskap eller miljövariabel
Den här artikeln innehåller information om hur du refererar till en hemlighet i en Spark-konfigurationsegenskap eller miljövariabel. Hämtade hemligheter redigeras från notebook-utdata och Spark-drivrutins- och körloggar.
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Säkerhetsfrågor
Databricks rekommenderar inte lagring av hemligheter i klustermiljövariabler om de inte får vara tillgängliga för alla användare i klustret. Tänk på följande säkerhetsaspekter när du refererar till hemligheter i en Spark-konfigurationsegenskap eller miljövariabel:
Alla användare med CAN ATTACH TO-behörigheter i ett kluster eller Kör-behörigheter i en notebook-fil kan läsa klustermiljövariabler inifrån notebook-filen.
Om tabellåtkomstkontroll inte är aktiverad i ett kluster kan alla användare med CAN ATTACH TO-behörigheter i ett kluster eller Körningsbehörigheter på en notebook-fil läsa Spark-konfigurationsegenskaper inifrån notebook-filen. Detta omfattar användare som inte har direkt behörighet att läsa en hemlighet.
Hemligheter redigeras inte från Spark-drivrutinsloggen
stdout
ochstderr
strömmarna. För att skydda känsliga data kan Spark-drivrutinsloggar som standard endast visas av användare med CAN MANAGE-behörighet för jobb, åtkomstläge för en användare och kluster för delat åtkomstläge.På kluster för delat åtkomstläge utan isolering kan Spark-drivrutinsloggarna visas av användare med behörigheten KAN KOPPLA TILL eller KAN HANTERA. Om du vill begränsa vem som kan läsa loggarna till endast användare med behörigheten CAN MANAGE anger du
spark.databricks.acl.needAdminPermissionToViewLogs
tilltrue
.
Krav
Följande krav gäller för att referera till hemligheter i Spark-konfigurationsegenskaper och miljövariabler:
- Klusterägare måste ha behörigheten KAN LÄSA i det hemliga omfånget.
- Du måste vara klusterägare för att kunna lägga till eller redigera en hemlighet i en Spark-konfigurationsegenskap eller miljövariabel.
- Om en hemlighet uppdateras måste du starta om klustret för att hämta hemligheten igen.
- Du måste ha behörigheten CAN MANAGE på klustret för att ta bort en hemlig Spark-konfigurationsegenskap eller miljövariabel.
Referera till en hemlighet med en Spark-konfigurationsegenskap
Du anger en referens till en hemlighet i en Spark-konfigurationsegenskap i följande format:
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}
Ersätta:
<scope-name>
med namnet på det hemliga omfånget.<secret-name>
med det unika namnet på hemligheten i omfånget.<property-name>
med spark-konfigurationsegenskapen
Varje Spark-konfigurationsegenskap kan bara referera till en hemlighet, men du kan konfigurera flera Spark-egenskaper för att referera till hemligheter.
Till exempel:
spark.password {{secrets/scope1/key1}}
Så här hämtar du hemligheten i anteckningsboken och använder den:
Python
spark.conf.get("spark.password")
SQL
SELECT ${spark.password};
Referera till en hemlighet i en miljövariabel
Du anger en hemlig sökväg i en miljövariabel i följande format:
<variable-name>={{secrets/<scope-name>/<secret-name>}}
Du kan använda valfritt giltigt variabelnamn när du refererar till en hemlighet. Åtkomst till hemligheter som refereras i miljövariabler bestäms av behörigheterna för den användare som konfigurerade klustret. Även om hemligheter som lagras i miljövariabler är tillgängliga för alla klusteranvändare, redigeras de från klartextvisning, ungefär som andra hemliga referenser.
Miljövariabler som refererar till hemligheter är tillgängliga från ett init-skript med klusteromfattning. Se Ange och använda miljövariabler med init-skript.
Till exempel:
Du anger en miljövariabel som referens till en hemlighet:
SPARKPASSWORD={{secrets/scope1/key1}}
Om du vill hämta hemligheten i ett init-skript får du åtkomst $SPARKPASSWORD
med hjälp av följande mönster:
if [ -n "$SPARKPASSWORD" ]; then
# code to use ${SPARKPASSWORD}
fi