マネージド HSM のアクセス制御

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

この記事では、Managed HSM のアクセス制御モデルの概要について説明します。 認証と認可について、およびご利用のマネージド HSM へのアクセスをセキュリティで保護する方法について説明します。

注意

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

アクセス制御モデル

マネージド HSM へのアクセスは、2 つのインターフェイスを使用して制御します:

  • 管理プレーン
  • データ プレーン

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

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

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

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

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

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

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

重要

管理プレーンにセキュリティ プリンシパルへのアクセス権を付与しても、セキュリティ プリンシパルのデータ プレーン アクセスは許可 されません。 たとえば、管理プレーン アクセス権を持つセキュリティ プリンシパルには、キーまたはデータ プレーン ロールの割り当てへのアクセス権は自動的には付与されません。 この分離は設定によるもので、マネージド HSM に保存されているキーへのアクセスに影響する権限の不用意な拡張を防ぐためのものである。

しかし例外が 1 つあります: Microsoft Entra 全体管理者ロールのメンバーは、有効なマネージド HSM 管理者アカウントがなくなった場合などに、復旧のためにいつでもマネージド HSM 管理者ロールにユーザーを追加できます。 詳細については、全体管理者ロールをセキュリティで保護するための Microsoft Entra ID のベスト プラクティスに関する記事を参照してください。

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

Microsoft Entra 認証

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

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

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

  • 組織は、組織内のすべてのマネージド 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
キー: 暗号化の解除、暗号化、
ラップ解除、ラップ、検証、署名、取得、一覧表示、更新、作成、インポート、削除、バックアップ、復元、消去

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

バックアップと復元: バックアップ、復元、バックアップ操作と復元操作の状態をチェック

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

管理プレーンと Azure RBAC

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

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

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

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

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

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

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

次のステップ