비밀 범위

비밀 관리는 비밀 범위를 만드는 것으로 시작됩니다. 비밀 범위는 이름으로 식별되는 비밀의 컬렉션입니다.

작업 영역은 최대 1,000개의 비밀 범위로 제한됩니다. 필요한 경우 Azure Databricks 지원 팀에 문의하세요.

참고 항목

개인보다는 역할 또는 애플리케이션에 비밀 범위를 맞추는 것이 좋습니다.

개요

비밀 범위에는 Azure Key Vault 지원 및 Databricks 지원의 두 가지 유형이 있습니다.

Azure Key Vault 지원 범위

Azure Key Vault에 저장된 비밀을 참조하려면 Azure Key Vault에서 지원하는 비밀 범위를 만들 수 있습니다. 그런 다음, 해당 비밀 범위에서 해당 Key Vault 인스턴스의 모든 비밀을 활용할 수 있습니다. Azure Key Vault 지원 비밀 범위는 Key Vault PutSecretDeleteSecret에 대한 읽기 전용 인터페이스이므로 비밀 API 작업은 허용되지 않습니다. Azure Key Vault에서 비밀을 관리하려면 Azure Set Secret REST API 또는 Azure Portal UI를 사용해야 합니다.

Databricks에서 지원하는 범위

Databricks 지원 비밀 범위는 Azure Databricks에서 소유하고 관리하는 암호화된 데이터베이스에 저장(지원)됩니다. 비밀 범위 이름은 다음과 같습니다.

  • 작업 영역 내에서 고유해야 합니다.
  • 영숫자, 대시, 밑줄, @ 및 마침표로 구성되어야 하며 128자를 초과할 수 없습니다.

이름은 중요하지 않은 것으로 간주되며 작업 영역의 모든 사용자가 읽을 수 있습니다.

Databricks CLI(버전 0.205 이상)를 사용하여 Databricks 지원 비밀 범위를 만듭니다. 또는 비밀 API사용할 수 있습니다.

범위 권한

범위는 비밀 ACL에 의해 제어되는 권한으로 만들어집니다. 기본적으로 범위는 범위를 만든 사용자("작성자")에 대한 MANAGE 권한으로 만들어지며, 이를 통해 작성자는 범위에서 비밀을 읽고, 범위에 비밀을 쓰고, 범위에 대한 ACL을 변경할 수 있습니다. 계정에 프리미엄 플랜이 있는 경우 범위를 만든 후 언제든지 세분화된 권한을 할당할 수 있습니다. 자세한 내용은 비밀 액세스 제어를 참조하세요.

또한 범위를 만들 때 기본값을 재정의하고 모든 사용자에게 명시적으로 MANAGE 권한을 부여할 수 있습니다. 실제로 계정에 프리미엄 플랜이 없는 경우 이 작업을 수행해야 합니다.

참고 항목

비밀 ACL은 범위 수준에 있습니다. Azure Key Vault 지원 범위를 사용하는 경우 범위에 대한 액세스 권한이 부여된 사용자는 Azure Key Vault의 모든 비밀에 액세스할 수 있습니다. 액세스를 제한하려면 별도의 Azure Key Vault 인스턴스를 사용합니다.

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

UI 또는 Databricks CLI를 사용하여 Azure Key Vault에서 지원하는 비밀 범위를 만들 수 있습니다.

요구 사항

  • 비밀 범위를 백업하는 데 사용하려는 Azure Key Vault 인스턴스에서 Key Vault 기여자, 기여자 또는 소유자 역할이 있어야 합니다.

    키 자격 증명 모음 인스턴스가 없는 경우 Azure Portal을 사용하여 Key Vault 만들기의 지침을 따릅니다.

    참고 항목

    Azure Key Vault 지원 비밀 범위를 만들려면 Azure Databricks 서비스에 이전에 키 자격 증명 모음에 대한 액세스 권한이 부여된 경우에도 Azure키 자격 증명 모음 인스턴스에 대한 기여자 또는 소유자 역할이 필요합니다.

    키 자격 증명 모음이 Azure Databricks 작업 영역과 다른 테넌트에 있는 경우 비밀 범위를 만드는 Azure AD 사용자는 키 자격 증명 모음의 테넌트에서 서비스 주체를 만들 수 있는 권한이 있어야 합니다. 그렇지 않으면 다음 오류가 발생합니다.

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    

Azure Databricks에 대한 Azure Key Vault 인스턴스 구성

  1. Azure Portal에 로그인하고 Azure Key Vault 인스턴스를 찾아 선택합니다.

  2. 설정 아래에서 Access 구성 탭을 선택합니다.

  3. 권한 모델을 자격 증명 모음 액세스 정책으로 설정합니다.

    참고 항목

    Azure Key Vault 지원 비밀 범위 역할을 만들면 키 자격 증명 모음 액세스 정책을 사용하여 Azure Databricks 서비스의 애플리케이션 ID에 대한 가져오기목록 권한을 부여합니다. Azure 역할 기반 액세스 제어 권한 모델은 현재 Azure Databricks에서 지원되지 않습니다.

  4. 설정 아래에서 네트워킹 탭을 선택합니다.

  5. 방화벽 및 가상 네트워크 집합에서 액세스 허용:특정 가상 네트워크 및 IP 주소에서 공용 액세스를 허용합니다.

    예외에서 검사 신뢰할 수 있는 Microsoft 서비스 이 방화벽을 무시하도록 허용합니다.

    참고 항목

    모든 네트워크에서 공용 액세스를 허용하도록 다음에서 액세스 허용을 설정할 수도 있습니다.

UI를 사용하여 Azure Key Vault 지원 비밀 범위 만들기

  1. https://<databricks-instance>#secrets/createScope(으)로 이동합니다. 이 URL은 대/소문자를 구분합니다. createScope의 범위는 대문자여야 합니다.

    Create scope

  2. 비밀 범위의 이름을 입력합니다. 비밀 범위 이름은 대/소문자를 구분하지 않습니다.

  3. 보안 주체 관리 드롭다운을 사용하여 모든 사용자가 이 비밀 범위에 대한 MANAGE 권한을 갖는지 아니면 비밀 범위의 작성자(즉, 사용자)만 갖는지 여부를 지정합니다.

    MANAGE사용 권한을 통해 사용자는 이 비밀 범위를 읽고 쓸 수 있으며, 프리미엄 플랜에 대한 계정의 경우 범위에 대한 사용 권한을 변경할 수 있습니다.

    작성자를 선택할 수 있도록 계정에 프리미엄 플랜이 있어야 합니다. 권장되는 접근 방식은 비밀 범위를 만들 때 작성자에게 MANAGE 권한을 부여한 다음, 범위를 테스트한 후 보다 세부적인 액세스 권한을 할당하는 것입니다. 예제 워크플로는 비밀 워크플로 예제를 참조하세요.

    계정에 표준 계획이 있는 경우 MANAGE 권한을 "모든 사용자" 그룹으로 설정해야 합니다. 여기에서 작성자를 선택하면 범위를 저장하려고 할 때 오류 메시지가 표시됩니다.

    MANAGE 권한에 대한 자세한 내용은 비밀 액세스 제어를 참조하세요.

  4. DNS 이름(예: https://databrickskv.vault.azure.net/) 및 리소스 ID를 입력합니다. 예를 들면 다음과 같습니다.

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    이러한 속성은 Azure Portal에 있는 Azure Key Vault의 속성 탭에서 사용할 수 있습니다.

    Azure Key Vault Properties tab

  5. 만들기 단추를 클릭합니다.

  6. Databricks CLIdatabricks secrets list-scopes 명령을 사용하여 범위가 성공적으로 만들어졌는지 확인합니다.

Azure Blob 스토리지에 액세스할 때 비밀을 사용하는 예제는 Azure Databricks에 클라우드 개체 스토리지 탑재를 참조하세요.

Databricks CLI를 사용하여 Azure Key Vault에서 지원하는 비밀 범위 만들기

  1. Databricks CLI를 설치하거나 업데이트하고 인증에 Azure AD(Azure Active Directory) 토큰을 사용하도록 구성합니다.

    Important

    Databricks CLI를 사용하여 Azure Key Vault 지원 비밀 범위를 만들려면 서비스 주체 또는 사용자 또는 서비스 주체에 속한 Azure Databricks 개인 액세스 토큰에 속하는 Azure AD 토큰으로 인증해야 합니다. 사용자에 속하는 개인용 액세스 토큰은 사용할 수 없습니다.

    키 자격 증명 모음이 Azure Databricks 작업 영역과 다른 테넌트에 있는 경우 비밀 범위를 만드는 Azure AD 사용자 또는 서비스 주체는 키 자격 증명 모음의 테넌트에 서비스 주체 를 만들 수 있는 권한이 있어야 합니다. 그렇지 않으면 다음 오류가 발생합니다.

    Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}
    
  2. Azure Key Vault 범위를 만듭니다.

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name>
    

    기본적으로 범위는 범위를 만든 사용자에 대한 MANAGE 권한으로 만들어집니다. 계정에 프리미엄 플랜이 없는 경우 해당 기본값을 재정의하고 범위를 만들 때 (모든 사용자) 그룹에 권한을 users 명시적으로 부여 MANAGE 해야 합니다.

    databricks secrets create-scope --scope <scope-name> --scope-backend-type AZURE_KEYVAULT --resource-id <azure-keyvault-resource-id> --dns-name <azure-keyvault-dns-name> --initial-manage-principal users
    

    프리미엄 플랜에 계정이 있는 경우 범위를 만든 후 언제든지 권한을 변경할 수 있습니다. 자세한 내용은 비밀 액세스 제어를 참조하세요.

    Databricks 지원 비밀 범위를 만든 후에는 비밀을 추가할 수 있습니다.

Azure Blob 스토리지에 액세스할 때 비밀을 사용하는 예제는 Azure Databricks에 클라우드 개체 스토리지 탑재를 참조하세요.

Databricks 지원 비밀 범위 만들기

비밀 범위 이름은 대/소문자를 구분하지 않습니다.

Databricks CLI를 사용하여 범위를 만들려면 다음을 수행합니다.

databricks secrets create-scope <scope-name>

기본적으로 범위는 범위를 만든 사용자에 대한 MANAGE 권한으로 만들어집니다. 계정에 프리미엄 플랜이 없는 경우 해당 기본값을 재정의하고 범위를 만들 때 "사용자"(모든 사용자)에게 명시적으로 권한을 부여 MANAGE 해야 합니다.

databricks secrets create-scope <scope-name> --initial-manage-principal users

비밀 API를 사용하여 Databricks 지원 비밀 범위를 만들 수도 있습니다.

계정에 프리미엄 플랜이 있는 경우 범위를 만든 후 언제든지 권한을 변경할 수 있습니다. 자세한 내용은 비밀 액세스 제어를 참조하세요.

Databricks 지원 비밀 범위를 만든 후에는 비밀을 추가할 수 있습니다.

비밀 범위 나열

CLI를 사용하여 작업 영역에 있는 기존 범위를 나열하려면 다음을 수행합니다.

databricks secrets list-scopes

비밀 API를 사용하여 기존 범위를 나열할 수도 있습니다.

비밀 범위 삭제

비밀 범위를 삭제하면 해당 범위에 적용된 모든 비밀과 ACL이 삭제됩니다. CLI를 사용하여 범위를 삭제하려면 다음을 실행합니다.

databricks secrets delete-scope <scope-name>

비밀 API를 사용하여 비밀 범위를 삭제할 수도 있습니다.