Managed HSM のアクセス制御

注意

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

Azure Key Vault Managed HSM は、暗号化キーを保護するクラウド サービスです。 このデータは機密性が高く、ビジネス上重要であるため、承認されたアプリケーションとユーザーからのアクセスのみを許可することで、ご利用のマネージド HSM へのアクセスをセキュリティで保護する必要があります。 この記事では、Managed HSM のアクセス制御モデルの概要について説明します。 認証と認可について、およびご利用のマネージド HSM へのアクセスをセキュリティで保護する方法について説明します。

アクセス制御モデル

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

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

認証には、両方のプレーンで Azure Active Directory が使用されます。 認可には、次のように異なるシステムが使用されます。

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

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

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

重要

セキュリティ プリンシパルに、マネージド HSM への管理プレーンのアクセス権を付与しても、キーまたはデータ プレーンのロールの割り当て (Managed HSM ローカル RBAC) にアクセスする、データ プレーンへのアクセス権は付与されません。 この分離は、Managed HSM に格納されているキーへのアクセスに影響する特権が誤って展開されるのを防ぐために、意図的に行われているものです。

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

Azure Active Directory 認証

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

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

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

  • 組織は、組織内のすべてのマネージド HSM へのアクセスを一元的に管理できます。
  • 退職したユーザーは、組織内のすべてのマネージド HSM に即座にアクセスできなくなります。
  • 組織は、Azure Active Directory のオプションを使用して認証をカスタマイズできます (セキュリティを強化するために多要素認証を有効にするなど)。

リソースのエンドポイント

セキュリティ プリンシパルは、エンドポイントを介してプレーンにアクセスします。 2 つのプレーンに対するアクセス制御は独立して機能します。 マネージド HSM でキーを使用するためのアクセス権をアプリケーションに付与するには、Managed HSM ローカル RBAC を使用してデータ プレーンのアクセス権を付与します。 マネージド HSM の作成、読み取り、削除、移動、およびその他のプロパティとタグの編集を行うために、Managed 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 サブスクリプションに Azure Active Directory のインスタンスが用意されています。 このディレクトリからユーザー、グループ、アプリケーションにアクセス権を付与します。 Azure サブスクリプションに含まれていて Azure Resource Manager デプロイ モデルを使用しているリソースを管理するためのアクセス権が付与されます。 アクセス権を付与するには、Azure portalAzure CLIAzure PowerShell、または Azure Resource Manager REST API を使用します。

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

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

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

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

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

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

次のステップ

  • 管理者用の概要チュートリアルについては、Managed HSM の概要に関するページをご覧ください
  • ロール管理のチュートリアルについては、Managed HSM ローカル RBAC に関するページを参照してください。
  • Managed HSM ログに関する使用状況ログの記録の詳細については、「Managed HSM のログ」を参照してください