다음을 통해 공유


그룹에 컴퓨팅 리소스 할당

이 문서에서는 전용 액세스 모드를 사용하여 그룹에 할당된 컴퓨팅 리소스를 만드는 방법을 설명합니다.

전용 그룹 액세스 모드를 사용하면 사용자가 표준 액세스 모드 클러스터의 운영 효율성을 얻는 동시에 ML용 Databricks Runtime, MLlib(Spark Machine Learning Library), RDD API 및 R과 같은 표준 액세스 모드에서 지원되지 않는 언어 및 워크로드를 안전하게 지원할 수 있습니다.

요구 사항

전용 그룹 액세스 모드를 사용하려면 다음을 수행합니다.

  • 작업 영역이 Unity 카탈로그에 대해 사용 가능하도록 설정되어야 합니다.
  • Databricks Runtime 15.4 이상을 사용해야 합니다.
  • 할당된 그룹에는 Notebook, ML 실험 및 그룹 클러스터에서 사용하는 기타 작업 영역 아티팩트를 유지할 수 있는 작업 영역 폴더에 대한 CAN MANAGE 권한이 있어야 합니다.

전용 액세스 모드란?

전용 액세스 모드는 단일 사용자 액세스 모드의 최신 버전입니다. 전용 액세스를 사용하면 컴퓨팅 리소스를 단일 사용자 또는 그룹에 할당할 수 있으며 할당된 사용자만 컴퓨팅 리소스를 사용할 수 있습니다.

사용자가 그룹(그룹 클러스터)에 전용된 컴퓨팅 리소스에 연결된 경우 사용자의 권한은 그룹의 사용 권한으로 범위를 자동으로 축소하여 사용자가 그룹의 다른 구성원과 리소스를 안전하게 공유할 수 있도록 합니다.

그룹에 전용 컴퓨팅 리소스 만들기

  1. Azure Databricks 작업 영역에서 컴퓨팅 으로 이동하여 컴퓨팅 만들기를 클릭합니다.
  2. 고급 섹션을 확장합니다.
  3. 액세스 모드에서 수동을 클릭한 다음 드롭다운 메뉴에서 전용(이전의 단일 사용자)을 선택합니다.
  4. 단일 사용자 또는 그룹 필드에서 이 리소스에 할당할 그룹을 선택합니다.
  5. 원하는 다른 컴퓨팅 설정을 구성한 다음 만들기를 클릭합니다.

그룹 클러스터를 관리하기 위한 모범 사례

사용자 권한은 그룹 클러스터를 사용할 때 그룹으로 범위가 지정되므로 Databricks는 그룹 클러스터와 함께 사용하려는 각 그룹에 대해 /Workspace/Groups/<groupName> 폴더를 만드는 것이 좋습니다. 그런 다음 폴더에 대한 CAN MANAGE 권한을 그룹에 할당합니다. 이를 통해 그룹은 사용 권한 오류를 방지할 수 있습니다. 그룹의 모든 Notebook 및 작업 영역 자산은 그룹 폴더에서 관리해야 합니다.

또한 다음 워크로드를 수정하여 그룹 클러스터에서 실행해야 합니다.

  • MLflow: 그룹 폴더에서 노트북을 실행하거나 mlflow.set_tracking_uri("/Workspace/Groups/<groupName>")을 실행하세요.
  • AutoML: AutoML 실행에 대해 선택적인 experiment_dir 매개 변수를 “/Workspace/Groups/<groupName>”로 설정합니다.
  • dbutils.notebook.run: 그룹에 실행 중인 Notebook에 대한 READ 권한이 있는지 확인합니다.

그룹 클러스터의 권한 설정 방식

그룹 클러스터에서 수행되는 모든 명령, 쿼리 및 기타 작업은 개별 사용자가 아닌 그룹에 할당된 권한을 사용합니다.

모든 그룹 구성원이 Spark API 및 공유 컴퓨팅 환경에 대한 모든 권한을 가지므로 개별 사용자 권한을 적용할 수 없습니다. 사용자 기반 사용 권한이 적용된 경우 한 멤버는 제한된 데이터를 쿼리할 수 있고 액세스 권한이 없는 다른 멤버는 공유 환경을 통해 결과를 검색할 수 있습니다. 따라서 그룹의 구성원이 아닌 그룹 자체에는 작업을 성공적으로 수행하는 데 필요한 권한이 있어야 합니다.

예를 들어 그룹은 테이블을 쿼리하거나, 비밀 범위 또는 비밀에 액세스하거나, Unity 카탈로그 연결 자격 증명을 사용하거나, Git 폴더에 액세스하거나, 작업 영역 개체를 만들 수 있는 명시적 권한이 필요합니다.

그룹 사용 권한 예제

그룹 클러스터를 사용하여 데이터 개체를 만들 때 그룹은 개체의 소유자로 할당됩니다.

예를 들어 그룹 클러스터에 연결된 Notebook이 있는 경우 다음 명령을 실행합니다.

use catalog main;
create schema group_cluster_group_schema;

그런 다음, 이 쿼리를 실행하여 스키마의 소유자를 확인합니다.

describe schema group_cluster_group_schema;

그룹 스키마에 대한 설명 예제

감사 팀 전용 컴퓨팅 활동

그룹 클러스터가 워크로드를 실행할 때 관련된 두 가지 주요 ID가 있습니다.

  1. 그룹 클러스터에서 워크로드를 실행하는 사용자
  2. 실제 워크로드 작업을 수행하는 데 사용 권한이 사용되는 그룹

감사 로그 시스템 테이블은 다음 매개 변수 아래에 이러한 ID를 기록합니다.

  • identity_metadata.run_by: 작업을 수행하는 인증 사용자
  • identity_metadata.run_as: 작업에 사용되는 권한을 가진 권한 그룹입니다.

다음 예제 쿼리는 그룹 클러스터에서 수행한 작업에 대한 ID 메타데이터를 끌어올 수 있습니다.

select action_name, event_time, user_identity.email, identity_metadata
from system.access.audit
where user_identity.email = "uc-group-cluster-group" AND service_name = "unityCatalog"
order by event_time desc limit 100;

더 많은 예제 쿼리에 대한 감사 로그 시스템 테이블 참조를 봅니다. 감사 로그 시스템 테이블 참조를 참조하세요.

알려진 문제

  • 그룹 클러스터에서 생성된 작업 영역 파일 및 폴더는 할당된 개체 소유자가 Unknown입니다. 이로 인해 read, writedelete같은 개체에 대한 후속 작업이 사용 권한 거부 오류로 인해 실패합니다.

알려진 제한 사항

전용 그룹 액세스에는 다음과 같은 제한 사항이 있습니다.

  • 계보 시스템 테이블은 그룹 클러스터에서 실행되는 워크로드에 대해 identity_metadata.run_as (권한 부여 그룹) 또는 identity_metadata.run_by (인증 사용자)를 기록하지 않습니다.
  • 고객 스토리지로 전달된 감사 로그는 그룹 클러스터에서 실행되는 워크로드에 대해 identity_metadata.run_as (권한 부여 그룹) 또는 identity_metadata.run_by (인증 사용자)를 기록하지 않습니다. id 메타데이터를 보려면 system.access.audit 테이블을 사용해야 합니다.
  • 그룹 클러스터에 연결된 경우 카탈로그 탐색기는 그룹에만 액세스할 수 있는 자산으로 필터링하지 않습니다.
  • 그룹 구성원이 아닌 그룹 관리자는 그룹 클러스터를 만들거나 편집하거나 삭제할 수 없습니다. 작업 영역 관리자 및 그룹 구성원만 이 작업을 수행할 수 있습니다.
  • 그룹의 이름이 바뀐 경우 그룹 이름을 참조하는 컴퓨팅 정책을 수동으로 업데이트해야 합니다.
  • ACL이 비활성화된 작업 영역에는 그룹 클러스터가 지원되지 않습니다(isWorkspaceAclsEnabled == false). 작업 영역 ACL을 사용하지 않도록 설정할 때 고유하게 보안 및 데이터 액세스 제어가 부족하기 때문입니다.
  • %run Notebook 컨텍스트에서 실행되는 명령 및 기타 작업은 항상 그룹의 권한 대신 사용자의 권한을 사용합니다. 이러한 작업은 클러스터 환경이 아닌 Notebook 환경에서 처리되기 때문입니다. 이와 같은 dbutils.notebook.run() 대체 명령은 클러스터에서 실행되므로 그룹의 권한을 사용합니다.
  • 그룹이 자체 멤버가 아니기 때문에 그룹 클러스터에서 is_member(<group>) 함수를 호출하면 false 값을 반환합니다. 그룹 클러스터 및 기타 액세스 모드에서 멤버 자격을 올바르게 확인하려면 .를 사용합니다 is_member(<group>) OR current_user() == <group>.
  • 컴퓨팅 로그는 볼륨에 배달할 수 없습니다.
  • 엔드포인트를 제공하는 모델 만들기 및 액세스는 지원되지 않습니다.