暗号化は、Microsoft Azure でデータのプライバシー、コンプライアンス、データ所在地を確保するための重要なステップです。 また、多くの企業にとって、最も重要なセキュリティに関する考慮事項の 1 つでもあります。 このセクションでは、暗号化とキー管理に関する設計上の考慮事項と推奨事項について説明します。
設計に関する考慮事項
Azure Key Vault に適用されるサブスクリプションとスケールの制限を設定します。
Key Vault には、キーとシークレットのトランザクション制限があります。 特定期間のコンテナーごとのトランザクションを調整するには、Azure の制限に関するページを参照してください。
キー、シークレット、証明書のアクセス許可はコンテナー レベルであるため、Key Vault はセキュリティ境界を提供します。 Key Vault アクセス ポリシーの割り当てでは、キー、シークレット、または証明書に個別にアクセス許可が付与されます。 特定のキー、シークレット、証明書キー 管理などの詳細なオブジェクト レベルのアクセス許可はサポートされていません。
必要に応じて、アプリケーション固有のシークレットとワークロード固有のシークレットと共有シークレットを分離して、 アクセスを制御します。
HSM で保護された (ハードウェア セキュリティ モジュール) キーが必要な Premium SKU を最適化します。
基になる HSM は FIPS 140-2 レベル 2 に準拠しています。 サポートされているシナリオを考慮して、FIPS 140-2 レベル 3 コンプライアンス用の Azure 専用 HSM を管理します。
キーのローテーションとシークレットの有効期限を管理します。
Key Vault 証明書を使用して、証明書の調達と署名を管理します。 アラート、通知、および証明書の自動更新を設定します。
キー、証明書、シークレットのディザスター リカバリー要件を設定します。
Key Vault サービスのレプリケーションとフェールオーバーの機能を設定します。 可用性と冗長性を設定します。
キー、証明書、シークレットの使用状況を監視します。
キー コンテナーまたは Azure Monitor Log Analytics ワークスペースを使用して、承認されていないアクセスを検出します。 詳細については、「 Azure Key Vault の監視とアラート」を参照してください。
Key Vault のインスタンス化と特権アクセスを委任します。 詳細については、「Azure Key Vault セキュリティ」を参照してください。
Azure Storage 暗号化などのネイティブ暗号化メカニズムにカスタマー マネージド キーを使用するための要件を設定します。
- カスタマー マネージド キー。
- 仮想マシン (VM) のディスク全体の暗号化
- 転送中のデータ暗号化
- 保存データの暗号化
設計に関する推奨事項
トランザクション スケールの制限を回避するには、フェデレーション Azure Key Vault モデルを使用します。
Azure RBAC は、Azure Key Vault データ プレーンに推奨される承認システムです。 詳細については、 Azure ロールベースのアクセス制御 (Azure RBAC) とアクセス ポリシー (レガシ) に関するページを参照してください。
Azure Key Vault をソフト削除と消去ポリシーを有効にしてプロビジョニングし、削除されたオブジェクトの保持保護を実現します。
キー、シークレット、証明書を完全に削除する承認を、特殊なカスタム Microsoft Entra ロールに制限することで、最小限の特権モデルに従います。
管理を容易にするために、公開証明機関で証明書の管理と更新のプロセスを自動化します。
キーと証明書のローテーションの自動化されたプロセスを確立します。
コンテナーのファイアウォールと仮想ネットワーク サービス エンドポイントを有効にして、キー コンテナーへのアクセスを制御します。
プラットフォーム中央の Azure Monitor Log Analytics ワークスペースを使用して、Key Vault の各インスタンス内のキー、証明書、シークレットの使用状況を監査します。
Key Vault のインスタンス化と特権アクセスを委任し、Azure Policy を使用して一貫した準拠構成を適用します。
プリンシパル暗号化機能の既定の Microsoft マネージド キーで、必要に応じてカスタマー マネージド キーを使用します。
アプリケーション キーまたはシークレットには、Key Vault の一元化されたインスタンスを使用しないでください。
複数の環境でシークレットを共有しないようにするには、アプリケーション間で Key Vault インスタンスを共有しないでください。