Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать параметр run_as для указания используемого удостоверения при выполнении рабочих процессов в декларативных пакетах автоматизации.
Этот run_as параметр можно настроить как сопоставление верхнего уровня для применения к ресурсам или в target сопоставлении развертывания в файле конфигурации пакета. Его можно установить на user_name или service_principal_name. (Неадминистраторы могут устанавливать это поле только на свою собственную электронную почту.)
Этот параметр позволяет отделять идентификатор, используемый для развертывания задания или конвейера, от идентификатора, который используется рабочим процессом во время выполнения. Это повышает гибкость разработки и управления пакетами, а также позволяет устанавливать ограждения для развертываний и запусков. В частности:
- Если удостоверение, используемое для развертывания пакета, совпадает с удостоверением, настроенным в параметре пакета
run_as, нет ограничений. Поддерживаются все ресурсы пакета. - Если удостоверение, используемое для развертывания пакета, отличается от удостоверения, настроенного в параметре пакета
run_as, поддерживаются только задания и конвейеры.
Установить идентификатор запуска пакета
Чтобы задать идентификатор запуска ресурсов пакета, укажите run_as в качестве сопоставления верхнего уровня, как показано в следующем примере:
bundle:
name: 'run_as'
# This is the identity that will be used when "databricks bundle run my_test_job_1" is executed.
run_as:
service_principal_name: '5cf3z04b-a73c-4x46-9f3d-52da7999069e'
resources:
jobs:
my_test_job_1:
name: Test job 1
tasks:
- task_key: 'task_1'
new_cluster:
num_workers: 1
spark_version: 13.2.x-snapshot-scala2.12
node_type_id: i3.xlarge
runtime_engine: PHOTON
notebook_task:
notebook_path: './test.py'
my_test_job_2:
name: Test job 2
run_as: # This is the identity that will be used when "databricks bundle run my_test_job_2" is executed.
service_principal_name: '69511ed2-zb27-444c-9863-4bc8ff497637'
tasks:
- task_key: 'task_2'
notebook_task:
notebook_path: './test.py'
Внимание
Параметр run_as не поддерживается для конечных точек обслуживания моделей. Ошибка возникает, если эти ресурсы определены в пакете, где run_as также настроены.
Задание идентификаторов целевого развертывания
Целесообразно настроить идентификаторы запуска для промежуточных и рабочих целевых сред развертывания. Кроме того, настройка удостоверения для субъектов-служб run_as на целевых производственных объектах является наиболее безопасным способом выполнения производственного рабочего процесса.
- Гарантирует, что рабочий процесс был развернут тем же service principal или кем-либо, имеющим разрешения CAN_USE на этот service principal.
- Отделяет разрешение на запуск производственного рабочего процесса от личности, создавшей или развернувшей пакет.
- Позволяет пользователям настраивать и задавать учетную запись службы для продуктивной среды с меньшим количеством разрешений, чем идентификатор, используемый для развертывания производственного пакета.
В следующем примере databricks.yml файла конфигурации были настроены три целевых режима: разработка, промежуточное развертывание и рабочая среда. Режим разработки настроен на запуск от имени отдельного пользователя, а промежуточный и рабочий режимы настроены на запуск с использованием двух разных служебных принципалов. Субъекты-службы всегда находятся в виде идентификатора приложения, который можно получить на странице субъекта-службы в параметрах администратора рабочей области.
bundle:
name: my_targeted_bundle
run_as:
service_principal_name: '5cf3z04b-a73c-4x46-9f3d-52da7999069e'
targets:
# Development deployment settings, set as the default
development:
mode: development
default: true
workspace:
host: https://my-host.cloud.databricks.com
run_as:
user_name: someone@example.com
# Staging deployment settings
staging:
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/staging-workspace/.bundle/${bundle.name}/${bundle.target}
run_as:
service_principal_name: '69511ed2-zb27-444c-9863-4bc8ff497637'
# Production deployment settings
production:
mode: production
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/production-workspace/.bundle/${bundle.name}/${bundle.target}
run_as:
service_principal_name: '68ed9cd5-8923-4851-x0c1-c7536c67ff99'
resources:
jobs:
my_test_job:
name: Test job
tasks:
- task_key: 'task'
new_cluster:
num_workers: 1
spark_version: 13.3.x-cpu-ml-scala2.12
node_type_id: i3.xlarge
runtime_engine: STANDARD
notebook_task:
notebook_path: './test.py'