보안 모델
IBM Analytics Engine 서버리스 인스턴스는 관리자와 개발자가 보안 Spark 클러스터를 작성할 수 있도록 설계된 보안 아키텍처를 제공합니다.
다음 절에서는 IBM Analytics Engine 서버리스 인스턴스의 보안 모델이 보안 인스턴스에 대한 액세스 및 제어를 관리하는 방법에 대해 설명합니다.
IBM Analytics Engine 활동에 대한 액세스 제어
IBM Analytics Engine 서버리스 인스턴스에 대한 액세스는 IAM 인증 및 권한 부여에 의해 제어됩니다. IAM은 IBM Cloud®의 Identity and Access Management 서비스입니다. 사용자 인증 및 액세스 제어는 IBM ID를 사용하여 로그인할 때 IAM을 통해 이루어집니다. IAM 토큰 검색 방법을 참조하십시오.
서비스 인스턴스의 관리자 또는 작성자는 서비스 인스턴스를 공유할 수 있는 다른 사용자에게 액세스를 부여하거나 거부할 수 있습니다. 인스턴스 구성 수정, Spark 애플리케이션 제출 및 추적 또는 사용자 정의 라이브러리 세트가 있는 인스턴스 사용자 정의와 같은 서비스 인스턴스 라이프사이클 관리의 모든 활동은 IAM 인증 및 권한 부여를 통해 제어됩니다. 지원되는 오퍼레이션 및 각 오퍼레이션에 필요한 액세스 레벨을 이해하려면 사용자에게 권한 부여를 참조하십시오.
저장 시 암호화
IBM Cloud Object Storage 은 클러스터에서 Spark 작업을 실행하는 데 필요한 데이터를 저장하기 위해 권장되는 데이터 저장소입니다. IBM Cloud Object Storage 은 기본 내장 암호화와 함께 제공됩니다. 데이터 암호화를 참조하십시오.
또한 대규모 데이터에 대한 분석 시나리오에서 IBM Cloud Object Storage 스토리지 암호화를 사용하는 대신 Parquet 모듈 암호화를 사용할 수 있습니다 (특히 세분화된 액세스 제어가 중요한 경우). Parquet 모듈 암호화에 대한 작업 을 참조하십시오.
엔드포인트 암호화
클러스터에 대한 모든 서비스 엔드포인트는 SSL 암호화(TLS 1.2 사용)입니다. 또한 IBM Analytics Engine을 IBM Cloud Object Storage에서 사용할 때, Object Storage 서비스 인스턴스와 IBM Analytics Engine 간의 링크가 암호화됩니다.
격리 및 네트워크 액세스
각 IBM Analytics Engine 서버리스 인스턴스는 네트워크 및 보안 대기 위치에서 다른 인스턴스와의 연결이 끊어진 격리된 고유 샌드박스입니다.
인스턴스에 배치된 Spark 워크로드는 다음을 수행할 수 있습니다.
- 동일한 인스턴스에 배치된 다른 Spark 워크로드와 통신합니다.
- 공용 인터넷과 통신
- 개인용 엔드포인트를 통해 다른 IBM Cloud® 서비스와 연결할 수 있습니다.
하나의 IBM Analytics Engine 인스턴스의 Spark 워크로드는 다른 인스턴스의 Spark 워크로드와 통신할 수 없습니다. 인스턴스 격리에 대한 자세한 정보는 인스턴스 아키텍처를 참조하십시오.
코드 보안 확인
라이브러리 또는 패키지 사용자 정의를 인스턴스에 적용할 때 주의하는 것이 좋습니다. 인스턴스의 전체 보안을 손상시키지 않도록 신뢰할 수 있는 소스에서만 보안 코드를 사용해야 합니다.
IBM은 인스턴스에 업로드하기 전에 사용하는 소스 코드, 라이브러리, 패키지를 스캔하도록 권장합니다. 신뢰할 수 없는 코드의 사용은 다른 사용자에게 영향을 주지 않지만 자신에게 영향을 줄 수 있습니다.
Spark 워크로드에 대한 내부 네트워크 데이터 암호화
IBM Analytics Engine 은 Spark 애플리케이션 구성요소 간의 내부 통신 암호화를 허용합니다. 사설 네트워크에서 암호화를 사용하려면 다음 두 가지 방법 중 하나로 구성을 지정하십시오.
-
IBM Analytics Engine 인스턴스를 프로비저닝할 때 default_config 속성 아래에 구성을 지정하십시오.
예:
"default_config": { "spark.ssl.enabled":"true" } -
작업을 제출할 때
conf아래의 페이로드에서 옵션을 지정하십시오.예:
{ "conf": { "spark.ssl.enabled":"true" } }