次の方法で共有


Managed HSM のアクセス制御

Azure Key Vault Managed HSM は、暗号化キーを保護するクラウド サービスです。 このデータは機密性が高く、ビジネスにとって重要であるため、承認されたアプリケーションとユーザーのみがデータにアクセスできるようにすることで、マネージド ハードウェア セキュリティ モジュール (HSM) をセキュリティで保護する必要があります。

この記事では、Managed HSM アクセス制御モデルの概要について説明します。 認証と承認について説明し、マネージド HSM へのアクセスをセキュリティで保護する方法について説明します。 実際の実装ガイダンスについては、 マネージド HSM へのアクセスのセキュリティ保護に関するトピックを参照してください

Azure Key Vault リソース プロバイダーでは、コンテナーとマネージド HSM の 2 種類リソースがサポートされています。 この記事で説明するアクセス制御は、 マネージド HSM にのみ適用されます。 Key Vault コンテナーのアクセス制御の詳細については、「 Azure ロールベースのアクセス制御を使用して Key Vault のキー、証明書、シークレットへのアクセスを提供する」を参照してください。

アクセス制御モデル

マネージド HSM へのアクセスは、次の 2 つのインターフェイスを介して制御されます。

  • コントロール プレーン
  • データ プレーン

コントロール プレーンでは、HSM 自体を管理します。 このプレーンでの操作には、マネージド HSM の作成と削除、およびマネージド HSM プロパティの取得が含まれます。

データ プレーンでは、マネージド HSM に格納されているデータを操作します。 つまり、HSM ベースの暗号化キーを使用します。 キーを追加、削除、変更、使用して暗号化操作を実行したり、ロールの割り当てを管理してキーへのアクセスを制御したり、HSM の完全バックアップを作成したり、完全バックアップを復元したり、データ プレーン インターフェイスからセキュリティ ドメインを管理したりできます。

いずれかのプレーンでマネージド HSM にアクセスするには、すべての呼び出し元に適切な認証と承認が必要です。 認証 は、呼び出し元の ID を確立します。 Authorization は、呼び出し元が実行できる操作を決定します。 呼び出し元には、Microsoft Entra ID で定義されている セキュリティ プリンシパル (ユーザー、グループ、サービス プリンシパル、マネージド ID) のいずれかを指定できます。

どちらのプレーンでも、認証に Microsoft Entra ID が使用されます。 承認には、次の異なるシステムが使用されます。

  • コントロール プレーンでは、Azure Resource Manager 上に構築された承認システムである Azure ロールベースのアクセス制御 (Azure RBAC) が使用されます。
  • データ プレーンでは、マネージド HSM レベルの RBAC (Managed HSM ローカル RBAC) が使用されます。これは、マネージド HSM レベルで実装および適用される承認システムです。

マネージド HSM が作成されると、リクエスタはデータ プレーン管理者の一覧を提供します (すべての セキュリティ プリンシパル がサポートされています)。 これらの管理者のみが、マネージド HSM データ プレーンにアクセスしてキー操作を実行し、データ プレーンロールの割り当てを管理できます (Managed HSM ローカル RBAC)。

両方のプレーンのアクセス許可モデルは同じ構文を使用しますが、異なるレベルで適用され、ロールの割り当ては異なるスコープを使用します。 コントロール プレーン Azure RBAC は Azure Resource Manager によって適用され、データ プレーンの Managed HSM ローカル RBAC はマネージド HSM 自体によって適用されます。

Important

セキュリティ プリンシパルへのコントロール プレーン アクセスを許可しても、セキュリティ プリンシパルのデータ プレーン アクセスは許可 されません 。 たとえば、コントロール プレーン アクセス権を持つセキュリティ プリンシパルは、キーまたはデータ プレーンロールの割り当てに自動的にはアクセスできません。 この分離は、Managed HSM に格納されているキーへのアクセスに影響を与える特権の不注意による拡張を防ぐために設計されています。

ただし、例外があります。Microsoft Entra グローバル管理者ロールのメンバーは、有効な Managed HSM 管理者アカウントがなくなった場合など、回復のために常に Managed HSM 管理者ロールにユーザーを追加できます。 詳細については、 グローバル管理者ロールをセキュリティで保護するための Microsoft Entra ID のベスト プラクティスを参照してください。

たとえば、サブスクリプション管理者 (サブスクリプション内のすべてのリソースに対する共同作成者アクセス許可があるため) は、サブスクリプション内のマネージド HSM を削除できます。 ただし、Managed HSM ローカル RBAC を介してデータ プレーン アクセスが許可されていない場合、マネージド HSM でキーにアクセスしたり、ロールの割り当てを管理したりして、自分や他のユーザーにデータ プレーンへのアクセスを許可することはできません。

Microsoft Entra 認証

Azure サブスクリプションでマネージド HSM を作成すると、マネージド HSM はサブスクリプションの Microsoft Entra テナントに自動的に関連付けられます。 両方のプレーンの呼び出し元はすべて、このテナントに登録されている必要があり、マネージド HSM にアクセスするには認証を行う必要があります。

アプリケーションは、いずれかのプレーンを呼び出す前に、Microsoft Entra ID で認証します。 アプリケーションは、アプリケーションの種類に応じて 、サポートされている任意の認証方法 を使用できます。 アプリケーションは、アクセスを取得するために、プレーン内のリソースのトークンを取得します。 リソースは、Azure 環境に応じて、コントロール プレーンまたはデータ プレーン内のエンドポイントです。 アプリケーションはトークンを使用し、REST API 要求をマネージド HSM エンドポイントに送信します。 詳細については、 認証フロー全体を確認してください。

両方のプレーンに 1 つの認証メカニズムを使用すると、いくつかの利点があります。

  • 組織は、組織内のすべての管理対象 HSM へのアクセスを一元的に制御できます。
  • ユーザーが組織を離れた場合、組織内のすべての管理対象 HSM にすぐにアクセスできなくなります。
  • 組織は、セキュリティを強化するために多要素認証を有効にするなどの Microsoft Entra ID のオプションを使用して認証をカスタマイズできます。

リソース エンドポイント

セキュリティ プリンシパルは、エンドポイントを介してプレーンにアクセスします。 2つのプレーンのアクセス制御はそれぞれ独立して機能します。 マネージド HSM でキーを使用するためのアクセス権をアプリケーションに付与するには、Managed HSM ローカル RBAC を使用してデータ プレーンアクセスを許可します。 マネージド HSM リソースへのアクセス権をユーザーに付与して、マネージド HSM の作成、読み取り、削除、移動、その他のプロパティとタグの編集を行うには、Azure RBAC を使用します。

次の表に、コントロール プレーンとデータ プレーンのエンドポイントを示します。

アクセス プレーン エンドポイントにアクセスする オペレーション アクセス制御メカニズム
コントロール プレーン グローバル:
management.azure.com:443
マネージド HSM の作成、読み取り、更新、削除、および移動

マネージド HSM タグを設定する
Azure RBAC
データ プレーン グローバル:
<hsm-name>.managedhsm.azure.net:443
キー: 復号化、暗号化、
ラップ解除、ラップ、検証、署名、取得、一覧表示、更新、作成、インポート、削除、バックアップ、復元、消去

データ プレーン ロール管理 (Managed HSM ローカル RBAC): ロール定義の一覧表示、ロールの割り当て、ロールの割り当ての削除、カスタム ロールの定義

バックアップと復元: バックアップ、復元、バックアップと復元の操作の状態を確認する

セキュリティ ドメイン: セキュリティ ドメインをダウンロードしてアップロードする
Managed HSM のローカル RBAC

コントロール プレーンと Azure RBAC

コントロール プレーンでは、Azure RBAC を使用して、呼び出し元が実行できる操作を承認します。 Azure RBAC モデルでは、各 Azure サブスクリプションに Microsoft Entra ID のインスタンスがあります。 このディレクトリからユーザー、グループ、アプリケーションへのアクセス権を付与します。 Azure Resource Manager デプロイ モデルを使用するサブスクリプション リソースを管理するためのアクセス権が付与されます。 アクセス権を付与するには、 Azure portalAzure CLIAzure PowerShell、または Azure Resource Manager REST API を使用します。

リソース グループにキー コンテナーを作成し、Microsoft Entra ID を使用してアクセスを管理します。 ユーザーまたはグループに、リソース グループ内のキー ボールトを管理する権限を付与します。 適切な Azure ロールを割り当てることで、特定のスコープ レベルでアクセス権を付与します。 ユーザーにキー ボールトを管理するためのアクセス権を付与するには、定義済みのkey vault Contributorロールを特定のスコープでユーザーに割り当てます。 Azure ロールには、次のスコープ レベルを割り当てることができます。

  • 管理グループ: サブスクリプション レベルで割り当てられた Azure ロールは、その管理グループ内のすべてのサブスクリプションに適用されます。
  • サブスクリプション: サブスクリプション レベルで割り当てられた Azure ロールは、そのサブスクリプション内のすべてのリソース グループとリソースに適用されます。
  • リソース グループ: リソース グループ レベルで割り当てられた Azure ロールは、そのリソース グループ内のすべてのリソースに適用されます。
  • 特定のリソース: 特定のリソースに割り当てられた Azure ロールがそのリソースに適用されます。 この場合、リソースは特定の Key Vault です。

いくつかのロールが事前に定義されています。 定義済みのロールがニーズに合わない場合は、独自のロールを定義できます。 詳しくは、Azure RBAC の組み込みロールに関するページをご覧ください。

データ プレーンと Managed HSM ローカル RBAC

ロールを割り当てることで、特定のキー操作を実行するためのアクセス権をセキュリティ プリンシパルに付与します。 ロールの割り当てごとに、その割り当てが適用されるロールとスコープを指定する必要があります。 Managed HSM ローカル RBAC の場合、次の 2 つのスコープを使用できます。

  • / または /keys: HSM レベルのスコープ。 このスコープでロールが割り当てられているセキュリティ プリンシパルは、マネージド HSM 内のすべてのオブジェクト (キー) に対してロールで定義されている操作を実行できます。
  • /keys/<key-name>: キー レベルのスコープ。 このスコープでロールが割り当てられているセキュリティ プリンシパルは、指定したキーのすべてのバージョンに対してのみ、このロールで定義されている操作を実行できます。

Managed HSM ローカル RBAC には、さまざまなアクセス制御シナリオに対処するための組み込みロールがいくつか用意されています。 ロールとそのアクセス許可の完全な一覧については、 Managed HSM の Managed HSM ローカル RBAC 組み込みロールに関するページを参照してください。

Microsoft Entra Privileged Identity Management (PIM)

管理ロールのセキュリティを強化するには、 Microsoft Entra Privileged Identity Management (PIM) を使用します。 PIM を使用すると、Just-In-Time アクセスが可能になり、継続的な管理特権のリスクが軽減されます。 また、ロールの割り当てを可視化し、昇格されたアクセスに対して承認ワークフローを適用します。

職務の分離とアクセス制御

セキュリティのベスト プラクティスとして、チームロール間で職務を分離し、特定の職務に必要な最小限のアクセス権のみを付与します。 この原則は、不正アクセスを防ぎ、偶発的または悪意のあるアクションの潜在的な影響を制限するのに役立ちます。

Managed HSM のアクセス制御を実装する場合は、次の一般的な機能ロールを確立することを検討してください。

  • セキュリティ チーム: HSM を管理し、キーのライフサイクルを制御し、アクセス制御設定を構成するためのアクセス許可が必要です。
  • アプリケーション開発者: HSM への直接アクセスを必要とせずに、キーへの参照が必要です。
  • サービス/コード: より広範なキー管理機能から制限されている間、特定の暗号化操作を実行するためのアクセス許可が必要です。
  • 監査者: HSM の設定またはキーを変更するためのアクセス許可を持たない監視およびログ アクセス機能が必要です。

これらの概念ロールには、それぞれの役割を実行するために必要な特定のアクセス許可のみを付与する必要があります。 職務の分離を実装するには、コントロール プレーン (Azure RBAC) とデータ プレーン (Managed HSM ローカル RBAC) ロールの割り当ての両方が必要です。

特定の例と Azure CLI コマンドを使用した職務の分離の実装に関する詳細なチュートリアルについては、 マネージド HSM へのアクセスのセキュリティ保護に関するページを参照してください

次のステップ