선택적 구성요소 기능을 사용하여 Dataproc 클러스터를 만들 때 Ranger와 같은 추가 구성요소를 설치할 수 있습니다. 이 페이지에서는 Ranger 구성요소를 설명합니다.
Apache Ranger 구성요소는 Hadoop 생태계에 대한 권한 및 감사를 관리하는 오픈소스 프레임워크입니다. Ranger 관리 서버 및 웹 UI는 클러스터의 첫 번째 마스터 노드에 있는 포트 6080
에서 사용할 수 있습니다.
추가 참조:
구성요소 설치
Dataproc 클러스터를 만들 때 구성요소를 설치합니다. 구성요소는 Dataproc 버전 1.3 이상으로 만든 클러스터에 추가할 수 있습니다. Ranger 구성요소를 사용하려면 아래와 같이 Solr 구성요소를 설치해야 합니다.
각 Dataproc 이미지 출시에 포함된 구성요소 버전은 지원되는 Dataproc 버전을 참조하세요.
설치 단계:
Ranger 관리자 비밀번호를 설정합니다.
- 클러스터 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다. 기본적으로 클러스터 서비스 계정은 다음 형식의 Compute Engine 기본 서비스 계정으로 설정됩니다.
project-number-compute@developer.gserviceaccount.com
아래에서 클러스터를 만들 때 다른 클러스터 서비스 계정을 지정할 수 있습니다.- 예시: Compute Engine 기본 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다.
gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyDecrypter
- 예시: Compute Engine 기본 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다.
- 키 관리 서비스(KMS) 키를 사용하여 Ranger 관리자의 비밀번호를 암호화합니다. 비밀번호는 최소 8자 이상이어야 하며 영문자와 숫자가 각각 1자 이상이어야 합니다.
- 예시:
- 키링을 만듭니다.
gcloud kms keyrings create my-keyring --location=global
- 키를 만듭니다.
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption
- Ranger 관리자의 비밀번호를 암호화합니다.
echo "my-ranger-admin-password" | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted
- 키링을 만듭니다.
- 예시:
- 암호화된 비밀번호를 프로젝트의 Cloud Storage 버킷에 업로드합니다.
- 예:
gsutil cp admin-password.encrypted gs://my-bucket
- 예:
- 클러스터 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다. 기본적으로 클러스터 서비스 계정은 다음 형식의 Compute Engine 기본 서비스 계정으로 설정됩니다.
클러스터 만들기:
- Ranger 구성요소를 설치할 때 다음과 같이 Solr 구성요소도 설치해야 합니다.
- Ranger 구성요소는 기본적으로 HDFS를 스토리지로 사용하는 감사 로그를 저장하고 쿼리하기 위해 Solr 구성요소를 사용합니다. 클러스터가 삭제되면 이 HDFS 데이터도 삭제됩니다. Cloud Storage에서 Ranger 감사 로그를 포함한 데이터를 저장하도록 Solr 구성요소를 구성하려면 클러스터를 만들 때
dataproc:solr.gcs.path=gs://<bucket>
클러스터 속성을 사용합니다. Cloud Storage 데이터는 클러스터가 삭제된 후에도 유지됩니다.
- Ranger 구성요소는 기본적으로 HDFS를 스토리지로 사용하는 감사 로그를 저장하고 쿼리하기 위해 Solr 구성요소를 사용합니다. 클러스터가 삭제되면 이 HDFS 데이터도 삭제됩니다. Cloud Storage에서 Ranger 감사 로그를 포함한 데이터를 저장하도록 Solr 구성요소를 구성하려면 클러스터를 만들 때
dataproc:ranger.kms.key.uri
및dataproc:ranger.admin.password.uri
클러스터 속성을 설정하여 KMS 키 및 비밀번호 Cloud Storage URI를 클러스터 생성 명령어에 전달합니다.- 필요한 경우
dataproc:ranger.db.admin.password.uri
클러스터 속성을 설정하여 암호화된 Cloud Storage 파일 URI를 통해 Ranger 데이터베이스의 관리자 비밀번호를 전달할 수 있습니다. - 기본적으로 Ranger 구성요소는 클러스터의 첫 번째 마스터 노드에서 실행되는 MySql 데이터베이스 인스턴스를 사용합니다. MySQL 인스턴스에서 변수를
ON
으로 설정하여log_bin_trust_function_creators
플래그를 사용 설정합니다. 이 플래그를 설정하면 저장된 함수 생성자의 신뢰 여부를 제어할 수 있습니다. 클러스터 생성 및 Ranger 구성이 완료되면log_bin_trust_function_creators
를OFF
로 재설정할 수 있습니다. 클러스터를 삭제한 후 Ranger 데이터베이스를 유지하려면 Cloud SQL 인스턴스를 외부 MySql 데이터베이스로 사용합니다.
dataproc:ranger.cloud-sql.instance.connection.name
클러스터 속성을 Cloud SQL 인스턴스로 설정합니다.dataproc:ranger.cloud-sql.root.password.uri
클러스터 속성을 Cloud SQL 인스턴스의 KMS 키로 암호화된 루트 비밀번호의 Cloud Storage URI로 설정합니다.dataproc:ranger.cloud-sql.use-private-ip
클러스터 속성을 설정하여 Cloud SQL 인스턴스에 대한 연결이 비공개 IP를 통해 이루어졌는지 나타냅니다.
Ranger 구성 요소는 Cloud SQL 프록시를 사용하여 Cloud SQL 인스턴스에 연결합니다. 프록시를 사용하려면 다음 안내를 따르세요.
- 클러스터를 만들 때
sqlservice.admin
API 범위를 설정합니다(OAuth 2.0으로 요청 승인 참조).gcloud dataproc cluster create
명령어를 사용하는 경우--scopes=default,sql-admin
매개변수를 추가합니다. - 프로젝트에서 SQL Admin API를 사용 설정합니다.
- 클러스터 서비스 계정에 Cloud SQL 편집자 역할이 있는지 확인합니다.
gcloud 명령어
Ranger 구성요소를 포함하는 Dataproc 클러스터를 만들려면
--optional-components
플래그와 함께 gcloud dataproc clusters create cluster-name 명령어를 사용합니다.gcloud dataproc clusters create cluster-name \ --optional-components=SOLR,RANGER \ --region=region \ --enable-component-gateway \ --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \ ... other flags
REST API
Datacroc API clusters.create 요청의 일부로 SoftwareConfig.Component 필드에 Ranger 및 Solr 구성요소를 지정합니다. 또한 SoftwareConfig.Component.properties 필드에서 다음의 클러스터 속성을 설정해야 합니다.
dataproc:ranger.kms.key.uri
: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"dataproc:ranger.admin.password.uri
: "gs://my-bucket/admin-password.encrypted"
Console
- 구성요소 및 구성요소 게이트웨이를 사용 설정합니다.
- Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지를 엽니다. 클러스터 설정 패널이 선택되었습니다.
- 구성요소 섹션에서 다음을 수행합니다.
- 선택적 구성요소 아래에서 Ranger, Solr 및 클러스터에 설치할 기타 선택적인 구성요소를 선택합니다.
- 구성요소 게이트웨이 아래에서 구성요소 게이트웨이 사용 설정을 선택합니다(구성요소 게이트웨이 URL 보기 및 액세스 참조).
- Ranger 구성요소를 설치할 때 다음과 같이 Solr 구성요소도 설치해야 합니다.
웹 인터페이스 탭을 클릭합니다. 구성요소 게이트웨이에서 Ranger를 클릭하여 Ranger 웹 인터페이스를 엽니다. Ranger 관리자의 사용자 이름(예: 'admin')과 비밀번호로 로그인합니다.
Ranger 관리자 로그
Ranger 관리자 로그는 Logging에서 ranger-admin-root
로그로 제공됩니다.
