當您使用選用元件功能建立 Dataproc 叢集時,可以安裝 Ranger 等其他元件。本頁面說明 Ranger 元件。
Apache Ranger 元件是開放原始碼架構,用於管理 Hadoop 生態系統的權限和稽核功能。Ranger 管理伺服器和 Web UI 位於叢集的第一個主要節點的 6080
通訊埠上。
另請參閱:
安裝元件
請在建立 Dataproc 叢集時安裝元件。您可在以 Dataproc 1.3 以上版本建立的叢集中新增元件。安裝 Ranger 元件時,也必須安裝 Solr 元件,如下所示。
請參閱支援的 Dataproc 版本,瞭解每個 Dataproc 映像檔版本中包含的元件版本。
安裝步驟:
設定 Ranger 管理員密碼:
- 將 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予叢集服務帳戶。根據預設,叢集服務帳戶會設為 Compute Engine 預設服務帳戶,格式如下:
建立叢集時,您可以指定其他叢集服務帳戶,如下所示。project-number-compute@developer.gserviceaccount.com
- 範例:
將 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Compute Engine 預設服務帳戶:
gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyDecrypter
- 範例:
將 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Compute Engine 預設服務帳戶:
- 使用 Key Management Service (KMS) 金鑰加密 Ranger 管理員使用者的密碼。如果是 2.2 之前的映像檔版本叢集,密碼必須至少包含 8 個字元,且至少要有一個英文字母和一個數字。如果是 2.2 以上的映像檔版本叢集,密碼必須至少有 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。
- 示例:
- 建立金鑰環:
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 bucket。
- 範例:
gcloud storage cp admin-password.encrypted gs://my-bucket
- 範例:
- 將 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予叢集服務帳戶。根據預設,叢集服務帳戶會設為 Compute Engine 預設服務帳戶,格式如下:
建立叢集:
- 安裝 Ranger 元件時,也必須安裝 Solr 元件,如下所示。
- Ranger 元件會依賴 Solr 元件儲存及查詢稽核記錄,而這項元件預設會使用 HDFS 做為儲存空間。刪除叢集時,系統會一併刪除這項 HDFS 資料。如要設定 Solr 元件,將資料 (包括 Ranger 稽核記錄) 儲存在 Cloud Storage,請在建立叢集時使用
dataproc:solr.gcs.path=gs://<bucket>
叢集屬性。叢集刪除後,Cloud Storage 資料仍會保留。
- Ranger 元件會依賴 Solr 元件儲存及查詢稽核記錄,而這項元件預設會使用 HDFS 做為儲存空間。刪除叢集時,系統會一併刪除這項 HDFS 資料。如要設定 Solr 元件,將資料 (包括 Ranger 稽核記錄) 儲存在 Cloud Storage,請在建立叢集時使用
- 設定
dataproc:ranger.kms.key.uri
和dataproc:ranger.admin.password.uri
叢集屬性,將 KMS 金鑰和密碼 Cloud Storage URI 傳遞至叢集建立指令。 - 您可以選擇透過加密的 Cloud Storage 檔案 URI 傳遞 Ranger 資料庫的管理員使用者密碼,方法是設定
dataproc:ranger.db.admin.password.uri
叢集屬性。 - 根據預設,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 驗證 Proxy 連線至 Cloud SQL 執行個體。如何使用 Proxy:
- 建立叢集時,請設定
sqlservice.admin
API 範圍 (請參閱「使用 OAuth 2.0 授權要求」)。如果使用gcloud dataproc cluster create
指令,請新增--scopes=default,sql-admin
參數。 - 在專案中啟用 SQL Admin API。
- 確認叢集服務帳戶具備 Cloud SQL 編輯者角色。
- 由於主節點上的 Cloud SQL 驗證 Proxy 會透過通訊埠 3307 建立連出連線至 Cloud SQL 執行個體,請務必允許主節點透過通訊埠 3307 連出 TCP 連線至 Cloud SQL 執行個體。詳情請參閱「Cloud SQL Auth Proxy 的運作方式」。
gcloud 指令
如要建立包含 Ranger 元件的 Dataproc 叢集,請使用 gcloud dataproc clusters create 指令搭配
--optional-components
標記。cluster-namegcloud 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
在 Dataproc 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"
控制台
- 啟用元件和元件閘道。
- 在 Google Cloud 控制台中,開啟 Dataproc 的「建立叢集」頁面。選取「設定叢集」面板。
- 在「元件」部分:
- 在「選用元件」下方,選取要安裝在叢集上的 Ranger、Solr 和其他選用元件。
- 在「元件閘道」下方,選取「啟用元件閘道」(請參閱「查看及存取元件閘道網址」)。
- 將
- 安裝 Ranger 元件時,也必須安裝 Solr 元件,如下所示。
按一下「網頁介面」分頁標籤。在「Component gateway」下方,按一下「Ranger」開啟 Ranger 網頁介面。使用 Ranger 管理員使用者名稱 (例如「admin」) 和密碼登入。
Ranger 管理員記錄
Ranger 管理員記錄會以 ranger-admin-root
記錄的形式顯示在「記錄」中。
