更新 HDInsight 叢集中的 Azure 儲存體帳戶存取金鑰
本文會說明如何輪替 Azure HDInsight 中主要或次要儲存體帳戶的 Azure 儲存體帳戶存取金鑰。
警告
直接在儲存體端輪替存取金鑰會導致 HDInsight 叢集變得無法存取。
必要條件
我們會使用交錯替換的方法輪替儲存體帳戶的主要和次要存取金鑰,以確保在整個流程中都能存取 HDInsight 叢集。
以下範例說明如何使用主要和次要儲存體存取金鑰,並對金鑰設定輪替原則:
- 建立 HDInsight 叢集時,在儲存體帳戶中使用存取金鑰 1。
- 將存取金鑰 2 的輪替原則設定為每隔 N 天。 在此輪替過程中,HDInsight 會更新為使用存取金鑰 1,然後在儲存體帳戶上輪替存取金鑰 2。
- 將存取金鑰 1 的輪替原則設定為每隔 N/2 天。 在此輪替過程中,HDInsight 會更新為使用存取金鑰 2,然後在儲存體帳戶上輪替存取金鑰 1。
- 使用該方法,存取金鑰 1 每 N/2、3N/2 天 (依此類推) 會輪換一次,存取金鑰 2 則是每 N、2N、3N 天 (依此類推) 會輪換一次。
若要設定儲存體帳戶金鑰的定期輪替,請參閱將祕密的輪替自動化。
更新儲存體帳戶存取金鑰
使用指令碼動作更新金鑰,同時注意下列事項:
屬性 | 值 |
---|---|
Bash 指令碼 URI | https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/update-storage-account-v01.sh |
節點類型 | 前端 |
參數 | ACCOUNTNAME ACCOUNTKEY -p (選擇性) |
ACCOUNTNAME
是 HDInsight 叢集上的儲存體帳戶名稱。ACCOUNTKEY
是ACCOUNTNAME
的存取金鑰。-p
是選擇性的。 若指定這個參數,則金鑰不會加密,而會以純文字的形式儲存在 core-site.xml 檔案中。
已知問題
上述指令碼只會直接更新叢集端的存取金鑰,不會更新 HDInsight 資源提供者端的複本。 因此存取金鑰輪替後,裝載在儲存體帳戶的指令碼動作會失敗。
因應措施:
在相同的區域中使用/建立另一個儲存體帳戶。
將您要執行的指令碼上傳至此儲存體帳戶。
已為具有讀取存取權的指令碼建立了 SAS URI。
如果您的叢集位於您自己的虛擬網路中,請確定您的虛擬網路允許存取儲存體帳戶檔案/指令碼。
使用此 SAS URI 來執行指令碼動作。