Important
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
이 페이지는 Unity Catalog 스키마를 외부 비밀 관리자와 연결하여 그 비밀 값이 Azure Key Vault에 유지되도록 하는 방법을 보여줍니다.
외부 비밀이 어떻게 작동하는지와 그 한계에 대해서는 Unity 카탈로그의 외부 비밀을 참조하세요.
시작하기 전 주의 사항:
- Unity 카탈로그 비밀 요구사항을 충족하세요.
- 외부 비밀 베타는 작업 공간에서 활성화되어야 합니다.
- 외부에서 백업하려는 스키마에는 Azure Databricks가 관리하는 비밀이 포함되어서는 안 됩니다. 백엔드를 전환하기 전에 기존 비밀을 삭제하세요.
- 외부 비밀 관리자에 대한 Unity Catalog 연결과 해당 연결이 인증하는 데 사용하는 Unity Catalog 서비스 자격 증명이 있어야 합니다. 이를 생성하려면 기존 연결에 대한
CREATE CONNECTION권한이 있거나 메타스토어에서 연결을 생성하기 위한USE CONNECTION권한이 있어야 하며, 서비스 자격 증명에 대한 액세스 권한이 있거나 메타스토어에서 이를 생성하기 위한CREATE CREDENTIAL권한이 있어야 합니다.
- Azure Key Vault 지원은
AZURE_KEY_VAULT연결을 사용하여 Azure의 Azure Databricks에서만 사용할 수 있습니다.
외부 비밀을 설정하세요
서비스 자격 증명 생성
이 연결은 Unity Catalog 서비스 자격 증명을 사용하여 외부 시크릿 관리자에 대해 인증을 수행합니다.
관리 신원 또는 서비스 주체가 지원하는 서비스 자격 증명을 생성하고, 대상 Key Vault에서 비밀을 나열하고 읽을 권한을 부여합니다. 예를 들어, Key Vault Secrets 사용자 역할이나 시크릿 권한을 얻고 리스트할 수 있는 동등한 접근 정책을 할당하세요. 자세한 내용은 '서비스 자격 증명 생성'을 참조하세요.
연결 만들기
이전 단계에서 받은 서비스 자격 증명을 참조하고 외부 비밀 관리자를 가리키는 Unity 카탈로그 연결을 생성하세요.
카탈로그 탐색기
- Azure Databricks에서 카탈로그 탐색기를 열고 메뉴를 + 클릭한 후 Create a connection 선택을 하세요.
- 연결 이름을 입력하고 Azure Key Vault 연결 유형을 선택하세요.
- 인증할 서비스 자격 증명을 선택한 후 Key Vault의 볼트 이름을 설정하세요.
- 만들기를 클릭합니다.
Databricks 명령줄 인터페이스 (CLI)
AZURE_KEY_VAULT 연결 유형을 사용하여 --json와 함께 연결 본문을 전달합니다.
credential를 Key Vault 이름으로 설정하고 vault_name를 서비스 자격 증명 이름으로 설정하세요:
databricks connections create --json '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}'
REST API
/api/2.1/unity-catalog/connections 연결 유형과 함께 AZURE_KEY_VAULT 엔드포인트를 사용하세요. Azure Databricks는 vault_name를 https://<vault_name>.vault.azure.net(으)로 확인합니다:
curl -X POST \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}' \
"$DATABRICKS_HOST/api/2.1/unity-catalog/connections"
연결 상태가 있는 스키마를 백업하세요
카탈로그 탐색기에서 스키마의 비밀 백엔드를 설정하세요.
Azure Databricks에서 Catalog Explorer를 열고 스키마로 가세요.
스키마 세부 정보에서 외부 비밀 관리자 설정을 찾아 활성화(Enable)를 클릭하세요.
스키마에는 Azure Databricks가 관리하는 비밀을 포함해서는 안 됩니다. 만약 그렇다면, 먼저 제거하세요. Enable 기능은 스키마에 비밀이 없을 때까지 비활성화된 상태로 유지됩니다.
이전 단계에서 만든 연결을 선택한 후 확인하세요.
스키마는 이제 외부 비밀 관리자가 지원하며, 그 비밀은 Unity 카탈로그에 나타납니다.
스키마를 다른 연결로 지정하려면 Edit를 사용하세요. 스키마를 Azure Databricks가 관리하는 스토리지로 반환하려면 스키마를 편집하고 외부 비밀을 비활성화하세요.
스키마의 시크릿 백엔드를 설정하거나 변경하려면 부모 카탈로그에 대한 MANAGE, 해당 스키마의 소유권 또는 그에 대한 USE CONNECTION, 그리고 연결에 대한 USE CATALOG가 필요합니다.
외부 비밀을 읽기
스키마가 외부에서 백업된 후에는 그 비밀이 Unity 카탈로그에 나타나고, 다른 Unity 카탈로그 비밀처럼 읽게 됩니다. 스키마를 나열하면 가져오기가 트리거되므로, 새로 추가된 비밀은 다음 리스트 이후에만 나타납니다. 읽기 명령은 두 클라우드 모두에서 동일합니다.
드빌틸스
dbutils 비밀 편집 기능을 적용하며, 값을 읽는 데 권장되는 방법입니다. Databricks 런타임 17.3 LTS 이상, 또는 서버리스 환경 버전 4 이상이 필요합니다.
# List the secrets in the schema
all_secrets = dbutils.secrets.list(catalog="main", schema="default")
# Read a specific secret value from the external secret manager
my_secret = dbutils.secrets.get(catalog="main", schema="default", key="example_secret")
REST API
값을 반환하려면 effective_value로 설정하고 include_value=true 필드를 읽으세요. REST API는 반환된 값을 삭제하지 않지만, 여전히 접근 권한을 감사합니다; Azure Databricks는 대신 이를 권장합니다dbutils.
curl -G \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
--data-urlencode "include_value=true" \
"$DATABRICKS_HOST/api/2.1/unity-catalog/secrets/main.default.example_secret"
또한 Azure Databricks가 관리하는 비밀과 마찬가지로 카탈로그 탐색기에서 외부 비밀을 탐색하고 나열할 수 있습니다. " 리즈 어 시크릿"을 참고하세요.
아직 Unity 카탈로그에 비밀이 나타나지 않았다면, 이름으로 읽을 수 있습니다. 외부 비밀 관리자에 나타나는 이름을 제공하고, 이름 제한 에 따른 문자 대체를 적용하세요.
추가 리소스
| 특징 | Description |
|---|---|
| Unity 카탈로그 내 외부 비밀 | Unity Catalog가 외부 지원 비밀을 가져오고, 관리하며, 읽는 방식을 배우고, 그 한계를 검토하세요. |
| Unity 카탈로그의 비밀 | Azure Databricks가 Unity 카탈로그에 저장하는 비밀을 생성, 관리, 관리하세요. |
| 서비스 자격 증명 만들기 | 연결이 인증하는 데 사용하는 Unity 카탈로그 서비스 자격 증명을 생성하세요. |