HDInsight クラスターで Azure ストレージ アカウント アクセス キーを更新する

この記事では、Azure HDInsight でプライマリまたはセカンダリ ストレージ アカウントの Azure ストレージ アカウント アクセス キーをローテーションする方法について説明します。

注意事項

ストレージ側でアクセス キーを直接ローテーションすると、HDInsight クラスターにアクセスできなくなります。

前提条件

  • プロセス全体で HDInsight クラスターに確実にアクセスできるように、ストレージ アカウントのプライマリおよびセカンダリ アクセス キーを交互にずらしてローテーションするアプローチを使用します。

    プライマリおよびセカンダリ ストレージ アクセス キーを使用し、それらに対してローテーション ポリシーを設定する方法の例を次に示します。

    1. HDInsight クラスターの作成時に、ストレージ アカウントでアクセス キー 1 を使用します。
    2. N 日ごとにアクセス キー 2 のローテーション ポリシーを設定します。 このローテーションの一環として、アクセス キー 1 を使用するように HDInsight を更新してから、ストレージ アカウントでアクセス キー 2 をローテーションします。
    3. N/2 日ごとにアクセス キー 1 のローテーション ポリシーを設定します。 このローテーションの一環として、アクセス キー 2 を使用するように HDInsight を更新してから、ストレージ アカウントでアクセス キー 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
ノードの種類 Head
パラメーター ACCOUNTNAME ACCOUNTKEY -p (省略可)
  • ACCOUNTNAME は HDInsight クラスター上のストレージ アカウントの名前です。
  • ACCOUNTKEYACCOUNTNAME のアクセス キーです。
  • -p はオプションです。 指定した場合、キーは暗号化されず、プレーンテキストとして core-site.xml ファイルに格納されます。

既知の問題

前のスクリプトでは、クラスター側でのみアクセス キーが直接更新され、HDInsight リソース プロバイダー側のコピーは更新されません。 そのため、ストレージ アカウントでホストされているスクリプト アクションは、アクセス キーがローテーションされた後に失敗します。

対処法:

  1. 同じリージョン内の別のストレージ アカウントを使用/作成します。

  2. 実行するスクリプトをこのストレージ アカウントにアップロードします。

  3. 読み取りアクセス権を持つスクリプトの SAS URI を作成しました。

  4. クラスターが独自の仮想ネットワーク内にある場合は、仮想ネットワークでストレージ アカウント ファイル/スクリプトへのアクセスが許可されていることを確認します。

  5. この SAS URI を使って、スクリプト アクションを実行します。

    スクリプト アクションを示すスクリーンショット。

次のステップ