Driverless AI 보안¶
목표¶
이 문서의 목표는 Driverless AI 보안의 다양한 측면을 설명하고 취약성 표면을 줄여 시스템을 보호하는 지침을 제공하는 것입니다.
이 섹션은 제품의 다음 부분을 설명합니다.
중요한 정보¶
경고
WARNING Driverless AI의 기본 설치에서 보안이 비활성화되어 있습니다! 기본적으로 Driverless AI 설치는 사용 편의성을 목표로 하며, 이 문서에 설명된 모든 보안 기능을 활성화하지는 않습니다. 생산 환경의 경우, 이 문서에 따라 Driverless AI 설치를 수행할 것을 권장합니다.
사용자 액세스¶
인증¶
Driverless AI는 클라이언트 인증서, LDAP, 로컬, mTLS, OpenID, PAM, 없음 및 검증되지 않은(기본) 인증을 지원합니다. Driverless AI Docker 이미지 시작 시, 환경 변수를 지정하거나 config.toml 파일에서 적절한 구성 옵션을 지정하여 구성할 수 있습니다. 자세한 정보는 인증 방법 를 참조하십시오.
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
지원되는 모든 인증(예: LDAP, PAM) 방법, |
사용자 인증 방법을 정의합니다. |
|
|
해당 보안 요구 사항을 확인하십시오. |
사용자가 다시 로그인해야 하는 경과 시간. |
mTLS 인증¶
Driverless AI는 인증 기관 파일, SSL 개인 키, SSL 인증서 파일 뿐만 아니라 특정 검증 모드를 설정하여 Mutual TLS authentication(mTLS)을 지원합니다. 자세한 정보는 mTLS 인증 예제 를 참조하십시오.
데이터 보안¶
데이터 가져오기¶
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
필요한 데이터 소스만 구성합니다. |
사용 가능한/구성된 데이터 소스의 목록을 제어합니다. |
|
|
파일의 예상 크기 및 Driverless AI 배포의 크기에 따라 구성합니다. |
업로드되는 파일의 최대 크기를 제한합니다. |
|
Config.toml 참조 |
파일 형식을 대상 환경에서 사용되는 확장자로 제한하는 것이 좋습니다( |
파일 시스템 브라우저에 나열된, 지원되는 파일 형식. |
|
|
|
WebUI에 사용 가능한 모든 데이터 소스가 표시됩니다(구성되지 않은 데이터 소스 포함). 구성된 데이터 소스만 표시하는 것을 권장합니다. |
데이터 내보내기¶
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
|
데이터 세트 다운로드 기능을 제어합니다(업로드, 예측, MLI). 참고: 데이터 세트 다운로드가 비활성화된 경우, 사용자 정의 레시피를 비활성화하고 애플리케이션에서 데이터를 내보내는 다른 방법을 제거하는 것이 좋습니다. |
|
|
|
실험 페이지의 모든 다운로드를 《exports》 로 대체합니다. 사용자는 |
|
|
|
|
|
|
|
|
Notes about Artifacts:
현재는
file_system
이artifacts_store
에 대해 지정할 수 있는 유일한 옵션입니다. 향후 릴리스에서는 옵션이 추가됩니다.Artifacts_file_system_directory
의 위치는 사용자 서버의 디렉터리가 되어야 합니다.이러한 아티팩트가 활성화/구성되면 완료된 실험 페이지의 메뉴 옵션이 변경됩니다. 특히, 모든 《Download》 옵션(AutoDoc 제외)이 《Export》 로 변경됩니다. 자세한 내용은 아티팩트 내보내기 를 참조하십시오.
로그¶
Driverless AI는 다음과 같이 여러 로그를 생성합니다.
감사 로그
서버 로그
실험 로그
Driverless AI 애플리케이션의 관리자(애플리케이션의 구성 및 설정 담당자)는 로그에 기록되는 콘텐츠를 제어할 수 있습니다.
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
|
감사 로그를 보관하는 날짜 수. 값이 |
|
Config.toml 참조 |
— |
로그에 기록되지 않는 구성 옵션 목록을 포함합니다. |
|
|
Config.toml 참조 |
로그의 자세한 정도를 정의합니다. |
|
|
|
실험이 포함된 서버 로그를 덤프합니다. 서버 로그에 Driverless AI를 사용하는 다른 사용자의 실험에 대한 정보가 포함될 수 있으므로 위험합니다. |
|
|
— |
사용자 정의 레시피에서 사용하는 OSS H2O 인스턴스의 로그 수준. |
|
|
|
디버그 로그를 활성화합니다. |
|
|
|
사용자 정의 레시피 소스 코드를 로그에 덤프합니다. |
사용자 데이터 격리¶
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
디렉터리의 적절한 이름과 위치를 지정합니다. |
Driverless AI가 계산된 모든 실험 및 데이터 세트를 저장하는 디렉터리 |
|
|
|
|
|
|
|
|
|
|
로그인한 사용자의 디렉터리에 대해서는 폴더 경로 목록 또는 |
|
|
|
|
Driverless AI가 업데이트된 AutoDoc 템플릿을 검색하는 디렉터리. 빈 값 |
클라이언트-서버 통신 보안¶
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
|
HTTPS 활성화 |
|
|
올바른 개인 키. |
HTTPS/SSL 통신을 설정하는 개인 키. |
|
|
올바른 공인 인증서. |
HTTPS/SSL를 설정하는 공인 인증서. |
|
|
|
SSLv2 연결을 방지합니다. |
|
|
|
SSLv3 연결을 방지합니다. |
|
|
|
TLSv1 연결을 방지합니다. |
|
|
|
TLSv1.1 연결을 방지합니다. |
|
|
|
TLSv1.2 연결을 방지합니다. |
|
|
|
TLSv1.3 연결을 방지합니다. |
응답 헤더¶
Driverless AI 서버와 클라이언트(브라우저, Python/R 클라이언트) 간에 전달되는 응답 헤더는 다음 옵션으로 제어합니다.
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
아래 참조 |
서버 응답으로 반환되는 HTTP 헤더를 구성합니다. |
권장 응답 헤더¶
헤더 |
설명 |
예시값 |
링크 |
---|---|---|---|
|
헤더를 통해 웹사이트는 HTTP 대신 HTTPS를 사용하여 액세스해야 한다고 브라우저에 알릴 수 있습니다. |
|
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Headers/Strict-Transport-Security |
|
콘텐츠 보안 정책(Content Security Policy, CSP)은 교차 사이트 스크립팅 및 데이터 주입 공격을 포함한 특정 유형의 공격을 감지하고 완화하기 위한 추가 보안 계층입니다. |
참고: Driverless AI에 여전히 |
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Headers/Content-Security-Policy https://developer.mozilla.org/ko-KR/docs/Web/HTTP/CSP https://infosec.mozilla.org/guidelines/web_security#Examples_5 |
|
페이지가 프레임에서 렌더링할 소스를 가져오는 위치를 제어합니다. 여기 있는 값은 기본값 |
|
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Headers/X-Frame-Options |
|
브라우저가 선언된 컨텐츠 유형과 다른 리소스 컨텐츠 유형을 확인하지 않도록 합니다. |
|
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Headers/X-Content-Type-Options |
|
HTTP X-XSS-Protection 응답 헤더는 리플렉션된 교차 사이트 스크립팅(XSS) 공격이 감지되는 경우 페이지 로딩을 중지하는 Internet Explorer, Chrome, Safari의 기능입니다. 값을 1로 설정하고 교차 사이트 스크립팅 공격이 감지되면, 브라우저가 페이지를 삭제합니다(안전하지 않은 부분을 삭제함). |
|
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Headers/X-XSS-Protection |
고려할 기타 헤더¶
헤더 |
문서 |
---|---|
|
https://developer.mozilla.org/ko-KR/docs/Web/HTTP/Public_Key_Pinning https://developer.mozilla.org/ko-KR/docs/Web/HTTP/CORS |
웹 UI 보안¶
참고
Driverless AI UI는 사용하기 쉽게 설계되었으며 자동 완성 등의 모든 기능이 기본적으로 활성화되어 있습니다. 사용자 친화적 기능을 비활성화하면 애플리케이션의 보안은 향상되지만 애플리케이션의 사용자 편의성과 유용성에 영향을 미칩니다.
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
|
웹 UI 요소의 자동 완성을 제어합니다(예: 로그인 입력). |
|
|
|
웹 브라우저 로컬 스토리지의 사용을 비활성화합니다. |
|
|
|
WebUI에 사용 가능한 모든 데이터 소스가 표시됩니다(구성되지 않은 데이터 소스 포함). 구성된 데이터 소스만 표시하는 것을 권장합니다. |
|
|
|
세션을 초기화한 IP에 대해 각 요청 IP를 확인합니다. |
|
|
|
동시 세션(로그인)을 비활성화합니다. |
|
|
|
XSRF(cross-site request forgery) 보호를 활성화합니다. |
|
|
|
보안 쿠키 플래그를 활성화합니다. HTTPS가 활성화되어 있어야 합니다. |
사용자 정의 레시피 보안¶
참고
기본적으로 Driverless AI는 데이터 과학 팀이 애플리케이션 기능을 확장하는 주요 경로로써 사용자 정의 레시피를 활성화합니다. 엔터프라이즈 환경에서는, 사용자 정의 레시피 개발을 위해 최선의 소프트웨어 엔지니어링 실무를 따르고(코드 검토, 테스트, 스테이지 릴리스 등), 사전 정의되고 승인된 사용자 정의 Driverless AI 확장만 번들로 묶는 것이 좋습니다.
옵션 |
기본값 |
권장값 |
설명 |
---|---|---|---|
|
|
|
사용자 정의 Python 레시피를 활성화합니다. |
|
|
|
사용자 정의 레시피의 업로드를 활성화합니다. |
|
|
|
외부 URL의 사용자 정의 레시피의 다운로드를 활성화합니다. |
|
|
|
기본 포함 목록에 사용자 정의 레시피를 포함합니다(경고: 모든 사용자 정의 레시피가 활성화됨). |
|
|
|
사용자 정의 레시피에 대한 코드 정적 분석을 활성화합니다. |
참고
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