カスタマー マネージド キーのローテーションと取り消し

この記事は、4 部構成のチュートリアル シリーズのパート 3 です。 パート 1 では、カスタマー マネージド キーの概要、その機能、レジストリで有効にする前の考慮事項について説明します。 パート 2 では、Azure CLI、Azure portal、または Azure Resource Manager テンプレートを使用してカスタマー マネージド キーを有効にする方法について説明しました。 この記事では、カスタマー マネージド キーのローテーション、更新、取り消しについて説明します。

カスタマー マネージド キーのローテーション

キーをローテーションするには、Azure Key Vault で、キー バージョンを更新するか、新しいキーを作成します。 キーのローテーション中に、レジストリの作成に使用したのと同じ ID を指定できます。

必要に応じて、次のことができます。

  • キーにアクセスするように、新しいユーザー割り当て ID を構成します。
  • レジストリのシステム割り当て ID を有効にして指定します。

注意

ポータルでレジストリのシステム割り当て ID を有効にするには、 [設定]>[ID] を選択し、システム割り当て ID の状態を [オン] に設定します。

キー アクセス用に構成する ID に対して、必要なキー コンテナーのアクセスが設定されていることを確認してください。

Azure CLI を使用してキー バージョンを作成または更新する

新しいキーのバージョンを作成するには、az keyvault key create コマンドを実行します。

# Create new version of existing key
az keyvault key create \
  --name <key-name> \
  --vault-name <key-vault-name>

キー バージョンの更新を検出するようにレジストリが構成されている場合は、カスタマー マネージド キーは 1 時間以内に自動的に更新されます。

新しいキー バージョンを手動更新するようにレジストリを構成している場合は、az-acr-encryption-rotate-key コマンドを実行します。 新しいキー ID と構成する ID を渡します。

ヒント

az-acr-encryption-rotate-key を実行するとき、バージョンありのキー ID またはバージョンなしのキー ID のいずれかを渡すことができます。 バージョンなしのキー ID を使用すると、その後のキーのバージョンの更新を自動的に検出するようにレジストリが構成されます。

カスタマー マネージド キーのバージョンを手動で更新するには、次の 2 つのオプションがあります。

  • キーをローテーションしてユーザー割り当て ID を使用します。

    別のキー コンテナーのキーを使用している場合は、そのキー コンテナーに対する getwrapunwrap アクセス許可が principal-id-user-assigned-identity に付与されていることを確認します。

    az acr encryption rotate-key \
      --name <registry-name> \
      --key-encryption-key <new-key-id> \
      --identity <principal-id-user-assigned-identity>
    
  • キーをローテーションしてシステム割り当て ID を使用します。

    システム割り当て ID を使用する前に、getwrapunwrap アクセス許可が割り当てられていることを確認します。

    az acr encryption rotate-key \
      --name <registry-name> \
      --key-encryption-key <new-key-id> \
      --identity [system]
    

Azure portal を使用してキー バージョンを作成または更新する

レジストリの暗号化設定を使用して、カスタマー マネージド キーのキー コンテナー、キー、または ID 設定を更新します。

たとえば、新しいキーを構成するには、次のようにします。

  1. ポータルで、レジストリに移動します。

  2. [設定] の下の [暗号化]>[キーの変更] を選択します。

    Azure portal の暗号化キー オプションのスクリーンショット。

  3. [暗号化] で、次のいずれかのオプションを選択します。

    • [キー コンテナーから選ぶ] を選択し、既存のキー コンテナーとキー、または [新規作成] のいずれかを選択します。 選択するキーはバージョン管理されておらず、キーの自動ローテーションが有効になります。
    • [キー URI を入力する] を選択し、キー識別子を直接指定します。 バージョン管理されたキー URI (手動でローテーションする必要があるキーの場合) またはバージョン管理されていないキー URI (キーの自動ローテーションが有効になる) のいずれかを指定できます。
  4. キーの選択を完了し、[保存] を選択します。

カスタマー マネージド キーを取り消す

アクセス ポリシーを変更する、キー コンテナーのアクセス許可を変更する、またはキーを削除することで、カスタマー マネージド暗号化キーを取り消すことができます。

レジストリによって使用されるマネージド ID のアクセス ポリシーを変更するには、az-keyvault-delete-policy コマンドを実行します。

az keyvault delete-policy \
  --resource-group <resource-group-name> \
  --name <key-vault-name> \
  --object-id <key-vault-key-id>

キーの個々のバージョンを削除するには、az-keyvault-key-delete コマンドを実行します。 この操作には、keys/delete のアクセス許可が必要です。

az keyvault key delete  \
  --name <key-vault-name> \
  -- 
  --object-id $identityPrincipalID \                     

Note

カスタマー マネージド キーを取り消すと、すべてのレジストリ データへのアクセスがブロックされます。 キーへのアクセスを有効にするか、削除されたキーを復元すると、レジストリによってキーが取得され、暗号化されたレジストリ データに再びアクセスできるようになります。

次のステップ

次の記事では、マネージド ID の削除時のエラー、403 エラー、キーの誤削除などの一般的な問題のトラブルシューティングを行います。