Driverless AI 보안

목표

이 문서의 목표는 Driverless AI 보안의 다양한 측면을 설명하고 취약성 표면을 줄여 시스템을 보호하는 지침을 제공하는 것입니다.

이 섹션은 제품의 다음 부분을 설명합니다.

중요한 정보

경고

WARNING Driverless AI의 기본 설치에서 보안이 비활성화되어 있습니다! 기본적으로 Driverless AI 설치는 사용 편의성을 목표로 하며, 이 문서에 설명된 모든 보안 기능을 활성화하지는 않습니다. 생산 환경의 경우, 이 문서에 따라 Driverless AI 설치를 수행할 것을 권장합니다.


사용자 액세스

인증

Driverless AI는 클라이언트 인증서, LDAP, 로컬, mTLS, OpenID, PAM, 없음 및 검증되지 않은(기본) 인증을 지원합니다. Driverless AI Docker 이미지 시작 시, 환경 변수를 지정하거나 config.toml 파일에서 적절한 구성 옵션을 지정하여 구성할 수 있습니다. 자세한 정보는 인증 방법 를 참조하십시오.

옵션

기본값

권장값

설명

authentication_method

"unvalidated"

지원되는 모든 인증(예: LDAP, PAM) 방법, "unvalidated""none" 제외.

사용자 인증 방법을 정의합니다.

authentication_default_timeout_hours

72

해당 보안 요구 사항을 확인하십시오.

사용자가 다시 로그인해야 하는 경과 시간.

mTLS 인증

Driverless AI는 인증 기관 파일, SSL 개인 키, SSL 인증서 파일 뿐만 아니라 특정 검증 모드를 설정하여 Mutual TLS authentication(mTLS)을 지원합니다. 자세한 정보는 mTLS 인증 예제 를 참조하십시오.

권한 부여 방법

Driverless AI는 현재 어떠한 인증도 수행하지 않습니다.


데이터 보안

데이터 가져오기

옵션

기본값

권장값

설명

enabled_file_systems

"upload, file, hdfs, s3"

필요한 데이터 소스만 구성합니다.

사용 가능한/구성된 데이터 소스의 목록을 제어합니다.

max_file_upload_size

104857600000B

파일의 예상 크기 및 Driverless AI 배포의 크기에 따라 구성합니다.

업로드되는 파일의 최대 크기를 제한합니다.

supported_file_types

Config.toml 참조

파일 형식을 대상 환경에서 사용되는 확장자로 제한하는 것이 좋습니다(parquet 등).

파일 시스템 브라우저에 나열된, 지원되는 파일 형식.

show_all_filesystems

true

false

WebUI에 사용 가능한 모든 데이터 소스가 표시됩니다(구성되지 않은 데이터 소스 포함). 구성된 데이터 소스만 표시하는 것을 권장합니다.

데이터 내보내기

옵션

기본값

권장값

설명

enable_dataset_downloading

true

false (데이터 세트 다운로드 비활성화)

데이터 세트 다운로드 기능을 제어합니다(업로드, 예측, MLI). 참고: 데이터 세트 다운로드가 비활성화된 경우, 사용자 정의 레시피를 비활성화하고 애플리케이션에서 데이터를 내보내는 다른 방법을 제거하는 것이 좋습니다.

enable_artifacts_upload

false

false

실험 페이지의 모든 다운로드를 《exports》 로 대체합니다. 사용자는 artifacts_store 로 구성된 아티팩트 저장소로 푸시할 수 있습니다(아래 참고 사항 참조).

artifacts_store

file_system

file_system

Artifacts_file_system_directory 로 표시된 file system directory에 MOJO를 저장합니다(아래 참고 사항 참조).

artifacts_file_system_directory

tmp

tmp

artifacts_storefile_system 으로 설정한 경우 아티팩트가 복사될 파일 시스템 위치(아래 참고 사항 참조).

Notes about Artifacts:

  • 현재는 file_systemartifacts_store 에 대해 지정할 수 있는 유일한 옵션입니다. 향후 릴리스에서는 옵션이 추가됩니다.

  • Artifacts_file_system_directory 의 위치는 사용자 서버의 디렉터리가 되어야 합니다.

  • 이러한 아티팩트가 활성화/구성되면 완료된 실험 페이지의 메뉴 옵션이 변경됩니다. 특히, 모든 《Download》 옵션(AutoDoc 제외)이 《Export》 로 변경됩니다. 자세한 내용은 아티팩트 내보내기 를 참조하십시오.

Completed experiments menus

로그

Driverless AI는 다음과 같이 여러 로그를 생성합니다.

  • 감사 로그

  • 서버 로그

  • 실험 로그

Driverless AI 애플리케이션의 관리자(애플리케이션의 구성 및 설정 담당자)는 로그에 기록되는 콘텐츠를 제어할 수 있습니다.

옵션

기본값

권장값

설명

audit_log_retention_period

5 (일)

0 (감사 로그 순환 비활성화)

감사 로그를 보관하는 날짜 수. 값이 0 이면 순환이 비활성화됨.

do_not_log_list

Config.toml 참조

로그에 기록되지 않는 구성 옵션 목록을 포함합니다.

log_level

1

Config.toml 참조

로그의 자세한 정도를 정의합니다.

collect_server_logs_in_experiment_logs

false

false

실험이 포함된 서버 로그를 덤프합니다. 서버 로그에 Driverless AI를 사용하는 다른 사용자의 실험에 대한 정보가 포함될 수 있으므로 위험합니다.

h2o_recipes_log_level

None

사용자 정의 레시피에서 사용하는 OSS H2O 인스턴스의 로그 수준.

debug_log

false

false

디버그 로그를 활성화합니다.

write_recipes_to_experiment_logger

false

false

사용자 정의 레시피 소스 코드를 로그에 덤프합니다.

사용자 데이터 격리

옵션

기본값

권장값

설명

data_directory

"./tmp"

디렉터리의 적절한 이름과 위치를 지정합니다.

Driverless AI가 계산된 모든 실험 및 데이터 세트를 저장하는 디렉터리

file_hide_data_directory

true

true

data_directoryfile -시스템 브라우저에 숨깁니다. data_directory 를 검색 및 손상으로부터 보호하기 위해 숨기는 것을 권장합니다.

file_path_filtering_enabled

false

true

file -시스템 브라우저의 경로 필터를 활성화합니다(file 데이터 소스). 필터는 기본적으로 비활성화되어 있어, 사용자가 전체 애플리케이션 로컬 파일 시스템을 검색할 수 있습니다.

file_path_filter_include

[]

로그인한 사용자의 디렉터리에 대해서는 폴더 경로 목록 또는 {{DAI_USERNAME}} 을 포함시킵니다. 예: "['/home/{{DAI_USERNAME}}/','/data/prod']".

file -브라우저에서 액세스를 제한할 절대 경로 프리픽스 목록.

autodoc_additional_template_folder

""

""

Driverless AI가 업데이트된 AutoDoc 템플릿을 검색하는 디렉터리. 빈 값 "" 을 입력하면 이 기능이 비활성화됩니다.


클라이언트-서버 통신 보안

옵션

기본값

권장값

설명

enable_https

false

true

HTTPS 활성화

ssl_key_file

"/etc/dai/private_key.pem"

올바른 개인 키.

HTTPS/SSL 통신을 설정하는 개인 키.

ssl_crt_file

"/etc/dai/cert.pem"

올바른 공인 인증서.

HTTPS/SSL를 설정하는 공인 인증서.

ssl_no_sslv2

true

true

SSLv2 연결을 방지합니다.

ssl_no_sslv3

true

true

SSLv3 연결을 방지합니다.

ssl_no_tlsv1

true

true

TLSv1 연결을 방지합니다.

ssl_no_tlsv1_1

true

true

TLSv1.1 연결을 방지합니다.

ssl_no_tlsv1_2

false

false (TLSv1.3을 사용할 수 있는 경우에만 TLSv1.2 비활성화함)

TLSv1.2 연결을 방지합니다.

ssl_no_tlsv1_3

false

false

TLSv1.3 연결을 방지합니다.

응답 헤더

Driverless AI 서버와 클라이언트(브라우저, Python/R 클라이언트) 간에 전달되는 응답 헤더는 다음 옵션으로 제어합니다.

옵션

기본값

권장값

설명

extra_http_headers

"{}"

아래 참조

서버 응답으로 반환되는 HTTP 헤더를 구성합니다.

웹 UI 보안

참고

Driverless AI UI는 사용하기 쉽게 설계되었으며 자동 완성 등의 모든 기능이 기본적으로 활성화되어 있습니다. 사용자 친화적 기능을 비활성화하면 애플리케이션의 보안은 향상되지만 애플리케이션의 사용자 편의성과 유용성에 영향을 미칩니다.

옵션

기본값

권장값

설명

allow_form_autocomplete

true

false

웹 UI 요소의 자동 완성을 제어합니다(예: 로그인 입력).

allow_localstorage

true

false

웹 브라우저 로컬 스토리지의 사용을 비활성화합니다.

show_all_filesystems

true

false

WebUI에 사용 가능한 모든 데이터 소스가 표시됩니다(구성되지 않은 데이터 소스 포함). 구성된 데이터 소스만 표시하는 것을 권장합니다.

verify_session_ip

false

true

세션을 초기화한 IP에 대해 각 요청 IP를 확인합니다.

allow_concurrent_sessions

true

false

동시 세션(로그인)을 비활성화합니다.

enable_xsrf_protection

true

true

XSRF(cross-site request forgery) 보호를 활성화합니다.

enable_secure_cookies

false

true

보안 쿠키 플래그를 활성화합니다. HTTPS가 활성화되어 있어야 합니다.


사용자 정의 레시피 보안

참고

기본적으로 Driverless AI는 데이터 과학 팀이 애플리케이션 기능을 확장하는 주요 경로로써 사용자 정의 레시피를 활성화합니다. 엔터프라이즈 환경에서는, 사용자 정의 레시피 개발을 위해 최선의 소프트웨어 엔지니어링 실무를 따르고(코드 검토, 테스트, 스테이지 릴리스 등), 사전 정의되고 승인된 사용자 정의 Driverless AI 확장만 번들로 묶는 것이 좋습니다.

옵션

기본값

권장값

설명

enable_custom_recipes

true

false

사용자 정의 Python 레시피를 활성화합니다.

enable_custom_recipes_upload

true

false

사용자 정의 레시피의 업로드를 활성화합니다.

enable_custom_recipes_from_url

true

false

외부 URL의 사용자 정의 레시피의 다운로드를 활성화합니다.

include_custom_recipes_by_default

false

false

기본 포함 목록에 사용자 정의 레시피를 포함합니다(경고: 모든 사용자 정의 레시피가 활성화됨).

custom_recipe_security_analysis_enabled

false

true

사용자 정의 레시피에 대한 코드 정적 분석을 활성화합니다.

참고

Custom_recipe_security_analysis_enabled 는 기본적으로 비활성화되어 있습니다. 활성화할 경우, 보안 분석을 통과할 수 없는 레시피를 사용한 기존 실험에 문제가 발생할 수 있기 때문입니다. 그로 인해 해당 실험으로는 새 데이터 세트의 채점이 불가능할 수 있으며 레시피를 다시 업로드해야 합니다. 그러나, 보안상의 이유로 이 옵션은 enable 하는 것이 좋습니다.


구성 보안

Driverless AI는 보안 설정을 config.toml 파일에 일반 텍스트로 유지하는 대신, 암호화된 키 저장소에 민감한 구성 정보나 보안 구성 정보를 저장하는 옵션을 제공합니다. 민감한 정보는 암호화를 강력하게 권장합니다. 자세한 내용은 구성 보안 을 참조하십시오.

기준 보안 구성

다음 Driverless AI 구성은 보안 구성의 예입니다. 모든 필수 config 옵션을 지정해야 합니다. 자세한 내용은 config.toml 파일 사용 을 참조하십시오.

#
# Authentication
#

# Configure auth method
authentication_method="PAM"

# Redirect user to login page after 24 hours
authentication_default_timeout_hours=24

#
# Data
#

# Configure available connectors
enabled_file_systems="hdfs"
show_all_filesystems=false

# Restrict downloads
enable_dataset_downloading=false

#
# Logs
#

# Enable removal of audit log records every five days
audit_log_retention_period=5

# Disable collection of server logs
collect_server_logs_in_experiment_logs=false

#
# User data isolation
#

# Disable access to DAI data_directory from file browser
file_hide_data_directory=true

# (Optional) Enable usage of path filters
# file_path_filtering_enabled=true

# (Optional) Specify a list of absolute path prefixes to restrict access to in file browser
# file_path_filter_include = "['/data']")

# (Optional) Specify a directory containing updated AutoDoc templates
# autodoc_additional_template_folder = ""

#
# Client-Server Communication
#

enable_https=true
ssl_key_file="<<FILL ME>>"
ssl_crt_file="<<FILL ME>>"

# (Optional) Disable support of TLSv1.2 on server side only if your environment supports TLSv1.3
# ssl_no_tlsv1_2=true

#
# Web UI security
#

allow_form_autocomplete=false
allow_localstorage=false
verify_session_ip=true
allow_concurrent_sessions=false
enable_xsrf_protection=true

extra_http_headers='{ "Strict-Transport-Security":"max-age=63072000","Content-Security-Policy":"default-src https: ; font-src \'self\'; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; style-src \'self\' \'unsafe-inline\'; object-src \'none\'", "X-Frame-Options":"deny", "X-Content-Type-Options":"nosniff", "X-XSS-Protection":"1; mode=block" }'

#
# Custom Recipes
#

enable_custom_recipes=false
enable_custom_recipes_upload=false
enable_custom_recipes_from_url=false
include_custom_recipes_by_default=false
custom_recipe_security_analysis_enabled=true