Databricks 자산 번들의 리소스에 대한 권한 설정
이 문서에서는 Databricks 자산 번들에서 Azure Databricks 작업, 델타 라이브 테이블 파이프라인 및 MLOps 스택에 대한 권한을 설정하는 방법을 설명합니다. Databricks 자산 번들이란?을 참조하세요.
Azure Databricks 번들 구성 파일에서 번들에 정의된 모든 리소스에 적용할 권한을 정의하거나 특정 리소스에 적용할 사용 권한을 하나 이상 정의할 수 있습니다.
참고 항목
사용 권한은 겹칠 수 없습니다. 즉, 사용자, 그룹 또는 서비스 주체에 대한 사용 권한은 최상위 permissions
매핑과 매핑 내에서 resources
정의할 수 없습니다.
모든 리소스에 적용할 권한 정의
최상위 permissions
매핑을 사용하여 정의된 모든 실험, 작업, 모델 및 파이프라인에 resources
적용할 권한을 정의할 수 있습니다. 사용 권한을 참조 하세요.
Databricks는 Databricks 자산 번들 리소스 권한을 관리하기 위해 이 방법을 권장합니다.
특정 리소스에 대한 권한 정의
실험, 작업, 모델 또는 파이프라인 정의에서 매핑을 사용하여 permissions
해당 리소스에 resources
대한 하나 이상의 권한을 정의할 수 있습니다.
매핑의 각 권한에는 permissions
다음 두 매핑이 포함되어야 합니다.
user_name
사용자,group_name
그룹 또는service_principal_name
서비스 주체의 이름을 각각 사용하거나,level
사용 권한 수준의 이름을 가진 입니다. 각 리소스에 대해 허용되는 권한 수준은 다음과 같습니다.- 실험:
CAN_EDIT
및CAN_MANAGE
CAN_READ
. - 작업:
CAN_MANAGE
,CAN_MANAGE_RUN
,CAN_VIEW
및IS_OWNER
. - 모델:
CAN_EDIT
,CAN_MANAGE
,CAN_MANAGE_STAGING_VERSIONS
CAN_MANAGE_PRODUCTION_VERSIONS
및CAN_READ
. - 파이프라인:
CAN_MANAGE
,CAN_RUN
,CAN_VIEW
및IS_OWNER
.
- 실험:
특정 사용 권한 수준에 대한 자세한 내용은 다음을 참조하세요.
- 실험: MLflow 실험 ACL
- 작업: 작업 ACL
- 모델: MLflow 모델 ACL
- 파이프라인: Delta Live Tables 파이프라인 ACL
참고 항목
리소스에 대해 허용되는 사용 권한 수준은 최상위 permissions
매핑을 사용하여 리소스에 적용할 수 없습니다. 매핑에 대한 permissions
유효한 사용 권한 수준은 사용 권한을 참조 하세요.
다음 구문은 최상위 resources
매핑 또는 resources
대상 내의 매핑에서 각 리소스 종류에 대해 여러 권한을 선언하는 방법을 보여 줍니다(줄임표는 간결하게 하기 위해 생략된 콘텐츠를 나타낸다).
# ...
resources:
experiments:
<some-programmatic-identifier-for-this-experiment>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
jobs:
<some-programmatic-identifier-for-this-job>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
models:
<some-programmatic-identifier-for-this-model>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name-1> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
targets:
<some-programmatic-identifier-for-this-target>:
resources:
experiments:
<some-programmatic-identifier-for-this-experiment>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
jobs:
<some-programmatic-identifier-for-this-job>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
models:
<some-programmatic-identifier-for-this-model>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
# ...
최상위 resources
매핑의 리소스에 대해 선언된 모든 권한은 개별 대상에서 동일한 resources
매핑에 대해 선언된 모든 권한과 결합됩니다. 예를 들어 최상위 수준과 대상 모두에서 동일한 리소스에 대해 다음 resources
매핑을 지정합니다(줄임표는 간결하게 하기 위해 생략된 콘텐츠를 나타낸다).
bundle:
name: my-bundle
resources:
jobs:
my-job:
# ...
permissions:
- user_name: someone@example.com
level: CAN_VIEW
# ...
targets:
dev:
# ...
resources:
jobs:
my-job:
# ...
permissions:
- user_name: someone@example.com
level: CAN_RUN
# ...
이 예제를 실행 databricks bundle validate
하면 결과 그래프는 다음과 같습니다(줄임표는 간결하게 하기 위해 생략된 콘텐츠를 나타낸다).
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"user_name": "someone@example.com"
},
{
"level": "CAN_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}