Dataproc 서비스 계정 기반 보안 멀티테넌시(아래에서 '보안 멀티테넌시'라고 함)를 사용하면 클러스터를 만들 때 서비스 계정에 매핑된 사용자 그룹을 사용하여 여러 사용자와 클러스터를 공유할 수 있습니다. 보안 멀티테넌시를 사용하면 사용자가 격리된 사용자 ID가 있는 클러스터에 양방향 워크로드를 제출할 수 있습니다.
사용자가 클러스터에 작업을 제출하면 작업은 다음을 수행합니다.
특정 Kerberos 주 구성원이 있는 특정 OS 사용자로 실행
매핑된 서비스 계정 사용자 인증 정보를 사용하여 Google Cloud 리소스에 액세스
고려사항 및 제한사항
보안 멀티테넌시가 사용 설정된 클러스터를 만드는 경우:
Dataproc Jobs API를 통해서만 작업을 제출할 수 있습니다.
매핑된 서비스 계정이 있는 사용자만 클러스터를 사용할 수 있습니다. 예를 들어 매핑되지 않은 사용자는 클러스터에서 작업을 실행할 수 없습니다.
서비스 계정은 Google 그룹이 아닌 Google 사용자에게만 매핑할 수 있습니다.
Dataproc 구성요소 게이트웨이는 사용 설정되어 있지 않습니다.
클러스터 VM에서 시작 스크립트를 실행하는 기능과 같은 클러스터 및 Compute Engine 기능에 대한 직접 SSH 액세스가 차단됩니다. 또한
sudo
권한으로 작업을 실행할 수 없습니다.Kerberos는 클러스터에서 클러스터 내 보안 통신을 위해 사용 설정되고 구성됩니다. Kerberos를 통한 최종 사용자 인증은 지원되지 않습니다.
Dataproc 워크플로는 지원되지 않습니다.
보안 멀티테넌시 클러스터 만들기
Dataproc 보안 멀티테넌시 클러스터를 만들려면 --secure-multi-tenancy-user-mapping
플래그를 사용하여 사용자-서비스 계정 매핑 목록을 지정합니다.
예:
다음 명령어는 bob@my-company.com
사용자가 service-account-for-bob@iam.gserviceaccount.com
서비스 계정에 매핑되고 alice@my-company.com
사용자가 service-account-for-alice@iam.gserviceaccount.com
서비스 계정에 매핑된 클러스터를 만듭니다.
gcloud dataproc clusters create my-cluster \ --secure-multi-tenancy-user-mapping="bob@my-company.com:service-account-for-bob@iam.gserviceaccount.com,alice@my-company.com:service-account-for-alice@iam.gserviceaccount.com" \ --scopes=https://www.googleapis.com/auth/iam \ --service-account=cluster-service-account@iam.gserviceaccount.com \ --region=region \ other args ...
또는 사용자-서비스 계정 매핑 목록을 로컬 또는 Cloud Storage YAML 또는 JSON 파일에 저장할 수 있습니다. --identity-config-file
플래그를 사용하여 파일 위치를 지정합니다.
샘플 ID 구성 파일:
user_service_account_mapping: bob@my-company.com: service-account-for-bob@iam.gserviceaccount.com alice@my-company.com: service-account-for-alice@iam.gserviceaccount.com
--identity-config-file
플래그를 사용하여 클러스터를 만드는 샘플 명령어:
gcloud dataproc clusters create my-cluster \ --identity-config-file=local or "gs://bucket" /path/to/identity-config-file \ --scopes=https://www.googleapis.com/auth/iam \ --service-account=cluster-service-account@iam.gserviceaccount.com \ --region=region \ other args ...
참고:
위의 명령어에 표시된 것처럼 클러스터
--scopes
에는 클러스터 서비스 계정이 가장을 수행하는 데 필요한https://www.googleapis.com/auth/iam
이 최소한 포함되어야 합니다.클러스터 서비스 계정에는 사용자에게 매핑된 서비스 계정을 가장할 수 있는 권한이 있어야 합니다(서비스 계정 권한 참조).
권장사항: 각 클러스터에 서로 다른 클러스터 서비스 계정을 사용하여 각 클러스터 서비스 계정이 제한되고 의도한 매핑된 사용자 서비스 계정 그룹만 가장할 수 있도록 합니다.