シークレット、証明書、キーへのアクセスの管理

完了

Key Vault アクセスには、Key Vault 自体の管理と、Key Vault に含まれるデータへのアクセスという 2 つの面があります。 ドキュメントでは、これらの面が "管理プレーン" および "データ プレーン" として参照されています。

キー コンテナーの作成は管理操作ですが、キー コンテナーに格納されるシークレットの格納および取得は異なる種類のロールであるため、これら 2 つの領域は分離されています。 キー コンテナーにアクセスするには、すべてのユーザーまたはアプリが、呼び出し元を識別するための適切な ''認証'' と、呼び出し元が実行できる操作を決定するための ''認可'' を受ける必要があります。

認証

Azure Key Vault では、Microsoft Entra ID を使用して、コンテナーへのアクセスを試みるユーザーとアプリを認証します。 認証は常に、Key Vault が属しているサブスクリプションの Microsoft Entra テナントに要求を関連付けて実行されます。 要求を行うすべてのユーザーまたはアプリが、Microsoft Entra ID で認識される必要があります。 キー コンテナーへの匿名アクセスはサポートされていません。

認可

管理操作 (新しい Azure キー コンテナーの作成) には、ロールベースのアクセス制御 (RBAC) を使用します。 キー コンテナーの共同作成者という組み込みのロールがあります。このロールでは、キー コンテナーの管理機能にアクセスできますが、キー コンテナーのデータへのアクセスは許可されません。 このロールは、使用することが推奨されるロールです。 完全な管理権限を含む共同作成者ロールもあります。このロールではデータ プレーンへのアクセスを許可することもできます。

キー コンテナーでのデータの読み取りと書き込みには、別個のキー コンテナー "アクセス ポリシー" を使用します。 キー コンテナー アクセス ポリシーは、ユーザーまたはマネージド ID に割り当てられる、シークレットとキーの読み取り、書き込み、削除を行うためのアクセス許可セットです。 アクセス ポリシーは、次に示すように、CLI、REST API、または Azure portal を使用して作成できます。

Screenshot showing the Add KeyVault policy screen in the Azure portal.

システムには定義済みの管理オプションのリストがあり、このポリシーに許可されているアクセス許可が定義されています。ここでは、Key Vault 内のシークレットを管理するのに適切な [キー、シークレット、および証明書の管理] が選択されています。 [キーのアクセス許可] のエントリを変更することで、必要に応じてアクセス許可をカスタマイズできます。 たとえば、"読み取り" 操作のみを許可するようにアクセス許可を調整できます。

Screenshot showing the permission list cut down to read only in the Azure portal.

開発者に必要なのは、開発環境コンテナーへの Get および List アクセス許可のみです。 主任開発者または上級開発者の場合、必要に応じてシークレットを変更したり追加したりするため、コンテナーへの完全なアクセス許可が必要です。 運用環境コンテナーへの完全なアクセス許可は、通常は上級の運用スタッフ用に予約されています。 多くの場合、シークレットを取得するだけで済むため、アプリには Get アクセス許可のみが必要です。

ネットワーク アクセスを制限する

Azure Key Vault で考慮すべきもう 1 つの点は、ネットワーク内のどのサービスからコンテナーにアクセスできるかということです。 ほとんどの場合、ネットワーク エンドポイントをインターネットに対して開放する必要はありません。 必要な最小ネットワーク アクセスを決定する必要があります。 たとえば、Key Vault エンドポイントを特定の Azure Virtual Network サブネット、特定の IP アドレス、または信頼された Microsoft サービスに制限できます。 暗号化キーを使用する Azure SQL、Azure App Service、さまざまなデータおよびストレージ サービスが含まれます。

Screenshot showing the network rules for a KeyVault in the Azure portal.