在 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 天等进行轮换。
  • 若要为存储帐户密钥设置定期轮换,请参阅自动轮换密钥

更新存储帐户访问密钥

使用脚本操作更新密钥时请注意以下事项:

属性 Value
Bash 脚本 URI https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/update-storage-account-v01.sh
节点类型
parameters ACCOUNTNAME ACCOUNTKEY -p(可选)
  • ACCOUNTNAME 是 HDInsight 群集上的存储帐户的名称。
  • ACCOUNTKEYACCOUNTNAME 的访问密钥。
  • -p 是可选项。 如果指定此参数,则密钥不会加密,并以纯文本形式存储在 core-site.xml 文件中。

已知问题

上述脚本仅在群集端直接更新访问密钥,不会在 HDInsight 资源提供程序端续订副本。 因此,在轮换访问密钥后,存储帐户中托管的脚本操作将失败。

解决方法:通过 SAS URI 使用外部存储帐户执行脚本操作,或使脚本可公开访问。

后续步骤