Azure Cloud HSM は、暗号化キーを保護し、クラウド内の機密性の高いワークロードをセキュリティで保護するための高保証ハードウェア セキュリティ モジュール (HSM) ソリューションを提供します。 承認されていないaccessを防ぎ、運用の整合性を維持し、パフォーマンスを最適化するには、セキュリティのベスト プラクティスを実装することが不可欠です。
この記事では、Azure Cloud HSM のデプロイを保護するためのセキュリティに関する推奨事項について説明します。
この記事のセキュリティに関する推奨事項では、ゼロ トラスト原則 ("明示的に確認する"、"最小限の特権アクセスを使用する"、および "侵害を想定する") を実装しています。 包括的なゼロ トラストガイダンスについては、ゼロ トラスト ガイダンス センターを参照してください。
サービス固有のセキュリティ
Azure Cloud HSM は、HSM に対する完全な管理権限を顧客に付与する、シングルテナントの FIPS 140-3 レベル 3 検証済みサービスです。 デプロイのセキュリティを維持するには、信頼のルートを保護することが重要です。
-
パーティション所有者秘密キーへのアクセスを制限する: アプリケーション パーティション (POTA) 秘密キー (
PO.key) のパーティション所有者へのアクセスを制限します。 アプリケーション パーティション (AOTA) と POTA 秘密キーの管理者は、ルート アクセスと同等であり、パーティション内の暗号化責任者 (CO) ユーザーのパスワードをリセットできます (パーティション 0 の場合は AOTA、ユーザー パーティションの場合は POTA)。 実行時には HSMアクセスPO.keyは不要です。 パーティション所有者認証証明書 (POAC) と CO パスワードのリセットの初期署名にのみ必要です。PO.keyオフラインで保存し、可能な場合はオフライン コンピューターで最初の POAC 署名を実行します。 お客様は POTA 秘密キーを保護する責任を負います。これを失うと、CO パスワードを回復できなくなります。 POTA 秘密キーを安全に格納し、適切なバックアップを維持します。 Azure Cloud HSM でのユーザー管理を参照してください。
コンプライアンスと認定資格
Azure Cloud HSM は、FIPS 140-3 レベル 3、eIDAS、PCI/PCI 3DS など、複数の業界コンプライアンス標準と認定を満たしています。 詳細については、「 コンプライアンスと認定」を参照してください。
ネットワークのセキュリティ
ネットワークを適切に構成すると、承認されていないaccessを防ぎ、外部の脅威にさらされるのを減らすことができます。
- プライベート エンドポイントを使用する: プライベート サブネットとプライベート エンドポイントを使用して、Azure Cloud HSM のデプロイをセキュリティで保護し、パブリック インターネットへの公開を防ぎます。 このアプローチにより、トラフィックが Microsoft バックボーン ネットワーク内に残り、不正アクセスのリスクが軽減されます。 Azure Cloud HSM のネットワークセキュリティを参照してください。
アイデンティティとアクセス管理
効果的なユーザー管理と認証制御は、Azure Cloud HSM のセキュリティと整合性を維持するために重要です。 ユーザー ID、資格情報、およびアクセス許可に対して適切な制御を実装すると、承認されていないaccessを防ぎ、運用継続性を確保できます。
強力なパスワードを使用する: HSM ユーザー用の一意の強力なパスワードを作成します。 大文字と小文字、数字、特殊文字の組み合わせを含め、少なくとも 12 文字を使用します。 Azure Cloud HSM でのユーザー管理を参照してください。
HSM ユーザー資格情報をセキュリティで保護する: HSM ユーザー資格情報が失われた場合Microsoft回復できないため、HSM ユーザー資格情報を慎重に保護します。 Azure Cloud HSM でのユーザー管理を参照してください。
ロックアウト防止のためにセカンダリ管理者を実装する: 1 つのパスワードが失われた場合に HSM ロックアウトを防ぐために、少なくとも 2 人の管理者を指定します。 Azure Cloud HSM でのユーザー管理を参照してください。
アクセス許可が制限された複数の暗号化ユーザー (CU) を確立する: 1 人のユーザーが完全に制御できないように、個別の責任を持つ複数の CU を作成します。 Azure Cloud HSM でのユーザー管理を参照してください。
キーをエクスポートする CU の機能を制限する: 適切なユーザー属性を設定して、CU によるキー マテリアルのエクスポートを制限します。 Azure Cloud HSM でのユーザー管理を参照してください。
CU に対する CO 制御を制限する:
disableUserAccessコマンドを使用して、CO ユーザーが特定の CU を管理できないようにします。 CO ユーザーは、古いバックアップでこのコマンドをバイパスできます。 Azure Cloud HSM でのユーザー管理を参照してください。マネージド ID の構成: バックアップ操作と復元操作、および管理アクションを実行する VM に対して、ユーザー割り当てマネージド ID を確立します。 Azure Cloud HSM でのユーザー管理を参照してください。
HSM 資格情報を安全に格納する: 保存されている資格情報を保護し、使用されていない場合は公開しないようにします。 資格情報を自動的に取得して設定するように環境を構成します。 Azure Cloud HSM での 認証 に関する情報を参照してください。
JCE 認証に暗黙的なログインを使用する: 可能な限り、Java Cryptography Extension (JCE) 認証に暗黙的なログインを使用して、資格情報の自動管理と再認証を許可します。 Azure Cloud HSM 内の認証について参照してください。
スレッド間でセッションを共有しないようにする: マルチスレッド アプリケーションの場合は、競合やセキュリティの問題を防ぐために、各スレッドに独自のセッションを割り当てます。 Azure Cloud HSM での Authentication に関する>を参照してください。
クライアント側の再試行を実装する: HSM 操作の再試行ロジックを追加して、潜在的なメンテナンス イベントまたは HSM の置換を処理します。 Azure Cloud HSM での Authentication に関する>を参照してください。
HSM クライアント セッションを慎重に管理する:
azurecloudhsm_clientは、同じホスト上のアプリケーション間でセッションを共有していることに注意してください。 適切なセッション管理により、競合が回避されます。 Azure Cloud HSM での認証に関するものを参照してください。
データ保護
キーのストレージ制限、キーのラッピングセキュリティ、キーの属性、キャッシュ戦略を適切に処理することで、保護とパフォーマンスを向上させることができます。
実装キーのローテーション: キーを定期的にローテーションして古いものを置き換え、セキュリティを維持しながらstorageを解放します。 Azure Cloud HSM での Key 管理を参照してください。
キー階層を使用する: マスター キーを使用して他のキーを暗号化することで、HSM に格納するキーの数を減らします。 Azure Cloud HSM での Key 管理を参照してください。
可能な場合にキーを共有および再利用する: 必要に応じて複数のセッション間でキーを共有または再利用することで、storage要件を削減します。 Azure Cloud HSM での Key 管理を参照してください。
未使用のキーを安全に削除する: 不要なストレージの消費を防ぐために、不要になったキーを削除します。 Azure Cloud HSM での Key 管理を参照してください。
可能な限り、キーを nonextractable として設定する:
EXTRACTABLE=0を使用して、HSM の外部にキーをエクスポートできないようにします。 Azure Cloud HSM での Key 管理を参照してください。信頼できるキーラッピングを有効化する:
WRAP_WITH_TRUSTED=1を使用して、キーラッピングを信頼されたキーに制限する。 このアクションにより、承認されていないキーのエクスポートが防止されます。 Azure Cloud HSM での Key 管理を参照してください。キー属性を使用してアクセス許可を制限する: キーを生成するときに必要な属性のみを割り当てて、意図しない操作を制限します。 Azure Cloud HSM での Key 管理を参照してください。
パフォーマンスのためにキー オブジェクトをキャッシュする: キー検索コマンドは、アプリケーションの起動時に 1 回だけ使用し、返されたキー オブジェクトをアプリケーション メモリに格納して待機時間を短縮します。 Azure Cloud HSM での Key 管理を参照してください。
ログ記録と監視
操作イベント ログの構成: 操作イベントログは HSM セキュリティに不可欠です。 これは、説明責任、追跡可能性、法令遵守のためのアクセスと操作の不変の記録を提供します。 これは、承認されていないaccessの検出、インシデントの調査、異常の特定に役立ち、暗号化操作の整合性と機密性を確保するのに役立ちます。 セキュリティとプライバシーを維持するために、ログは機密データ (キー ID、キー名、ユーザーの詳細など) を除外します。 HSM 操作、タイムスタンプ、およびメタデータをキャプチャしますが、HSM 操作は内部 TLS チャネル内で発生するため、成功または失敗を特定できません。 「Azure Cloud HSM での操作イベントログの記録チュートリアル」を参照してください。
リアルタイム処理のためにイベント ハブにログをストリーミングする: リアルタイムのログ処理とダウンストリーム SIEM システムまたはカスタム分析パイプラインとの統合を行う場合は、診断設定の追加の宛先として Event Hub を構成します。 「Tutorial: Azure Cloud HSM の Event Hub の構成を参照してください。
バックアップと回復
Azure Cloud HSM は、障害発生時にワークロードを自動的に移行しながら、キーとポリシーを同期するクラスター化された HSM を通じて高可用性を提供します。
堅牢なバックアップとディザスター リカバリーを実装する: このサービスは、すべてのキー、属性、ロールの割り当てを保持する包括的なバックアップ操作と復元操作をサポートします。 バックアップは、MicrosoftがアクセスできないHSMから派生したキーによって保護されています。 Azure Cloud HSM では、既にアクティブ化されている HSM への復元はサポートされていません。 ビジネス継続性のためには、認証にマネージド ID を使用し、プライベート Azure Blob Storageにバックアップを格納し、最小限のロールベースのアクセス制御 (RBAC) アクセス許可を実装し、共有キー アクセスを無効にします。 その他の回復オプションには、
extractMaskedObjectを使用して暗号化された BLOB としてキーを抽出し、安全に格納し、必要に応じてinsertMaskedObjectでインポートする方法があります。 フェールオーバー機能のために 2 つのリージョンにデプロイします。 Azure Cloud HSM リソースのバックアップと復元を参照してください。すべてのノードでユーザーとキーの同期を行う: Azure Cloud HSM は、3 つのノードのクラスターとして動作します。 自己復旧やアップグレードなどのサービス イベント中に、ユーザーまたはキーがすべてのノードにレプリケートされない場合があります。 断続的な認証または操作の失敗が発生した場合は、すべてのユーザーとキーがすべてのノードに存在することを確認します。 「Azure Cloud HSM ノード全体でユーザーとキーを同期する を参照してください。」
次のステップ
物理的なセキュリティ
Azure Cloud HSM は、改ざん検出メカニズムを備えたセキュリティで保護されたデータセンターでホストされます。 詳細については、 物理セキュリティを参照してください。
サービス操作
Azure Cloud HSM にはメンテナンス期間がスケジュールされていませんが、Microsoftは予想される影響を事前に顧客に通知します。 詳細については、「 サービス操作」を参照してください。