비밀 워크플로 예제

이 워크플로 예제에서는 비밀을 사용하여 Azure Data Lake Store에 연결하기 위한 JDBC 자격 증명을 설정합니다.

비밀 범위 만들기

jdbc이라는 비밀 범위를 만듭니다.

Databricks에서 지원하는 비밀 범위를 다음과 같이 만듭니다.

databricks secrets create-scope --scope jdbc

Azure Key Vault 지원 비밀 범위를 만들려면 Azure Key Vault 지원 비밀 범위 만들기의 지침을 따릅니다.

참고

계정에 Azure Databricks 프리미엄 플랜이 없는 경우 모든 사용자("users")에게 부여된 MANAGE 권한으로 범위를 만들어야 합니다. 예를 들면 다음과 같습니다.

databricks secrets create-scope --scope jdbc --initial-manage-principal users

비밀 만들기

비밀을 만드는 방법은 Azure Key Vault 지원 범위 또는 Databricks 지원 범위를 사용하는지 여부에 따라 달라집니다.

Azure Key Vault에서 지원하는 범위에서 비밀 만들기

비밀 usernamepassword를 추가하고 다음과 같이 Azure SetSecret REST API 또는 Azure Portal UI를 사용합니다.

Add secrets to Azure Key Vault

Databricks에서 지원하는 범위에서 비밀 만들기

비밀 usernamepassword를 추가합니다. 다음 명령을 실행하고 열린 편집기에서 비밀 값을 입력합니다.

databricks secrets put --scope jdbc --key username
databricks secrets put --scope jdbc --key password

Notebook에서 비밀 사용

Notebook에서 비밀 범위 jdbc에 저장된 비밀을 읽고 JDBC 커넥터를 구성합니다.

val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
val connectionProperties = new java.util.Properties()
connectionProperties.setProperty("Driver", driverClass)

val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")
val jdbcPassword = dbutils.secrets.get(scope = "jdbc", key = "password")
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")

이제 JDBC 커넥터에서 이러한 ConnectionProperties을 사용하여 데이터 원본과 통신할 수 있습니다. 범위에서 가져온 값은 Notebook에 표시되지 않습니다(비밀 수정 참조).

다른 그룹에 대한 액세스 권한 부여

참고

이 단계를 수행하려면 계정에 Azure Databricks 프리미엄 플랜이 있어야 합니다.

자격 증명이 올바르게 구성되었는지 확인한 후 분석에 사용할 datascience 그룹과 이러한 자격 증명을 공유합니다.

다음 요청을 수행하여 datascience 그룹에 이러한 자격 증명에 대한 읽기 전용 권한을 부여합니다.

databricks secrets put-acl --scope jdbc --principal datascience --permission READ