更新 HDInsight 叢集中的 Azure 儲存體帳戶存取金鑰

本文會說明如何輪替 Azure HDInsight 中主要或次要儲存體帳戶的 Azure 儲存體帳戶存取金鑰。

警告

直接在儲存體端輪替存取金鑰會導致 HDInsight 叢集變得無法存取。

必要條件

  • 我們會使用交錯替換的方法輪替儲存體帳戶的主要和次要存取金鑰,以確保在整個流程中都能存取 HDInsight 叢集。

    以下範例說明如何使用主要和次要儲存體存取金鑰,並對金鑰設定輪替原則:

    1. 建立 HDInsight 叢集時,在儲存體帳戶中使用存取金鑰 1。
    2. 將存取金鑰 2 的輪替原則設定為每隔 N 天。 在此輪替過程中,HDInsight 會更新為使用存取金鑰 1,然後在儲存體帳戶上輪替存取金鑰 2。
    3. 將存取金鑰 1 的輪替原則設定為每隔 N/2 天。 在此輪替過程中,HDInsight 會更新為使用存取金鑰 2,然後在儲存體帳戶上輪替存取金鑰 1。
    4. 使用該方法,存取金鑰 1 每 N/2、3N/2 天 (依此類推) 會輪換一次,存取金鑰 2 則是每 N、2N、3N 天 (依此類推) 會輪換一次。
  • 若要設定儲存體帳戶金鑰的定期輪替,請參閱將祕密的輪替自動化

更新儲存體帳戶存取金鑰

使用指令碼動作更新金鑰,同時注意下列事項:

屬性
Bash 指令碼 URI https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/update-storage-account-v01.sh
節點類型 前端
參數 ACCOUNTNAMEACCOUNTKEY-p (選用)
  • ACCOUNTNAME 是 HDInsight 叢集上的儲存體帳戶名稱。
  • ACCOUNTKEYACCOUNTNAME 的存取金鑰。
  • -p 是選擇性的。 若指定這個參數,則金鑰不會加密,而會以純文字的形式儲存在 core-site.xml 檔案中。

已知問題

上述指令碼只會直接更新叢集端的存取金鑰,不會更新 HDInsight 資源提供者端的複本。 因此存取金鑰輪替後,裝載在儲存體帳戶的指令碼動作會失敗。

因應措施:針對指令碼動作使用 SAS URI,或將指令碼設為可公開存取。

下一步