1

我們可以在一個Dataproc集羣中使用多個服務帳戶嗎?在Google Dataproc中使用多個服務帳戶

比方說,我有3個桶: 服務帳戶具有讀/寫訪問桶中,其中r訪問桶B和C.服務B賬戶有鬥B r的/ W訪問,其中r進入鬥A和C.服務帳戶C具有對C桶的r/w訪問權限,可以訪問bucket A和B

我可以使用服務帳戶D創建一個羣集,但使用上面定義的每個服務帳戶( A,B和C)的工作內容是否可以正確訪問存儲桶?

回答

3

可以將GCS Connector for Hadoop配置爲使用與GCE元數據服務器提供的服務帳戶不同的服務帳戶。使用這種機制,可能會使用訪問使用不同服務帳戶的不同桶。

要使用json密鑰文件而不是元數據,應該將配置鍵「google.cloud.auth.service.account.json.keyfile」設置爲JSON密鑰文件的位置,該密鑰文件對於簇。如何設置該密鑰將取決於正在訪問文件系統的上下文。對於標準MR作業,只能訪問單個存儲桶,可以在JobConf上設置該鍵/值對。如果您通過Hadoop FileSystrem接口訪問GCS,則可以在獲取適當的FileSystem實例時使用Configuration對象中指定該鍵/值對。

也就是說,Dataproc不會嘗試將各個應用程序彼此分開。因此,如果您的意圖是多租戶羣集,那麼在各個作業周圍沒有足夠的安全邊界來保證任何作業不會惡意地嘗試從另一個作業中獲取證書。

如果您的意圖是而不是多租戶羣集,請考慮創建一個特定於任務的服務帳戶,該帳戶可以讀取或寫入所有需要與之交互的存儲桶。例如,如果您有一項可以讀取和寫入多個存儲桶的工作「元分析」,則可以創建一個具有該作業所需權限的服務帳戶元分析。