이 문서에서는 Secret Manager를 Dataproc Serverless와 함께 사용자 인증 정보 저장소로 사용하여 서버리스 워크로드에서 처리되는 민감한 정보를 안전하게 저장하고 액세스하는 방법을 설명합니다.
개요
Secret Manager는 API 키, 비밀번호, 인증서와 같은 민감한 정보를 보호할 수 있습니다. 이를 사용하여 Google Cloud에서 보안 비밀을 관리하고 액세스하고 감사할 수 있습니다.
Dataproc 서버리스 일괄 워크로드를 실행할 때 Dataproc Secret Manager 사용자 인증 정보 제공업체를 사용하여 Secret Manager 보안 비밀을 사용하도록 구성할 수 있습니다.
가용성
이 기능은 Spark를 위한 Dataproc Serverless 런타임 버전 1.2.29 이상, 2.2.29 이상 또는 이후 주요 런타임 버전에서 사용할 수 있습니다.
용어
다음 표에서는 이 문서에 사용된 용어를 설명합니다.
용어 | 설명 |
---|---|
Secret |
Secret Manager 보안 비밀은 메타데이터 및 보안 비밀 버전 모음이 포함된 전역 프로젝트 객체입니다. 보안 비밀을 바이너리 blob 또는 텍스트 문자열로 저장, 관리, 액세스할 수 있습니다. |
Credential |
Hadoop 및 기타 Dataproc 워크로드에서 사용자 인증 정보는 사용자 인증 정보 이름 (ID)과 사용자 인증 정보 값 (비밀번호)으로 구성됩니다. 사용자 인증 정보 ID와 값은 Secret Manager 보안 비밀 ID 및 보안 비밀 값 (보안 비밀 버전)에 매핑됩니다. |
사용
Dataproc Serverless 워크로드를 제출할 때 다음 속성을 설정하여 Secret Manager에서 작동하도록 지원되는 Hadoop 및 기타 OSS 구성요소를 구성할 수 있습니다.
제공 프로그램 경로(필수): 제공 프로그램 경로 속성
hadoop.security.credential.provider.path
는 사용자 인증 정보를 확인하기 위해 전달되는 하나 이상의 사용자 인증 정보 제공 프로그램 URI의 쉼표로 구분된 목록입니다.--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- 제공업체 경로의
scheme
는 사용자 인증 정보 제공 프로그램 유형을 나타냅니다. Hadoop 스키마에는jceks://
,user://
,localjceks://
가 포함됩니다.gsm://
스키마를 사용하여 Secret Manager에서 사용자 인증 정보를 검색합니다.
- 제공업체 경로의
대체 점 연산자 : Secret Manager 서비스는 보안 비밀 이름에 점 (
.
)을 허용하지 않습니다. 그러나 일부 오픈소스 소프트웨어(OSS) 구성요소는 사용자 인증 정보 키에 점(.)을 사용합니다. 이 제한사항을 해결하려면 이 속성을 사용 설정하여 사용자 인증 정보 이름에서 점 (.
)을 하이픈 (-
)으로 바꿉니다. 이렇게 하면 이름에 점(.)이 있는 OSS 사용자 인증 정보를 Secret Manager에서 올바르게 저장하고 검색할 수 있습니다.예를 들어 OSS 사용자 인증 정보 키가
a.b.c
인 경우 Secret Manager에 저장할 때 이를a-b-c
로 수정해야 합니다.--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
이 속성은 선택사항입니다. 기본값은
false
입니다. 사용자 인증 정보 이름에 점 (.
) 연산자가 없는 사용자 인증 정보 키의 경우 이 속성을 무시해도 됩니다.보안 비밀 버전 : Secret Manager의 보안 비밀에는 여러 버전 (값)이 있을 수 있습니다. 이 속성을 사용하여 프로덕션 환경에서 안정적으로 액세스할 수 있도록 특정 보안 비밀 버전에 액세스합니다.
--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
이 속성은 선택사항입니다. 기본적으로 Secret Manager는 런타임 시 보안 비밀의 최신 값으로 확인되는
LATEST
버전에 액세스합니다. 보안 비밀의LATEST
버전에 항상 액세스하는 것이 사용 사례인 경우 이 속성은 무시해도 됩니다.
Secret Manager 사용자 인증 정보 제공 프로그램으로 일괄 워크로드 실행
Secret Manager 인증 관리자를 사용하는 일괄 워크로드를 제출하려면 로컬 또는 Cloud Shell에서 다음 명령어를 실행합니다.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
다음을 바꿉니다.
- REGION: 워크로드가 실행되는 Compute Engine 리전
- JARS: 워크로드 jar 경로
- MAIN_CLASS: Jar 기본 클래스
- PROJECT_ID: Google Cloud 콘솔 대시보드의 프로젝트 정보 섹션에 표시된 프로젝트 ID입니다.