Azure Container RegistryのCMK暗号化設定について
このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、Azure CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Azure Container Registry でカスタマーマネージドキー(CMK)による暗号化の設定について、リスクと対策を詳細に解説します。
ポリシーの説明
Azure Container Registry は、既定でサービス管理キーを使用してレジストリ内のイメージとアーティファクトを暗号化しています。しかし、カスタマーマネージドキー(CMK)を使用することで、Azure Key Vault に格納した独自のキーで追加の暗号化レイヤーを適用でき、暗号化プロセスを完全に制御できます。
修復方法
コンソールでの修復手順
Azure コンソールを使用して、Container Registry にカスタマーマネージドキーによる暗号化を設定します。
前提条件の確認
- Premium サービス レベルの Azure Container Registry が必要です
- Azure Key Vault が同じリージョンに存在している必要があります
- ユーザー割り当てマネージド ID が必要です
- Key Vault でソフト削除と消去保護が有効になっている必要があります
ステップ 1: ユーザー割り当てマネージド ID の作成
- Azure Portal にログインし、「マネージド ID」を検索して選択します
- 「+ 作成」をクリックして新しいユーザー割り当てマネージド ID を作成
- 以下の情報を入力:
- サブスクリプション:該当のサブスクリプションを選択
- リソース グループ:Container Registry と同じリソース グループを選択
- リージョン:Container Registry と同じリージョンを選択
- 名前:「acr-cmk-identity」など分かりやすい名前を入力
- 「確認および作成」→「作成」をクリック
ステップ 2: Azure Key Vault の設定
- Azure Portal で「Key Vaults」を検索して選択
- 既存の Key Vault を選択するか、新規作成します
- 新規作成の場合、「ソフト削除」と「消去保護」を必ず有効化
- Key Vault のメニューから「アクセス ポリシー」を選択(RBACではなくVault Access Policyを使用)
- 「+ アクセス ポリシーの追加」をクリック
- キーのアクセス許可で以下を選択:
- 取得 (Get)
- キーのラップ解除 (Unwrap Key)
- キーのラップ (Wrap Key)
- プリンシパルの選択で、先ほど作成したマネージド ID を選択
- 「追加」をクリックし、「保存」で変更を適用
ステップ 3: 暗号化キーの作成
- Key Vault のメニューから「キー」を選択
- 「+ 生成/インポート」をクリック
- 以下の設定でキーを作成:
- オプション:生成
- キーの種類:RSA
- RSA キー サイズ:2048 または 3072 または 4096
- キー名:「acr-encryption-key」など
- 有効化:はい
- アクティブ化の日付:現在の日時(既定)
- 有効期限:必要に応じて設定(推奨:1年後)
- 「作成」をクリック
- 作成したキーをクリックし、現在のバージョンを選択してキー識別子をコピー
ステップ 4: Container Registry の作成(CMK 有効)
- Azure Portal で「コンテナー レジストリ」を検索
- 「+ 作成」をクリック
- 基本設定タブで以下を入力:

- サブスクリプション:該当のサブスクリプション
- リソース グループ:選択または新規作成
- レジストリ名:一意の名前を入力
- 場所:Key Vault と同じリージョン
- 可用性ゾーン:有効(推奨)
- SKU:Premium(必須)
- 「暗号化」タブに移動
- 暗号化の設定:

- 暗号化の種類:「カスタマー マネージド キー」を選択
- ID:作成したユーザー割り当てマネージド ID を選択
- 暗号化キー:「Key Vault から選択」を選択
- Key Vault:設定済みの Key Vault を選択
- キー:作成したキーを選択
- バージョン:最新バージョンを選択
- 「ネットワーク」タブで以下を設定(推奨):
- パブリック ネットワーク アクセス:選択したネットワークまたは無効
- 「確認および作成」→「作成」をクリック
ステップ 5: 既存のContainer Registryへの適用 既存のPremium SKU Container Registryにカスタマーマネージドキーを適用する場合:
- 対象のContainer Registryに移動
- 「設定」→「暗号化」を選択
- 「カスタマー マネージド キー」を選択
- 「変更」をクリックし、マネージドIDとキーを設定
- 「保存」をクリック
ステップ 6: 設定の確認
- Container Registry の「暗号化」設定を確認
- Azure Monitor でキーアクセスのログを確認
- テストイメージのプッシュ/プルを実行して動作確認
最後に
この記事では、Azure Container Registry でカスタマーマネージドキーによる暗号化を有効化する詳細な手順を解説しました。CMK暗号化を実装することで、暗号化キーの完全な制御を実現し、規制要件への準拠とセキュリティ体制の強化が可能になります。特に、適切なキー管理、アクセス制御、監視設定を組み合わせることで、エンタープライズレベルのセキュリティを実現できます。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。