다음을 통해 공유


Credentials

적용 대상:체크 표시됨 Databricks SQL 체크 표시됨 Databricks 런타임 체크 표시됨 Unity Catalog에만 적용

Unity Catalog 및 Azure Databricks Hive 메타스토어(기본 제공)는 관리형 tables의 기본 위치를 사용합니다. Unity Catalog은 외부 클라우드 서비스와 클라우드 개체 스토리지의 데이터에 대한 grant 권한 부여를 위한 몇 가지 새로운 보안 가능 객체를 도입했습니다.

  • 자격 증명

    클라우드 서비스 및 스토리지 providers에서 장기 credentials을 추상화하는 데 사용되는 Unity Catalog 개체입니다.

    • 스토리지 자격 증명

      Unity Catalog 자격 증명은 외부 위치와 tables에 액세스하는 데 사용됩니다.

    • 서비스 자격 증명

      Important

      이 기능은 공개 미리 보기 상태입니다.

      공급자 SDK를 사용하여 외부 클라우드 서비스에 액세스하는 데 사용되는 Unity Catalog 자격 증명입니다. 자세한 내용은 서비스 사용하여 외부 클라우드 서비스에 대한 액세스 관리 참조하세요.

  • 외부 위치

    Unity Catalog 개체는 클라우드 개체 스토리지 URI를 스토리지 자격 증명에 연결하는 데 사용됩니다.

  • 외부 table

    Unity Catalog관리되는 외부 위치만든 Unity Catalogtable.

자격 증명

자격 증명은 Azure 관리 ID 또는 Microsoft Entra ID 서비스 주체를 나타내는 보안 개체입니다.

자격 증명을 만든 후 보안 주체(사용자 및 그룹)에게 액세스 권한을 부여할 수 있습니다.

스토리지 주로 특정 스토리지 경로에 대한 액세스 범위를 지정하는외부 위치를 만드는 데 사용됩니다.

자격 증명 이름은 정규화되지 않으며 메타스토어 내에서 고유해야 합니다.

관계의 그래픽 표현

다음 다이어그램은 다음 간의 관계를 설명합니다.

  • 스토리지 credentials
  • 외부 위치:
  • 외부 tables
  • 스토리지 경로
  • IAM 엔터티
  • Azure 서비스 계정

외부 위치 ER 다이어그램

예제

CLI를 사용하여 Microsoft Entra ID 서비스 주체에 대한 스토리지 자격 증명 my_azure_storage_cred 을 만듭니다.

databricks storage-credentials create --json '{"name": "my_azure_storage_cred", "azure_service_principal": {"directory_id": "12345678-9abc-def0-1234-56789abcdef0", "application_id": "23456789-9abc-def0-1234-56789abcdef0", "client_secret": "Cli3nt5ecr3t"}}'

나머지 명령은 SQL 내에서 실행할 수 있습니다.

-- Grant access to the storage credential
> GRANT READ FILES ON STORAGE CREDENTIAL my_azure_storage_cred TO ceo;

-- ceo can directly read from any storage path using myazure_storage_cred
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/finance/forecast/somefile` WITH (CREDENTIAL my_azure_storage_cred);
  100
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/hr/employees` WITH (CREDENTIAL my_azure_storage_cred);
  2017

-- Create an external location on specific path to which `my_azure_storage_cred` has access
> CREATE EXTERNAL LOCATION finance_loc URL 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance'
    WITH (CREDENTIAL my_azure_storage_cred)
    COMMENT 'finance';