Azure Key Vault
Key Vault にシークレット、暗号化キー、証明書を保存・管理し、他の Azure サービスと統合して認証情報のハードコーディングを防ぎます。
「Azure Key Vault」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Azure Key Vault とは
Azure Key Vault は、シークレット(API キー、パスワード、接続文字列)、暗号化キー(データの暗号化に使用)、証明書(アプリケーション用の TLS/SSL 証明書)を安全に保存および管理するクラウド サービスです。機密性の高い値をアプリケーション コード、構成ファイル、環境変数に埋め込む代わりに、アプリケーションは実行時に Key Vault から値を取得します。これにより、資格情報をソース コードやデプロイ成果物から分離できます。
Key Vault のティア:Standard と Premium
Key Vault には 2 つのティアがあります。Standard は、ソフトウェアベースの暗号化を使用してシークレットと証明書を保護します。Premium では、Hardware Security Module(HSM)で保護されたキーがサポートされます。暗号操作は改ざん耐性のあるハードウェア内で実行され、FIPS 140-2 Level 2(Standard)または Level 3(HSM)の認証を受けています。別のサービスであるManaged HSM は、最高レベルの保証要件に対応する、単一テナントの完全マネージド HSM を提供します。
Key Vault の作成
各 Key Vault は、特定の Azure リソース グループとリージョンに作成されます。Vault 名は、vault.azure.net 名前空間内でグローバルに一意である必要があります。作成時にアクセス モデルを構成します。以前からあるVault アクセス ポリシー モデルを使用するか、推奨される Azure RBAC モデルを使用します。Azure RBAC モデルでは、Entra ID のロールによって、シークレット、キー、証明書への読み取りアクセスと書き込みアクセスを個別に制御できます。
# Create a Key Vault with RBAC access model
az keyvault create \
--name myUniqueVault123 \
--resource-group myRG \
--location eastus \
--enable-rbac-authorization true
# Grant yourself the Key Vault Secrets Officer role
az role assignment create \
--role 'Key Vault Secrets Officer' \
--assignee your-user@company.com \
--scope /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myUniqueVault123シークレットの保存と取得
Key Vault のシークレットとは、データベース パスワード、API キー、OAuth クライアント シークレット、ストレージ アカウントの接続文字列など、機密性の高い文字列値です。各シークレットには名前と値があり、有効期限や有効フラグなどの属性も任意で設定できます。アプリケーションは通常、マネージド ID を使用して Key Vault に対して認証し、Key Vault REST API を呼び出して実行時に最新のシークレット値を取得します。値をハードコーディングする必要はありません。
# Store a database password as a secret
az keyvault secret set \
--vault-name myUniqueVault123 \
--name db-password \
--value 'SuperSecret!42'
# Retrieve the secret value
az keyvault secret show \
--vault-name myUniqueVault123 \
--name db-password \
--query value \
--output tsv暗号化キーの管理
Key Vault には、データの暗号化と復号に使用する暗号キーが保存されます。Azure Storage、Azure SQL Database、Azure Disk Encryption などのサービスは Key Vault と統合し、Bring Your Own Key(BYOK) シナリオでカスタマー マネージド キー(CMK)を使用できます。CMK を使用すると、暗号化キーを自分で管理できます。Key Vault でキーを無効化すると、サービスによるデータの復号が直ちに阻止され、暗号学的な緊急停止スイッチとして機能します。
# Create an RSA key in Key Vault
az keyvault key create \
--vault-name myUniqueVault123 \
--name myEncryptionKey \
--kty RSA \
--size 2048
# Enable CMK on a Storage Account
az storage account update \
--resource-group myRG \
--name mystorageaccount \
--encryption-key-vault myUniqueVault123 \
--encryption-key-name myEncryptionKey \
--encryption-key-source Microsoft.Keyvault証明書の管理
Key Vault は、TLS 証明書用の証明機関インターフェイスとして機能します。自己署名証明書を生成したり、既存の PFX/PEM ファイルをインポートしたり、Key Vault が DigiCert や GlobalSign などの信頼された CA に証明書を自動的に要求して更新するよう構成したりできます。証明書の有効期限が近づくと、Key Vault は自動更新を行い、Event Grid イベントを通じて管理者に通知できます。これにより、手動の更新作業が不要になります。
# Import an existing certificate
az keyvault certificate import \
--vault-name myUniqueVault123 \
--name myCert \
--file certificate.pfx \
--password 'CertPassword'アクセス制御:RBAC とアクセス ポリシー
Key Vault は 2 つのアクセス モデルをサポートしています。Vault アクセス ポリシーは従来のモデルで、プリンシパルに対して Vault 内のすべてのシークレット、キー、または証明書へのアクセス許可を付与します。個々のシークレット名単位でアクセスを制限することはできません。新しく推奨されているAzure RBAC モデルでは、標準の RBAC ロール(Key Vault Secrets User、Key Vault Secrets Officer など)を使用し、拒否割り当てと Privileged Identity Management もサポートします。これにより、よりきめ細かな制御が可能になります。
Key Vault と App Service の統合
一般的なパターンの 1 つは、Key Vault のシークレットをApp Service のアプリケーション設定として参照することです。アプリ設定にシークレット値を保存する代わりに、Key Vault 参照を保存します:@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/db-password/)。App Service は、アプリのマネージド ID を使用して実行時に最新のシークレット値を自動取得します。Key Vault でシークレットがローテーションされると、アプリは次回の再起動時に新しい値を取得します。
# Set an App Service app setting as a Key Vault reference
az webapp config appsettings set \
--resource-group myRG \
--name myWebApp \
--settings 'DB_PASSWORD=@Microsoft.KeyVault(SecretUri=https://myUniqueVault123.vault.azure.net/secrets/db-password/)'論理的な削除と消去保護
論理的な削除(既定で有効)では、削除された Key Vault の項目が 7~90 日間保持されるため、誤って削除した場合に復元できます。消去保護を有効にすると、サブスクリプション所有者を含む誰も、保持期間が終了するまで、論理的に削除された Vault やそのオブジェクトを完全に消去できなくなります。規制要件への対応とランサムウェアへの耐性を高めるため、両方を有効にすることが Azure Policy で適用されるセキュリティのベスト プラクティスです。
# Recover a soft-deleted secret
az keyvault secret recover \
--vault-name myUniqueVault123 \
--name db-passwordKey Vault アクセスの監視と監査
Key Vault に対するすべての操作(読み取り、書き込み、証明書の更新、キーの使用)は、Key Vault の監査ログに記録されます。診断設定を有効にすると、これらのログを Log Analytics ワークスペースまたはストレージ アカウントに転送して長期間保持できます。これにより、誰が、いつ、どの IP アドレスから、どのシークレットにアクセスしたかを完全に追跡でき、セキュリティ調査やコンプライアンスの証拠として役立ちます。
# Enable diagnostic logging for Key Vault
az monitor diagnostic-settings create \
--resource /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myUniqueVault123 \
--workspace /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/myWorkspace \
--name kv-audit-logs \
--logs '[{"category":"AuditEvent","enabled":true}]'Key Vault のプライベート エンドポイント
既定では、Key Vault はインターネット上にパブリック HTTPS エンドポイントを持ちます。高セキュリティ環境では、Key Vault をプライベート IP アドレスで VNet 内に配置するプライベート エンドポイントをデプロイし、パブリック エンドポイントを完全に無効化できます。プライベート エンドポイント経由で Key Vault にアクセスするアプリケーションの通信がパブリック インターネットを経由することはありません。これにより、データ流出防止の要件を満たし、VNet の外部から Key Vault を見えない状態にできます。
理解度チェック
このレッスンで扱った Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、Key Vault が、管理および監査可能なサービスでシークレット、暗号化キー、TLS 証明書を保存すること、マネージド ID との統合により、アプリケーション コードに資格情報をハードコーディングする必要がなくなること、そして論理的な削除と消去保護によって、暗号化マテリアルの誤削除や悪意のある削除を防止できることを学びました。次は、Azure のクラウドネイティブ SIEM である Microsoft Sentinel について説明します。
よくある質問
「Azure Key Vault」レッスンは無料ですか?
はい。「Azure Key Vault」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「Azure Key Vault」で何を学びますか?
Key Vault にシークレット、暗号化キー、証明書を保存・管理し、他の Azure サービスと統合して認証情報のハードコーディングを防ぎます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Azure Key Vault」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Microsoft Defender for Cloud
- Azure Key Vault
- Microsoft Sentinel:クラウド SIEM
- Azure DDoS Protection と Firewall