중요합니다
이 기능은 공개 미리보기 단계에 있습니다.
이 페이지에서는 작업 영역 관리자가 그룹 복제를 사용하여 새 사용자의 기본 작업 영역 액세스를 소비자 액세스로 변경하는 방법을 설명합니다. 이 기능을 사용하면 작성 권한이 필요한 사용자에게 적절한 액세스 수준을 유지하면서 대규모로 소비자 온보딩을 간소화할 수 있습니다.
개요
기본적으로 작업 영역에 추가된 모든 사용자는 시스템 users 그룹의 멤버가 됩니다. 이 그룹에는 일반적으로 사용자가 작업 영역 개체를 만들고 수정할 수 있는 권한을 작성하는 작업 영역 액세스 또는 Databricks SQL 액세스 권한이 있습니다.
사용자에게 보기 전용 소비자 환경을 users 제공하려면 그룹에 소비자 권한만 있어야 합니다. 자격은 가산적이므로 소비자 액세스는 사용자에게 할당된 유일한 자격인 경우에만 간소화된 보기 전용 환경을 제공합니다. 그룹 복제를 사용하면 작성 권한이 필요한 기존 사용자를 방해하지 않고도 이 변경을 수행할 수 있습니다. 기존 사용자에 대한 새 그룹을 만들고 새 사용자의 기본 users 그룹을 업데이트합니다.
소비자 액세스 및 해당 기능에 대한 자세한 내용은 소비자 액세스란?을 참조하세요. 자격에 대한 자세한 내용은 자격 관리를 참조하세요.
이 기능을 사용하는 경우
다음 경우에 이 기능을 사용합니다.
- 새 작업 영역 사용자가 소비자 액세스만 기본값으로 설정하려고 합니다.
- 작성 권한(작업 영역 또는 Databricks SQL 액세스)이 필요한 사용자를 보기 전용 소비자와 분리해야 합니다.
- 대규모로 소비자 온보딩을 간소화하려고 합니다.
그룹 복제 작동 방식
시스템 users 그룹은 Azure Databricks에서 자동으로 관리되며 모든 작업 영역 사용자를 포함합니다. 이 그룹은 삭제할 수 없습니다. 시스템 그룹에 대한 자세한 내용은 그룹 원본을 참조하세요.
users 그룹을 복제할 때:
- 새 그룹은 그룹이 현재 가지고 있는
users것과 동일한 자격으로 만들어집니다. - 모든 기존 작업 영역 사용자는 복제된 그룹으로 자동으로 이동하여 현재 액세스 수준을 유지합니다.
-
users그룹은 소비자 자격만 갖도록 업데이트됩니다. - 작업 영역에 추가된 이후 사용자는 자동으로 그룹의 구성원
users이 되고 소비자 자격만 받습니다.
users 그룹에 너무 깊게 중첩된 중첩된 그룹(다른 그룹의 멤버인 그룹)이 포함된 경우 이를 처리하는 방법을 선택할 수 있습니다.
- 모든 그룹 구성원을 직접 추가(권장): 중첩된 그룹의 모든 멤버를 복제된 그룹에 직접 추가합니다. 이렇게 하면 그룹 구조가 간소화되었습니다.
- 제외: 중첩된 그룹을 완전히 제외합니다. 제외된 중첩된 그룹의 멤버는 복제된 그룹에 추가되지 않습니다.
요구 사항
기본 작업 영역 액세스를 변경하려면 작업 영역 관리자여야 합니다.
UI를 사용하여 기본 작업 영역 액세스 변경
소비자 액세스에 대한 기본 작업 영역 액세스를 변경하려면 다음을 수행합니다.
작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
Azure Databricks 작업 영역의 상단 표시줄에서 사용자 이름을 클릭하고 설정을 선택합니다.
고급 탭을 클릭합니다.
Access 제어에서 기본 작업 공간 접근을 소비자 접근으로 변경 옆에 있는 열기를 클릭합니다.
대화 상자에서 복제된 그룹의 이름을 입력합니다. 이 그룹에는 현재 자격을 유지해야 하는 모든 기존 사용자가 포함됩니다.
그룹 만들기 및 복제를 클릭합니다.
시스템은 새 그룹을 만들고 복제 프로세스를 시작합니다. 복제가 진행되는 동안에는 모달을 닫지 마세요.
users그룹에 너무 깊이 중첩된 중첩된 그룹이 포함되어 있으면 해당 그룹을 처리하라는 메시지가 표시됩니다.- 모든 그룹 구성원을 직접 추가(권장)를 선택하여 중첩된 그룹의 모든 멤버를 복제된 그룹에 직접 추가하여 그룹을 평면화합니다.
- 이 중첩된 그룹을 건너뛰려면 이 그룹 제외를 선택합니다.
- 필요에 따라 중첩 깊이 제한을 초과하는 모든 미래 그룹에 이 결정을 적용을 선택하여, 이 작업에서 사용한 선택 사항을 향후 모든 중첩 그룹에도 자동으로 적용할 수 있습니다.
마지막 단계: 작성 권한을 이동하고 기본 액세스를 변경한 다음 마침을 클릭합니다.
시스템은 소비자 자격만 갖도록 그룹을 업데이트
users하고 복제된 그룹에 원래 권한을 할당합니다.요약을 검토하고 완료를 클릭합니다.
변경 내용 확인
프로세스를 완료한 후 변경 내용이 올바르게 적용되었는지 확인합니다.
- 작업 영역 관리자로 Azure Databricks 작업 영역에 로그인합니다.
- 위쪽 표시줄에서 사용자 이름을 클릭하고 설정을 선택합니다.
- ID 및 액세스 탭을 클릭합니다.
- 그룹 옆에 있는 관리를 클릭합니다.
- 다음을 확인합니다.
- 복제된 그룹이 존재하며 원래
users그룹과 동일한 수의 사용자가 있습니다. - 이제
users그룹에는 소비자 권한만 남아 있습니다.
- 복제된 그룹이 존재하며 원래
고려 사항 및 모범 사례
기본 작업 영역 액세스를 변경할 때 다음을 고려합니다.
새 사용자에게 미치는 영향: 기본 액세스를 변경한 후 작업 영역에 추가된 모든 새 사용자는 소비자 권한만 받습니다. 대시보드, 지니 공간 및 Databricks 앱과 공유된 대시보드를 보고 상호 작용할 수 있지만 새 작업 영역 개체를 만들 수는 없습니다. 사용자가 기본적으로 접속하는 Databricks 페이지는 Databricks One 페이지입니다. 자세한 내용은 소비자 액세스란 무엇이 며 Databricks One이란?을 참조하세요.
작성 권한 부여: 새 사용자에게 더 높은 권한을 부여해야 하는 경우 복제된 그룹에 수동으로 추가하거나 추가 권한을 개별적으로 할당해야 합니다. 그룹 멤버 자격을 관리하는 방법에 대한 지침은 그룹 관리를 참조하세요.
변경 내용 되돌리기: 이 구성을 되돌려야 하는 경우 작업 영역 액세스 권한 및 Databricks SQL 액세스 권한을 다시
users그룹에 부여합니다. 그러면 새 사용자는 기본적으로 이러한 자격을 받습니다. 복제된 그룹은 사용자를 구성하는 데 필요한지 여부에 따라 유지하거나 삭제할 수 있습니다.ID 공급자와의 조정: SCIM 프로비저닝 또는 자동 ID 관리를 사용하여 사용자 및 그룹을 동기화하는 경우 이 변경 내용을 ID 관리 프로세스와 조정합니다. SCIM을 사용하여 Microsoft Entra ID에서 사용자 및 그룹 동기화를 참조하세요.
SDK를 사용하여 그룹 복제 자동화
여러 작업 영역에서 대량 작업 또는 자동화의 경우 Python용 Databricks SDK를 사용하여 그룹 복제 프로세스를 자동화할 수 있습니다. 이 방법은 여러 작업 영역에서 동일한 구성을 적용하거나 그룹 복제를 코드로서의 인프라 워크플로에 통합해야 하는 경우에 유용합니다.
다음 Python 스크립트는 그룹 복제를 users 자동화하고 적절한 자격을 할당합니다. Python용 Databricks SDK를 사용하며, OAuth를 사용하여 인증된 계정과 작업 영역 모두에 대한 관리자 권한이 있는 서비스 주체가 필요합니다.
OAuth를 사용하여 Azure Databricks에 대한 사용자 액세스 권한 부여를 참조하세요.
필수 조건
- 관리자 권한이 있는 서비스 주체
- 환경 변수 집합:
-
DATABRICKS_ACCOUNT_ID(계정 콘솔 URL의 UUID) -
DATABRICKS_WORKSPACE_ID(작업 영역 URL의 숫자 ID) -
DATABRICKS_CLIENT_ID(서비스 주체 클라이언트 ID) -
DATABRICKS_CLIENT_SECRET(서비스 주체 클라이언트 암호)
-
예제 스크립트
import os
import databricks.sdk as dbx
from databricks.sdk.service import iam
# Set the Databricks account host URL for your account's cloud
DATABRICKS_HOST = "https://accounts.azuredatabricks.net"
# Fetch credentials from environment variables
DATABRICKS_ACCOUNT_ID = os.getenv("DATABRICKS_ACCOUNT_ID")
DATABRICKS_WORKSPACE_ID = os.getenv("DATABRICKS_WORKSPACE_ID")
DATABRICKS_CLIENT_ID = os.getenv("DATABRICKS_CLIENT_ID")
DATABRICKS_CLIENT_SECRET = os.getenv("DATABRICKS_CLIENT_SECRET")
# Initialize Databricks account client
account_client = dbx.AccountClient(
host=DATABRICKS_HOST,
account_id=DATABRICKS_ACCOUNT_ID,
client_id=DATABRICKS_CLIENT_ID,
client_secret=DATABRICKS_CLIENT_SECRET,
)
print(f"Authenticated to Databricks account {DATABRICKS_ACCOUNT_ID}")
# Get workspace and initialize workspace client
workspace = account_client.workspaces.get(workspace_id=DATABRICKS_WORKSPACE_ID)
workspace_name = workspace.workspace_name
workspace_client = account_client.get_workspace_client(workspace)
print(f"Authenticated to Databricks workspace {DATABRICKS_WORKSPACE_ID}, '{workspace_name}'")
def get_workspace_group(group_name):
"""
Fetches the workspace group with the given name.
"""
group = list(workspace_client.groups.list(filter=f"displayName eq '{group_name}'"))[0]
print(f"Found workspace group: {group.display_name}")
print(f"Workspace {group.display_name} has {len(group.members)} members")
return group
def clone_workspace_group_to_account(workspace_group_name, new_account_group_name):
workspace_group = get_workspace_group(workspace_group_name)
group = account_client.groups.create(
display_name=new_account_group_name, members=workspace_group.members
)
print(f"Created account group: {new_account_group_name}")
print(f"Cloned workspace group {workspace_group.display_name} to account group {group.display_name}")
print(f"Account {group.display_name} has {len(group.members)} members")
return group
def add_account_group_to_workspace(account_group, workspace):
permissions = account_client.workspace_assignment.update(
workspace_id=workspace.workspace_id,
principal_id=account_group.id,
permissions=[iam.WorkspacePermission.USER],
)
print(f"Added account group {account_group.display_name} to workspace {workspace.workspace_id}, {workspace.workspace_name}")
return permissions
# Clone workspace 'users' group to new account group '{workspace_name}-contributors'
account_group = clone_workspace_group_to_account(
"users", f"{workspace_name}-contributors"
)
# Add account group '{workspace_name}-contributors' to the workspace
permissions = add_account_group_to_workspace(account_group, workspace)
스크립트를 실행하여 기존 그룹을 복제하고 권한을 다시 할당한 후에는 새 사용자에게 해당 액세스 권한이 자동으로 부여되도록 소비자 액세스 권한을 users 그룹에 부여합니다.
비고
조직의 정책 및 명명 규칙에 대한 그룹 이름 및 자격을 조정합니다. 광범위하게 적용하기 전에 항상 비프로덕션 환경에서 변경 내용을 테스트합니다.
다음에는 무엇이 있을까요?
기본 작업 영역 액세스를 변경한 후 다음을 수행할 수 있습니다.
- 그룹 멤버 자격을 관리하여 복제된 그룹에 추가하여 새 사용자에게 작성 권한을 부여합니다. 그룹 관리를 참조하세요.
- 개별 사용자 또는 그룹에 대한 자격을 검토하고 조정합니다. 권한 관리를 참조하세요.
- 소비자 액세스 환경에 대해 자세히 알아봅니다. 소비자 액세스란 무엇이며 Databricks One이란?을 참조하세요.
- 소비자 사용자에 대한 데이터 거버넌스 컨트롤을 구성합니다. 행 필터 및 열 마스크를 참조하세요.